研究文章 / 工作流程
從生成策略到 MultiCharts:PowerLanguage 比對檢查清單
把策略匯出成 PowerLanguage 後,在 MultiCharts 裡比對它的交易和研究回測。兩邊不同時,原因通常出在少數幾個設定。先把這些設定檢查過,再相信任何一邊的結果。
AlphaPrime 團隊 ·
為什麼要比對
策略研究通常在一個工具裡做,實際交易在另一個工具裡做。如果交易平台跑出來的結果和研究回測對不起來,你就無法確定哪一個結果,才代表你即將上線的策略。匯出策略之後,第一件事就是用同一份資料,比對兩邊的交易清單。
PowerLanguage 是 MultiCharts 的程式語言。生成的策略匯出成 PowerLanguage 後,可以在 MultiCharts 匯入編譯。
檢查清單
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. 價格取整與合約大小
- 兩個工具都應該用相同方式,把委託價格取整到該商品的跳動點。
- 檢查每點價值,以及每筆交易的口數。
怎麼比對
- 兩邊的交易清單都匯出來,包含進場時間、出場時間、方向和價格。
- 從第一筆開始逐筆比對。第一個差異通常就指出原因:暖機、交易時段或成交時間點。
- 一次只改一項設定,再重跑一次。
- 把兩邊對得起來的設定記錄下來,作為這支策略的交易設定。
有些小差異會因為合理的原因留下來,例如K 棒內成交的假設不同。把哪裡不同、為什麼不同寫下來,決定部位大小時,才知道要用哪個結果。
AlphaPrime 在這裡能幫上什麼
AlphaPrime 的平台匯出,是為了把研究成果帶進你的交易流程。它可以匯出 PowerLanguage,在 MultiCharts 匯入編譯。支援格式和限制會隨每個版本公布。

