自動化交易平台:選擇前該如何比較
判斷自動化交易軟體,要看它讓你能檢查什麼:你的市場與交易時段、貼近現實的成交、交易成本、可匯出的程式碼,以及在未見過資料上的測試。用免費試用重跑一個你已經了解的策略。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
比較自動化交易平台,要看它讓你能檢查什麼,而不是它列了多少功能。就期貨而言,有四個問題決定大部分的選擇。它能處理你的市場與其交易時段嗎?回測的成交是否貼近現實,並且計入成本?你能匯出策略程式碼嗎?它會在策略建構時沒用過的資料上測試策略嗎?
自動化交易平台是把一組交易規則轉成測試結果、實單委託,或兩者兼具的軟體,讓你不必手動下每一筆單。這個名稱涵蓋的工具差異很大。
自動化交易程式有哪些類型?
大多數自動化交易軟體可分為三類,各自負責不同的工作:尋找規則、在圖表上執行規則,或用你自己的程式碼送出委託。可以用餐廳來比喻。策略建構工具是試做許多食譜的實驗廚房。圖表平台是每天烹煮選定菜色的廚房。券商 API 則提供原料和爐子,其餘由你自己來搭建。
| 類型 | 你要做的事 | 軟體做的事 | 適合這樣的交易人 |
|---|---|---|---|
| 策略建構工具(策略生成軟體) | 選擇市場、積木、參數範圍與成本 | 生成並回測大量規則組合,再加以篩選 | 想在實際交易之前,先搜尋並測試大量想法 |
| 具自動化功能的圖表平台 | 撰寫或載入策略腳本 | 在圖表上顯示訊號、回測腳本,並可透過連接的券商送出委託 | 已經有規則,想要監看並交易這些規則 |
| 券商 API | 撰寫整套程式:資料、邏輯、委託、紀錄 | 接收你的委託,並回傳資料與成交 | 擅長寫程式,想要完全掌控 |
券商 API 是一種程式介面,讓你自己的程式碼可以向券商請求資料並送出委託。許多交易人會組合不同類型:用建構工具做研究,再用圖表平台做實單執行。因此,真正有用的問題往往是「哪兩種工具搭配?」,而不是「選哪一個平台?」
平台能處理你的期貨市場、資料與交易時段嗎?
平台必須依照交易所實際的運作方式處理你的合約才有用:正確的交易時段、合理的轉倉,以及你實際擁有的 K 棒資料。在其他事情之前,先檢查這幾點:
- 資料匯入。你能否載入自己的歷史 K 棒,且格式與解析度符合你的使用方式,例如 1 分鐘或 5 分鐘 K 棒?
- 連續月。期貨會到期,所以長期測試需要連續序列。檢查平台如何接合各合約,以及能否調整每次轉倉時的價差跳空。
- 交易時段。許多期貨分日盤與夜盤,台指期就是一例。你應該能分別測試僅日盤的 K 棒與全時段的 K 棒。
- 時區與假日。K 棒時間戳記必須與交易所時鐘對齊。假日與提早收盤不應產生假的 K 棒。
交易所會設定交易時段,也可能更改,因此請到交易所的合約頁面確認最新數值。期貨交易時間工具會以你所在的時區顯示交易時段。至於最常扭曲回測的資料問題,請見回測資料品質:缺漏、異常跳動點、時區與轉倉。
回測的成交執行有多貼近現實?
回測只能使用策略實際可能成交的價格。對於在 K 棒收盤時做決定的規則,這通常意味著在下一根 K 棒成交。下一根 K 棒成交是一種成交規則:在某根 K 棒收盤時算出的訊號,於下一根 K 棒的開盤或更晚成交。若平台在收盤價做決定,又在同一個收盤價成交,用的就是沒有人能成交的價格。
對任何回測工具,都可以問這些問題:
- 訊號出現後,市價單在何時成交:這根 K 棒還是下一根?
- 當一根 K 棒同時碰到停損與停利時,回測假設哪一個先發生?
- 限價單是價格一碰到就成交,還是價格穿過才成交?
- 你能否打開每一筆交易,看到進場時間與價格,並對照圖表檢查?
好的跡象是平台有文件說明成交規則,並顯示每一筆交易。壞的跡象是權益曲線平滑,卻沒有可供檢視的交易明細。
平台如何模擬交易成本?
成本必須是每一次測試的一部分,而不是最後才加上去。這表示每口的手續費,以及你可以設定並調高的滑價。滑價是回測所假設的價格與真實委託所得價格之間的差距。檢查你能否以每邊或每一買一賣(來回)輸入手續費、加入交易所費用,並以跳動點設定滑價。
若搜尋時排名策略不計入成本,就會偏好小額而頻繁的交易,因為它們在紙面上看起來平滑。成本隨後會把它們一筆一筆吃掉。完整方法,包括平均每筆損益的檢查,請見回測中的交易成本:手續費、滑價與平均每筆損益。
你能匯出策略程式碼,還是被鎖在系統裡?
優先選擇能提供你所用交易平台可讀策略原始碼的軟體。你讀得懂的程式碼,才能檢查、修改與保留。被鎖定的系統只能在供應商自己的環境中執行策略,你看不到規則。
| 問題 | 匯出原始碼 | 被鎖定的系統 |
|---|---|---|
| 能讀到確切的規則嗎? | 可以,逐行閱讀 | 通常不行 |
| 能在哪裡執行? | 在匯出的目標平台上 | 只能在供應商的環境中 |
| 能修改停損或交易時段篩選嗎? | 可以,在程式碼中修改 | 只有供應商提供該設定時才行 |
| 能在其他地方驗證回測嗎? | 可以,在目標平台上重跑 | 無法獨立檢查 |
AlphaPrime(Valynox)可將策略原始碼匯出到 MultiCharts(PowerLanguage)、TradingView(Pine Script v6)、TradeStation(EasyLanguage)與 NinjaTrader(NinjaScript)。平台匯出頁面會保持最新的清單。不論你用什麼工具,都要在目標平台上用一段樣本期間重跑匯出的策略,並比較交易明細。在實際交易之前,要能以資料、交易時段設定與成交規則解釋任何差異。
該找哪些策略檢驗功能?
要找能在策略建構時沒用過的資料上測試策略,並且記錄你嘗試過多少變體的工具。許多變體中表現最好的那個回測,通常是被高估的。這裡有個比喻。一百個人各擲十次硬幣,其中一人很可能擲出八或九次正面。這個人並不是擲硬幣高手。策略搜尋也是同樣的道理:測試足夠多的變體,總有一些會因為偶然而看起來很出色。關於資料窺探與回測過度最佳化的研究,對這個效應有詳細說明(White, 2000;Bailey et al., 2014)。
樣本外資料是策略在選擇規則與參數時沒有看過的歷史。值得具備的檢驗功能:
- 樣本外切分:在搜尋開始前設定,並分開報告結果。
- 推進分析。這是一個重複的循環:在一段歷史視窗上選擇參數,再於下一段視窗上測試。請見推進分析:為什麼一次回測不夠。
- 參數穩定性。對參數的小幅改動,不應讓好結果變成壞結果。
- 由你自己設定的門檻,例如最少交易筆數或最大回撤,並以同樣方式套用到每個候選策略。
- 重新檢驗:新資料到來時,對已儲存的策略再次檢驗。
- 報表:區分多單與空單交易,並逐期顯示績效,讓某一個幸運的年度無法掩蓋真相。
AlphaPrime 的策略檢驗提供基本、標準與完整檢驗、推進分析,以及自訂門檻。
免費試用期間該測試什麼?
利用試用重跑一個你已經了解的策略,而不是去找新的贏家。你知道該策略應該做什麼,所以能判斷軟體是否正確回報。
- 載入你自己某一個市場的資料,檢查第一根與最後一根 K 棒的日期以及交易時段時間。
- 執行一個你很熟悉的簡單規則,例如均線交叉,先用僅日盤的 K 棒,再用全時段的 K 棒。
- 打開十筆交易,對照圖表檢查每一筆的進場價格與時間。
- 確認成交規則:訊號是在同一根 K 棒成交,還是下一根 K 棒?
- 加入你實際的手續費與每邊一個跳動點的滑價,然後把滑價加倍。
- 執行樣本外或推進測試,並與樣本內結果比較。
- 如果軟體提供匯出,就匯出程式碼,並在你的交易平台上重跑。
- 儲存結果,並確認一週後你仍能找到、排序並重新開啟它們。
假設性範例
一位交易人重跑一個已知的交叉規則。在全時段 K 棒上,扣除 $5 手續費與每邊一個跳動點滑價後,共 400 筆交易,平均每筆損益為 $40。在僅日盤的 K 棒上,共 260 筆交易,平均每筆損益為 $10。把滑價加倍後,全時段的平均每筆損益降到 $25。這次試用讓交易人學到了實在的東西:該規則的大部分優勢來自夜盤交易,而且對執行成本很敏感。
如果你使用 AlphaPrime,這代表:把它當作研究階段。在套用你的成本與交易時段的條件下搜尋並檢驗策略,然後匯出原始碼,在你實際交易的平台上做同樣的檢查。
常見問題
期貨最好的自動化交易平台是哪一個?
沒有單一的最佳平台,因為這三種類型的工作各不相同。策略建構工具負責尋找並測試規則,圖表平台負責執行規則,券商 API 則適合自己寫程式的交易人。請透過檢查你的市場的資料與交易時段、成交規則、成本模擬、程式碼匯出,以及在未見過資料上的檢驗來做選擇。
使用自動化交易軟體需要會寫程式嗎?
不一定。策略建構工具與許多圖表平台讓你不用寫程式也能設定規則,而券商 API 則需要寫程式。能讀懂匯出的策略程式碼會有幫助,因為你可以確認規則是否如你所預期。
可以在一個平台回測,在另一個平台交易嗎?
可以,只要研究工具能為你的交易平台匯出原始碼。在交易平台上用一段樣本期間重跑匯出的策略,並比較交易明細。差異通常來自資料、交易時段設定或成交規則,交易前應先解釋清楚。
為什麼策略在回測中看起來很好,實單交易卻失敗?
常見原因有:以無法成交的價格成交、漏掉手續費與滑價,以及從許多變體中因偶然挑出最好的那個。下一根 K 棒成交、貼近現實的成本,以及樣本外或推進測試,可以處理這三個問題。
參考資料
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
AlphaPrime 在這裡能幫上什麼
AlphaPrime 負責研究這一端:策略生成把想法變成可測試的規則,策略檢驗以推進分析與你自己的門檻來測試它們,平台匯出則把策略原始碼送到你實際交易的平台。

