加值服務 | 相關文章

【新手向】阿政老師 - 策略的發想與驗證

2022/10/27 - MultiCharts,TOUCHANCE,永政程式交易事業,阿政老師,回測,績效驗證

Q: 建議新手如何開始寫 MultiCharts 的策略?

阿政老師:

開發策略【點子】永遠最難取得,你可以天馬行空的亂想,或是加入 line 群組去聼人家亂講也行,最重要的是開始 Coding,如果自己沒有修改 Code 的能力,即使拿到 Code 有什麽意義?

想想我當年的 MC 沒有現在 MultiCharts 14 專業版本的功能這麼威,很多東西要自己土炮!

延申閲讀》【分享】MultiCharts 學習網站及教學資源

MultiCharts 程式交易 Line 討論群組推薦》

 

進場優勢的檢測

檢測方式

阿政老師:

對一個剛進入程式交易的新手,我想最重要的過程就是在你開發的過程中去觀察與驗證【有】vs【沒有】的動作差異,然後依照自己的心性去修改運作方式,以達到自己最能接受的方式才是最重要的。

當你開始有第一個想法時,你可以通過進場優勢的檢測來初步確認【想法是否可行】,我們可以簡單的利用下面的方式來看看我們想法的粗胚是否可用。

  1. 進場訊號不寫任何的出場與翻單。
  2. 固定 N 根後一律出場。
  3. 執行最佳化。

 

進場測試範例:

input: length(9);

if marketposition<=0 and SlowD(length)>80 then
	buy next bar HighD(0) stop;

固定 N 根後一律出場

input: lenghToExit(20);

if barssinceentry(0)= lenghToExit then begin
    if marketposition>0 then
        sell next bar market;
    if marketposition<0 then
        buytocover next bar market;
end; 

測試區間 2019/1/1 ~ 2020/12/31

 

績效圖表分析

從績效圖表初步的判斷我們的【想法】是不是有進場的優勢,我們簡單的用進場後 N 根 Kbar 來模擬策略進場後可能是獲利出場或是停損出場,如果初步能夠獲利,表示我們的進場想法可能是能夠賺錢的。

 

 

最佳化分析

MultiCharts 的最佳化功能提供相當不錯的分析資訊,利用 MultiCharts 提供的最佳化分析,看看策略在不同的參數下能不能有【穩健】的獲利區間。

如果績效圖表與最佳化的結果符合預期,那麽我們就可以比較有信心往下繼續嘗試加入濾網或是明確的停損停利規則來完成策略。

 

 

Q:策略的回測表現看起來不錯,就可以上線了嗎?

阿政老師:

當我們完成了策略開發,看到最佳化後漂亮的權益曲線。。。是不是真的就可以立即上線呢?我們可以通過簡單的【未來】模擬看看策略在樣本外( Outside sample ) 的表現再決定也不遲!

策略績效的【未來】模擬

因爲未來的行情是無法預測的,因此我們想要提前模擬策略【真實】上線後可能的表現時,就可以利用【歷史資料】來達成!

 

具體的方式説明如下:

  1. 切割歷史數據(例如:2019/01/01 ~ 2020/12/31)
  2. 執行最佳化取得參數
  3. 將最佳化的參數結果執行在 2021/01/01 ~ 2021/12/31 
  4. 觀察執行後的策略表現

 

我們使用進場優勢檢測的範例程式,執行在 2021/01/01 ~ 2021/12/31 樣本外的歷史數據,發現原本 2019-2020 表現不錯的參數,在 2021 居然失去效果,策略的執行結果表現不如想象的美好。

爲了找到【穩健】的參數(在不同的歷史資料區間表現相對穩定的參數),我們可以反復的修改【回測區間】來執行這個操作。

但是,你可以有更聰明的做法!

 

利用 MultiCharts 强大的優化功能來幫助你

最新版本的 MultiCharts 專業版本有提供兩種模擬樣本内參數( Inside Sample )的結果執行在楊本外(Outside sample)的强大功能:移動窗格優化( Walk-Forward Optimization) 與矩陣優化( Matrix Optimization),可以幫助你快速的進行 in-sample & out-of-sample 的分析,協助你加速策略的調整與上線。

 

 

延伸閲讀:

【介紹】MultiCharts 程式交易入門首選,圖表、回測、最佳化、移動取樣(WFO)與專業報表一次滿足

【教學】認識 MultiCharts 參數優化

淺談策略失效的原因與因應之道(二)