高頻交易與散戶演算法交易:差在哪裡
高頻交易靠速度與排隊位置,每筆只賺極小金額,這場競賽散戶贏不了。散戶演算法交易者在分鐘到日 K 棒上測試策略較有勝算,因為每筆交易的優勢可能大到足以支付成本。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
什麼是高頻演算法交易?
高頻演算法交易是指由自動化程式進行的交易,業者以微秒等級的反應速度,每筆只賺極小金額,通常擔任造市商,伺服器就放在交易所旁邊。散戶期貨交易者贏不了這場速度競賽。比較實際的做法,是在分鐘到日 K 棒上執行較慢的演算法策略,讓每筆交易的優勢大到足以支付成本。
高頻交易(HFT)是演算法交易的一種,電腦在不到一毫秒的時間內送出、修改與取消委託,持倉時間通常只有數秒甚至更短。演算法交易是比較廣的說法,泛指由固定規則決定進場與出場、再由電腦執行的交易。所有 HFT 都是演算法交易,但大多數演算法交易並不是高頻。
| 項目 | HFT 業者 | 散戶演算法交易者 |
|---|---|---|
| 典型持倉時間 | 數秒或更短 | 數分鐘到數週 |
| 優勢來源 | 搶先一步、賺取價差、不同市場間的微小價差 | 多根 K 棒上的價格行為:趨勢、反轉、交易時段規律 |
| 決定結果的因素 | 速度與委託排隊的位置 | 平均每筆損益是否大於其成本 |
| 基礎設施 | 設在交易所機房的伺服器、直連的行情資料 | 一台電腦、券商連線、交易平台 |
| 測試所需資料 | 每一筆委託簿訊息 | K 棒資料,從 1 分鐘到 1 日 |
| 測試方式 | 模擬委託簿與排隊 | 含成本的 K 棒回測,再做樣本外檢查 |
高頻交易演算法如何獲利?
HFT 的獲利大多來自許多極小的收益,而每一筆都取決於比其他交易者更快、在隊伍中排得更前面。
延遲(latency)是從事件(例如價格變動)發生,到你的反應送達交易所之間的時間。HFT 業者以微秒計算延遲,也就是百萬分之一秒。
主機共置(co-location)是把自己的伺服器租在交易所機房內或旁邊,讓連到撮合引擎的線路盡可能短。撮合引擎是交易所用來配對買單與賣單的電腦。
造市是同時掛出買價與賣價,雙邊都成交時就賺取兩者的差額,也就是價差。在流動性高的指數期貨中,價差通常只有一個跳動點,也就是合約允許的最小價格單位。期貨合約計算器可以算出你交易的合約每個跳動點值多少錢。
排隊位置是你在同一價位等待的委託隊伍中所處的位置。許多期貨市場在同一價位按委託到達的先後順序成交,這個規則稱為價格時間優先。排在最前面的委託最先成交。
造市商的主要風險,是在價格往不利於報價的方向移動前一刻才成交。速度能從兩方面化解這個問題。快的業者能排到隊伍前面,所以委託在正常交易流量中就能成交;快的業者也能在較慢的交易者出手之前,先取消舊報價。關於這類業者的運作方式,可參考量化交易公司如何運作,以及散戶可以借鏡什麼。
散戶能在速度上與 HFT 競爭嗎?
不能。散戶的委託要經過好幾段延遲,而主機共置的業者早已把這些延遲消除。想像大家搶買演唱會的最後幾張票,有些人站在售票窗口,你卻是用郵寄送出申請。你的申請可能寫得很好,但票在信送到之前就賣完了。
- 你在螢幕上看到的行情資料,已經從交易所傳到你的券商或資料商,再傳到你這裡。
- 你的平台需要時間計算訊號並產生委託。
- 委託經由網路送到券商。
- 券商執行風控檢查後,再把委託送往交易所。
在交易所附近租伺服器,可以縮短其中一些步驟。但這不會讓你排到隊伍前面,也無法讓你像緊鄰撮合引擎的業者那樣快速取消報價。任何靠著在別人反應之前先對價格變動做出反應來獲利的策略,都會被本來就更快的交易者拿走。
散戶有其他優勢。你可以持有交易數小時或數天,所以數毫秒的延遲無關緊要。部位小的時候,在流動性高的合約中下市價單,通常會成交在接近報價的位置。你也不需要整天交易來支付伺服器與人員的成本。
K 棒回測能告訴你哪些成交資訊?
當策略在已完成的 K 棒上做決定、並在下一根 K 棒交易時,K 棒回測可以相當好地模擬成交。但它無法模擬排隊位置,也無法得知一根 K 棒內價格移動的先後順序。K 棒回測是一種只知道每根 K 棒的開盤、最高、最低、收盤(通常還有成交量)的模擬,看不到在該根 K 棒內成交的每一筆委託。
| 情境 | K 棒資料能模擬的部分 | K 棒資料無法模擬的部分 |
|---|---|---|
| 在 K 棒收盤出現訊號後下市價單 | 在下一根 K 棒開盤成交,再加上固定滑價 | 當下實際的價差 |
| 在某價位掛限價單 | 價格是否到過該價位 | 你的委託在隊伍中是否排得夠前面而能成交 |
| 同一根 K 棒內的停損與停利 | 兩個價位都被碰到 | 哪個價位先被碰到 |
| 大單 | 每口固定的成本 | 你自己的委託會把價格推動多遠 |
| 持倉數秒 | 幾乎沒有參考價值 | 延遲對每一筆成交的影響 |
限價單那一列最重要。想像在麵包店櫃檯排隊,店裡以你的價格賣麵包,但在輪到你之前就賣完了。K 棒回測只看到麵包在你的價格賣出,所以記錄你買到了。實際交易中,價格常常碰到你的限價、把排在你前面的委託成交完,然後就掉頭離開。
依照以下規則,可以讓 K 棒回測更接近你實際能交易的情況:
- 在 K 棒收盤時做決定,並在下一根 K 棒執行。這稱為下一根 K 棒執行。
- 只有當價格穿越限價至少一個跳動點時,才算限價單成交。
- 當停損與停利都落在同一根 K 棒內,假設停損先成交。
- 選擇一個 K 棒週期,使一筆典型交易持續許多根 K 棒,讓單一 K 棒內的走勢只決定少數結果。
滑價與成本對短週期策略有多大限制?
持倉時間越短,每筆交易的平均波動越小,但每筆交易的成本不變。因此成本會佔短週期策略結果更大的比例。滑價是回測假設的價格與你實際成交價格之間的差距。
這項檢查只需要一個減法:
淨平均每筆損益 = 毛平均每筆損益 − 一買一賣(來回)成本
毛平均每筆損益是扣除成本前每筆交易的平均結果。一買一賣(來回)成本包括進場與出場的手續費和交易所規費,加上兩側的滑價。兩個數值要用相同單位表示,例如跳動點。AlphaPrime(Valynox) 的績效報表會列出每筆交易的結果,可以拿平均每筆損益,和來回成本用同一個跳動點單位對照。
假設性範例
兩個策略交易同一個合約。一買一賣(來回)成本為 2.5 個跳動點:手續費與規費相當於 0.5 個跳動點,加上每側 1 個跳動點的滑價。策略 A 使用 1 分鐘 K 棒,毛平均每筆損益為 3 個跳動點。策略 B 使用 60 分鐘 K 棒,毛平均每筆損益為 20 個跳動點。扣除成本後,A 每筆只剩 0.5 個跳動點,所以成本佔去其毛結果的 80% 以上。B 剩下 17.5 個跳動點,成本佔 12.5%。現在把滑價加倍為每側 2 個跳動點,一買一賣(來回)成本變成 4.5 個跳動點。A 現在每筆虧損 1.5 個跳動點,B 仍然每筆保有 15.5 個跳動點。
跳動點大小、每跳動點價值與交易所規費都由交易所訂定,也可能調整。這些數值以交易所的合約頁面為準。在回測中設定成本之前,請先查看該頁面與你券商的收費表。關於手續費與滑價的完整建模方法,請見回測中的交易成本與平均每筆損益檢驗。
散戶演算法交易者適合哪些 K 棒週期?
從 1 分鐘到 1 日的 K 棒,是散戶期貨交易者比較實用的範圍。這個範圍中較長的一端,平均波動與成本之間有更大的空間。針對每個 K 棒週期,在相信結果之前,請先檢查最後一欄的項目。
| K 棒週期 | 典型持倉時間 | 成本佔平均每筆損益的比例 | 要檢查什麼 |
|---|---|---|---|
| 1 分鐘 | 數分鐘 | 高 | K 棒內的成交、限價單假設、滑價加倍後的結果 |
| 5 到 15 分鐘 | 不到一小時到一個交易時段 | 中等 | 交易時段的開盤與收盤、消息公布時間 |
| 30 到 60 分鐘 | 數小時到數天 | 較低 | 隔夜跳空、每個測試區間內是否有足夠的交易筆數 |
| 日線 | 數天到數週 | 低 | 交易筆數較少,所以需要較長的歷史資料 |
短 K 棒會產生許多交易,而許多交易看起來像是有力的證據。但它們也讓搜尋有更多雜訊可以擬合。如果你測試許多規則變化並留下最好的一個,它的回測通常會比未來的實際結果好(Bailey, Borwein, López de Prado and Zhu, 2014)。請用搜尋過程中沒看過的資料來評估策略。推進分析的做法是在一個區間調整參數,再在下一個區間測試。AlphaPrime在其策略檢驗中執行這些檢查,分為基礎、標準與完整三組。
從第一次執行就把真實的成本放進搜尋。AlphaPrime 的回測會在你選擇的交易時段內,以手續費、滑價與下一根 K 棒執行來評估每個候選策略。因此排名反映的,已經是 K 棒測試能誠實模擬的成交結果。
如果你使用 AlphaPrime,這代表:在一筆典型交易會持續許多根 K 棒的 K 棒週期上搜尋,在第一次執行前就設定好成本(下一根 K 棒成交是固定規則),並以樣本外結果來評判候選策略。速度競賽屬於 HFT 業者。把你的研究時間花在優勢能撐過成本的策略上,更有價值。
常見問題
散戶可以做高頻交易嗎?
散戶可以頻繁交易,但無法做專業意義上的高頻交易。HFT 依賴主機共置的伺服器、直連的行情資料,以及排在委託隊伍前面的位置。散戶的委託要先經過網路與券商,所以更快的業者會在委託到達之前就把機會拿走。
演算法交易與高頻交易有什麼不同?
演算法交易是指由固定規則決定進場與出場、再由電腦執行的任何交易。高頻交易是演算法交易的一種,持倉數秒或更短,優勢來自速度。在 15 分鐘或日 K 棒上的策略屬於演算法交易,但不是高頻交易。
在 1 分鐘 K 棒上做極短線,等於 HFT 嗎?
不是。在 1 分鐘 K 棒上做極短線,持倉是數分鐘,並不仰賴微秒等級的反應。不過它與 HFT 有一個共同的問題:每筆交易的平均波動很小,所以手續費與滑價會佔掉很大的比例。在相信結果之前,請用真實成本以及加倍滑價來測試。
可以用分鐘 K 棒回測 HFT 策略嗎?
不行。分鐘 K 棒看不到委託隊伍、每個時點的價差,也看不到 K 棒內價格移動的先後順序。HFT 策略需要以每一筆委託簿訊息建立的模擬。分鐘 K 棒適合在已完成的 K 棒上做決定、並在下一根 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.

