VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / AlphaPrime 操作

自動化交易平台:選擇前該如何比較

判斷自動化交易軟體,要看它讓你能檢查什麼:你的市場與交易時段、貼近現實的成交、交易成本、可匯出的程式碼,以及在未見過資料上的測試。用免費試用重跑一個你已經了解的策略。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 自動化交易程式有哪些類型?
  2. 平台能處理你的期貨市場、資料與交易時段嗎?
  3. 回測的成交執行有多貼近現實?
  4. 平台如何模擬交易成本?
  5. 你能匯出策略程式碼,還是被鎖在系統裡?
  6. 該找哪些策略檢驗功能?
  7. 免費試用期間該測試什麼?
  8. 常見問題
  9. 參考資料

比較自動化交易平台,要看它讓你能檢查什麼,而不是它列了多少功能。就期貨而言,有四個問題決定大部分的選擇。它能處理你的市場與其交易時段嗎?回測的成交是否貼近現實,並且計入成本?你能匯出策略程式碼嗎?它會在策略建構時沒用過的資料上測試策略嗎?

自動化交易平台是把一組交易規則轉成測試結果、實單委託,或兩者兼具的軟體,讓你不必手動下每一筆單。這個名稱涵蓋的工具差異很大。

自動化交易程式有哪些類型?

大多數自動化交易軟體可分為三類,各自負責不同的工作:尋找規則、在圖表上執行規則,或用你自己的程式碼送出委託。可以用餐廳來比喻。策略建構工具是試做許多食譜的實驗廚房。圖表平台是每天烹煮選定菜色的廚房。券商 API 則提供原料和爐子,其餘由你自己來搭建。

類型你要做的事軟體做的事適合這樣的交易人
策略建構工具(策略生成軟體)選擇市場、積木、參數範圍與成本生成並回測大量規則組合,再加以篩選想在實際交易之前,先搜尋並測試大量想法
具自動化功能的圖表平台撰寫或載入策略腳本在圖表上顯示訊號、回測腳本,並可透過連接的券商送出委託已經有規則,想要監看並交易這些規則
券商 API撰寫整套程式:資料、邏輯、委託、紀錄接收你的委託,並回傳資料與成交擅長寫程式,想要完全掌控

券商 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)。

樣本外資料是策略在選擇規則與參數時沒有看過的歷史。值得具備的檢驗功能:

  1. 樣本外切分:在搜尋開始前設定,並分開報告結果。
  2. 推進分析。這是一個重複的循環:在一段歷史視窗上選擇參數,再於下一段視窗上測試。請見推進分析:為什麼一次回測不夠。
  3. 參數穩定性。對參數的小幅改動,不應讓好結果變成壞結果。
  4. 由你自己設定的門檻,例如最少交易筆數或最大回撤,並以同樣方式套用到每個候選策略。
  5. 重新檢驗:新資料到來時,對已儲存的策略再次檢驗。
  6. 報表:區分多單與空單交易,並逐期顯示績效,讓某一個幸運的年度無法掩蓋真相。

AlphaPrime 的策略檢驗提供基本、標準與完整檢驗、推進分析,以及自訂門檻。

免費試用期間該測試什麼?

利用試用重跑一個你已經了解的策略,而不是去找新的贏家。你知道該策略應該做什麼,所以能判斷軟體是否正確回報。

  1. 載入你自己某一個市場的資料,檢查第一根與最後一根 K 棒的日期以及交易時段時間。
  2. 執行一個你很熟悉的簡單規則,例如均線交叉,先用僅日盤的 K 棒,再用全時段的 K 棒。
  3. 打開十筆交易,對照圖表檢查每一筆的進場價格與時間。
  4. 確認成交規則:訊號是在同一根 K 棒成交,還是下一根 K 棒?
  5. 加入你實際的手續費與每邊一個跳動點的滑價,然後把滑價加倍。
  6. 執行樣本外或推進測試,並與樣本內結果比較。
  7. 如果軟體提供匯出,就匯出程式碼,並在你的交易平台上重跑。
  8. 儲存結果,並確認一週後你仍能找到、排序並重新開啟它們。

假設性範例

一位交易人重跑一個已知的交叉規則。在全時段 K 棒上,扣除 $5 手續費與每邊一個跳動點滑價後,共 400 筆交易,平均每筆損益為 $40。在僅日盤的 K 棒上,共 260 筆交易,平均每筆損益為 $10。把滑價加倍後,全時段的平均每筆損益降到 $25。這次試用讓交易人學到了實在的東西:該規則的大部分優勢來自夜盤交易,而且對執行成本很敏感。

假設範例:單邊滑價 1 個跳動點時,平均每筆損益為 40 元;單邊滑價 2 個跳動點時降至 25 元,每筆少賺 15 元 滑價侵蝕優勢 平均每筆損益,單邊滑價 假設 1 跳動點 $40 2 跳動點 $25 −$15 滑價加倍:$40 降至 $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 負責研究這一端:策略生成把想法變成可測試的規則,策略檢驗以推進分析與你自己的門檻來測試它們,平台匯出則把策略原始碼送到你實際交易的平台。

看方案與價格