← 返回部落格 · 2026年08月18日 · 約4分鐘讀完
很多交易者朋友跟我抱怨過同一件事:“量化交易的書看了一大堆,回測曲線漂亮得像藝術品,可一拿到中國期貨市場實盤,就被揍得鼻青臉腫。”這其實不怪你,也不怪書。很多經典的量化交易書籍,比如Ernie Chan那本被奉為圭臬的《演算法交易》,裡面的案例大多基於美股或外匯市場。市場結構不同,流動性和參與者不同,直接照搬當然會水土不服。
今天咱們就坐下來,像喝茶聊天一樣,把《演算法交易》這本書裡最核心的幾個策略邏輯掰開揉碎,看看它們到底怎麼嫁接到中國期貨品種上。我們會拿螺紋鋼、鐵礦石、豆粕這些大家天天盯的品種舉例,給出具體的引數思路和實戰避坑指南。這篇交易心得不講虛的,只撈乾貨。
一、別把“演算法交易”想得太高深,它其實是個執行工具
很多朋友一聽到“演算法交易”,腦子裡浮現的就是華爾街的機房、微秒級的延遲和複雜的數學模型。其實在這本書裡,作者反覆強調了一個核心觀念:演算法交易不僅僅是尋找Alpha(超額收益),更是關於如何高效、低損耗地把你的交易意圖執行下去。
在中國期貨市場,這點尤為重要。我們的散戶參與度極高,盤口流動性分佈往往很不均勻。如果你是一個資金量稍微大一點的交易者,或者你是一個做日內高頻波段的選手,直接市價敲進去,滑點能吃掉你半個月的利潤。
所以,咱們今天分兩塊聊:一是策略邏輯層面的演算法(怎麼找買賣點),二是執行層面的演算法(怎麼把單子下進去不虧滑點)。
二、均值迴歸:螺紋鋼的“彈簧”效應怎麼抓?
《演算法交易》書中花了不少篇幅講均值迴歸。核心思想很簡單:價格偏離均值太遠,就像拉長的彈簧,最終會彈回來。在美股裡,作者常用Z-score來衡量偏離程度。這個思路放在中國期貨的“螺紋鋼”上,簡直是絕配。
1. 核心邏輯與引數設定
螺紋鋼是國內期貨市場流動性最好、產業客戶參與度最高的品種之一。它的特點是:大趨勢來的時候很猛,但大部分時間都在寬幅震盪。這就給均值迴歸提供了極好的土壤。
我們可以這樣設計一個簡單的均值迴歸模型:
- 標的: 螺紋鋼主力合約(比如 rb2405)。
- 指標: 計算20個交易日的收盤價移動平均線(MA20)和標準差。
- Z-score計算: Z = (當前價格 - MA20) / 標準差。
- 開倉規則: 當 Z-score > 2 時,說明短期超買,做空;當 Z-score < -2 時,說明短期超賣,做多。
- 平倉規則: 當 Z-score 迴歸到 0 附近(比如 -0.5 到 0.5 之間)時平倉。或者設定硬止損,比如 Z-score 絕對值突破 3.5 強制止損。
2. 實戰案例與避坑指南
舉個實戰的例子。去年某段時間,螺紋鋼在3800-4000區間震盪。某天因為宏觀利好刺激,價格突然拉昇到4050,此時你的模型計算出Z-score達到了2.3,觸發做空訊號。你進場做空後,接下來三天價格沒有繼續上衝,而是在4030-4050之間磨,隨後Z-score迅速回落到0.8,你在4035附近平倉,吃了一波順暢的迴歸利潤。
但這裡有個致命的坑:均值迴歸最怕遇到單邊大趨勢。如果那天晚上出了個重大政策,螺紋鋼直接高開高走拉到4200,你的Z-score會爆表。所以,在應用這個策略時,必須加上“狀態過濾器”。比如,檢查MA20的斜率,如果MA20連續3天向上抬頭且角度大於30度,說明趨勢已經形成,此時哪怕Z-score大於2,也堅決不開空單。這就是把書本知識結合中國期貨特性的改良。
三、動量突破:鐵礦石的“高鐵”怎麼上才不被甩飛?
說完了震盪,咱們聊聊趨勢。書裡提到的動量策略,在鐵礦石(i合約)上表現得淋漓盡致。鐵礦石的波動率極大,一旦形成趨勢,就像一列高鐵啟動,攔都攔不住。如果你用均值迴歸去摸頂抄底,大機率會被碾碎;但如果用動量突破,就能吃到大波段。
1. 突破訊號的過濾
最經典的動量突破就是唐奇安通道或者布林帶突破。規則很簡單:價格突破過去N天的最高價做多,跌破過去N天的最低價做空。但在鐵礦石上,假突破太多了。主力資金經常在突破邊緣來回掃損。
怎麼過濾?咱們可以結合成交量。只有當價格突破通道上軌,且當天的成交量大於過去5天平均成交量的1.5倍時,才確認為有效突破,進場做多。這就把那些缺乏資金推動的假突破過濾掉了。
2. 動態止損:用ATR給利潤上保險
動量策略的勝率通常不高,可能只有30%-40%,但盈虧比極佳。靠的就是“截斷虧損,讓利潤奔跑”。在鐵礦石上,固定點數止損是不科學的,因為它的波動率時大時小。這時候就要用到書裡提到的ATR(真實波動幅度均值)。
具體做法:
- 計算過去14天的ATR。
- 開倉後,初始止損設在開倉價下方 1.5倍ATR 的位置。比如開倉價800,ATR是15,止損就在 800 - 22.5 = 777.5。
- 隨著價格向有利方向移動,採用吊燈止損法,把止損線一直掛在最高點下方 2倍ATR 的位置。因為趨勢發展中ATR往往會放大,這樣能給出足夠的呼吸空間,不至於被日內的正常波動洗出局。
這種做法在鐵礦石上非常有效。你可能會因為假突破止損幾次,每次虧個兩三千塊,但只要抓住一次從700漲到900的單邊行情,一把就能把之前的虧損全賺回來,還能倒賺幾萬。這就是動量演算法的精髓。
四、配對交易:豆粕與菜粕的“蹺蹺板”遊戲
《演算法交易》書裡非常推崇統計套利,也就是配對交易。原理是找兩個高度相關的資產,當它們之間的價差偏離歷史均值時,做多被低估的,做空被高估的,等價差迴歸獲利。
在中國期貨裡,最經典的配對莫過於“豆粕”和“菜粕”。兩者都是飼料蛋白來源,下游需求高度替代,走勢基本同步。但因為各自的供需基本面短期擾動,價差會時不時出現異常。
1. 怎麼確定價差異常?
我們不能簡單看絕對價差,因為隨著價格重心的抬升,價差也會自然放大。同樣要用到統計學方法。你可以提取豆粕主力合約和菜粕主力合約過去60天的日收盤價,跑一個線性迴歸,算出它們的價差序列,然後再算這個價差序列的Z-score。
正常情況下,豆粕比菜粕貴600-800元/噸。如果某天因為菜籽到港延遲,菜粕被爆炒,價差縮小到了400元,此時Z-score可能達到了-2.5。這就意味著菜粕相對豆粕太貴了,或者豆粕相對菜粕太便宜了。
2. 實戰執行細節
這時候你的演算法應該發出指令:做多豆粕,做空菜粕。注意,這裡有個關鍵細節是“對沖比例”。不能簡單按1:1的手數對沖,因為兩者的合約乘數和波動率不同。豆粕是10噸/手,菜粕也是10噸/手,但菜粕的波動率通常比豆粕略大。你需要根據兩者的Beta值來分配手數。比如算出來Beta是1.2,那你可能需要買5手豆粕,同時空6手菜粕,來達到美元中性或者風險中性。
配對交易的好處是,你不需要去猜大豆到底會漲還是會跌,你只需要賭它們倆的“蹺蹺板”最終會恢復平衡。這種策略的最大回撤通常比較小,在震盪市裡是非常舒服的“撿鋼鏰”策略。但要注意政策風險,比如如果突然出臺限制菜粕進口的政策,導致兩者基本面徹底脫鉤,那就得果斷認錯離場,不能死扛。
五、執行演算法:原油期貨裡的TWAP與VWAP實戰
前面說的都是找訊號,現在說說怎麼下單。如果你是做中國期貨的原油品種(sc合約),你會發現它的盤口有時候很薄。如果你有100手要開倉,直接敲市價單,可能會成交在幾個不同的價位上,前三手是650,後面幾十手直接幹到655,這就叫衝擊成本。
《演算法交易》裡詳細介紹了TWIP(時間加權平均價格)和VWAP(成交量加權平均價格)演算法。咱們怎麼用?
1. TWAP:勻速入場
如果你判斷今天原油會有一波下跌,你想空進去。你可以把你的100手單子,拆分成50個小單,每隔3分鐘下一單2手。這樣不管盤口怎麼跳動,你最終的成交均價會非常接近這段時間的時間加權平均價。這能有效避免你自己的大單把價格打穿。
2. VWAP:跟著成交量走
VWAP更高階一點。它根據歷史成交量的分佈規律來拆單。比如原油期貨在上午9:00-10:00和下午14:30-15:00的成交量通常佔全天的60%。那麼你的演算法就會在這兩個時段多下點單,在成交清淡的中午少下點單。這樣你的成交均價就能無限貼近當天的真實均價。
對於資金量在百萬級別以上的交易者,不懂得用執行演算法,你的回測再好也是白搭,因為實盤的滑點會把你從盈利變成虧損。現在很多期貨公司的交易軟體都自帶TWAP/VWAP拆單功能,大家一定要去研究怎麼用。
六、結語:知行合一,去市場裡見真章
讀完《演算法交易》這本書,最大的感觸是:策略本身並不神秘,神秘的是如何把策略與具體的市場環境結合。無論是螺紋鋼的均值迴歸、鐵礦石的動量突破、豆粕菜粕的配對交易,還是原油的執行演算法,都需要你根據當下的波動率、政策面、資金面進行微調。引數不是死記硬背的,而是透過一次次試錯打磨出來的。
紙上得來終覺淺。如果你已經構建了自己的演算法交易邏輯,或者對上面提到的某個策略躍躍欲試,千萬別急著拿真金白銀去市場裡交學費。想檢驗自己的交易系統,可以參加模擬考核實戰驗證。在真實的行情波動、真實的壓力測試下,看看你的系統能不能扛住市場的毒打,能不能守住紀律的紅線。等你能在模擬環境裡做到知行合一,再帶著你的交易心得,去中國期貨市場裡乘風破浪也不遲。