VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
研究文章 / 工作流程

從生成策略到 MultiCharts:PowerLanguage 比對檢查清單

把策略匯出成 PowerLanguage 後,在 MultiCharts 裡比對它的交易和研究回測。兩邊不同時,原因通常出在少數幾個設定。先把這些設定檢查過,再相信任何一邊的結果。

AlphaPrime 團隊 ·

為什麼要比對

策略研究通常在一個工具裡做,實際交易在另一個工具裡做。如果交易平台跑出來的結果和研究回測對不起來,你就無法確定哪一個結果,才代表你即將上線的策略。匯出策略之後,第一件事就是用同一份資料,比對兩邊的交易清單。

PowerLanguage 是 MultiCharts 的程式語言。生成的策略匯出成 PowerLanguage 後,可以在 MultiCharts 匯入編譯。

工作流程:研究回測、匯出 PowerLanguage、在 MultiCharts 執行、比對交易清單,修正一項設定後再重來研究回測交易清單 A匯出PowerLanguage在 MultiCharts 執行交易清單 B比對 A 與 B逐筆比對出現第一個差異?修正一項設定,重新匯出再執行
比對循環:從第一筆交易開始比對兩份交易清單,修正能解釋第一個差異的那項設定,重複進行,直到剩下的差異都說得出原因。

檢查清單

1. 資料相同

  • 商品和合約轉倉方式相同(連續月的價格還原(back-adjust)有好幾種做法)。
  • 日期範圍相同,包括指標暖機用的最前面幾根K 棒。
  • K 棒的組成方式相同。某個資料來源的 37 分鐘K 棒,起始的那一分鐘不一定和平台自己組出來的 37 分鐘K 棒一樣。

2. 交易時段和時區相同

  • 檢查圖表用的是哪個交易時段範本。只含日盤(一般交易時段)的資料,和含夜盤的全時段資料,會組出不同的K 棒,算出的指標數值也不同。
  • 確認時間戳記標的是每根K 棒的開盤還是收盤,以及平台顯示和計算用的是哪個時區。

3. 成交時間點相同

  • 先確定委託是在K 棒收盤時產生、在下一根K 棒開盤成交,還是在K 棒內成交。在 MultiCharts 裡,K 棒內產生委託(Intra-Bar Order Generation,簡稱 IOG)會改變這個行為,請確認這項設定和研究時的假設一致。
  • 會在K 棒內成交的停損單和限價單,結果取決於對K 棒內價格走勢的假設。不同工具的假設可能不一樣,所以先檢查這些交易。

4. 成本相同

  • 在策略屬性裡輸入相同的每口手續費和滑價。這裡設得不一樣,淨損益會變,但交易本身不變,所以很容易看出來。請參考回測裡的交易成本。

5. 參考K 棒數與暖機

  • 平台在第一筆交易之前,需要足夠的歷史資料來算出每個指標(在 MultiCharts 裡是策略參考的最大K 棒數,Maximum number of bars study will reference,也就是 MaxBarsBack)。如果這個值和研究工具相比設得太低或太高,最前面幾筆交易就會不同。

6. 價格取整與合約大小

  • 兩個工具都應該用相同方式,把委託價格取整到該商品的跳動點。
  • 檢查每點價值,以及每筆交易的口數。

怎麼比對

  1. 兩邊的交易清單都匯出來,包含進場時間、出場時間、方向和價格。
  2. 從第一筆開始逐筆比對。第一個差異通常就指出原因:暖機、交易時段或成交時間點。
  3. 一次只改一項設定,再重跑一次。
  4. 把兩邊對得起來的設定記錄下來,作為這支策略的交易設定。

有些小差異會因為合理的原因留下來,例如K 棒內成交的假設不同。把哪裡不同、為什麼不同寫下來,決定部位大小時,才知道要用哪個結果。

AlphaPrime 在這裡能幫上什麼

AlphaPrime 的平台匯出,是為了把研究成果帶進你的交易流程。它可以匯出 PowerLanguage,在 MultiCharts 匯入編譯。支援格式和限制會隨每個版本公布。

看方案與價格