← 返回部落格 · 2026年08月19日 · 約5分鐘讀完
凌晨兩點,你盯著螢幕上的K線,長舒了一口氣。你的機械交易系統剛剛給你發了一個平倉訊號,這單賺了。但當你翻開交易記錄,卻發現這個月的總體收益依然是負的。你可能會很納悶:明明回測的時候,那條資金曲線平滑得像阿爾卑斯山的滑雪道,為什麼一到了實盤,就變成了過山車?
很多做中國期貨的朋友都跟我抱怨過這個問題。大家都在讀《機械交易系統》這類經典著作,都在試圖把交易變成一臺冷冰冰的印鈔機。但說實話,書裡的很多核心細節,往往被我們這些急功近利的交易者給忽略了。今天,作為XS Select的資深交易編輯,我想跟大家掏心窩子聊聊,在真實的交易心得裡,那些最容易被忽視的機械交易系統細節到底是什麼。
一、別被完美的回測騙了:滑點與手續費的“隱形刺客”
《機械交易系統》裡反覆強調過一個概念:系統在歷史資料上的表現,永遠不等於未來的真實表現。但很多人只記住了“歷史不代表未來”,卻忘了“歷史回測的環境根本不是真實環境”。
在絕大多數回測軟體裡,你的買單和賣單都是以當根K線的收盤價或者開盤價瞬間成交的。但在真實的中國期貨市場裡,這幾乎是不可能的。
1. 跳動單位與滑點的數學陷阱
咱們拿鐵礦石舉個例子。假設你的系統規定,突破800元/噸的關鍵阻力位就買入1手。回測裡,價格觸及800.0,你成交了。但在實盤中,當價格真的衝破800時,市場上全是跟你一樣搶籌的量化單。等你那單子打過去,可能成交價已經是800.5甚至801.0了。這0.5到1.0的差價,就是滑點。
鐵礦石1手是100噸,最小跳動單位是0.5元。如果每筆交易平均承擔1個跳動單位的滑點,也就是50元。如果你的系統一天交易3次,一個月60次,光滑點就吃掉你3000元。更別提還有開平倉的手續費。
很多看起來勝率60%、盈虧比1.5的“完美”系統,一旦加入了真實的滑點和手續費,立刻就變成了負期望值的碎鈔機。機械交易系統的第一課,不是怎麼找入場點,而是怎麼在回測里加上最苛刻的滑點假設。
2. 隔夜跳空的致命一擊
做中國期貨,夜盤和外盤的聯動是繞不開的坎。比如原油,白天你在國內盤看著走勢不錯,系統提示持有。結果半夜國際原油暴跌,第二天早上開盤直接跌停板。你的止損單在回測裡是有效的,但在實盤裡,跌停板上根本沒有流動性,你的止損只能掛在排隊佇列裡乾瞪眼。這種跳空帶來的滑點,往往是系統回撤超預期的罪魁禍首。
二、倉位計算:不是固定手數,而是“風險均等”
書裡有一個經常被一筆帶過,但實際上是整個系統靈魂的細節:倉位管理。很多交易者的機械系統裡,倉位規則非常簡單粗暴——“每次固定做1手”,或者“每次動用10%保證金”。這在實際操作中是極其危險的。
真正的機械交易系統,倉位計算的核心是“風險均等”。也就是說,不管你做什麼品種,每次入場前承擔的最大虧損金額,必須是固定的。
1. 用ATR來丈量風險
咱們得引入ATR(平均真實波動幅度)這個指標。假設你的賬戶總資金是10萬人民幣,你規定單筆交易的最大風險是1%,也就是1000元。
- 螺紋鋼:假設當前1手螺紋鋼的10日ATR是40個點(1點=10元/手)。你的系統要求止損放在入場價反向2倍ATR的地方,也就是80個點。那麼1手螺紋鋼的止損虧損是800元。因為你的最大風險是1000元,所以你可以買入1手(800元 < 1000元),甚至可以買入1.25手(向下取整為1手)。
- 原油:假設當前1手原油的10日ATR是15個點(1點=1000元/手)。同樣2倍ATR止損,就是30個點。1手原油的止損虧損是30000元!遠遠超過了你1000元的預算。這時候,你如果還按固定1手去買,一旦止損,賬戶直接重創。正確的做法是,這筆交易你根本不該做,或者需要把止損壓縮到極小的範圍內。
2. 波動率自適應的倉位
市場不是一成不變的。豆粕在橫盤整理時,ATR可能只有10個點;在天氣炒作爆發時,ATR可能飆升到30個點。如果你的倉位是固定的,在低波動期你賺得很少,在高波動期你卻承擔了巨大的風險。機械系統必須包含根據ATR動態調整手數的模組:ATR變大,手數減少;ATR變小,手數增加。這樣你的資金曲線才會真正平滑。
三、市場狀態過濾:趨勢系統在震盪市裡就是絞肉機
《機械交易系統》裡提到,沒有任何一個系統能適應所有的市場狀態。趨勢跟蹤系統在單邊行情裡大殺四方,但在震盪市裡就會因為頻繁的假突破而把利潤吐光。這是很多新手交易者吃大虧的地方。
大家往往只關注“怎麼入場”,卻忽視了“什麼時候不入場”。一個成熟的機械交易系統,必須自帶“市場狀態過濾器”。
1. ADX指標的實戰應用
最常用的狀態過濾器就是ADX(平均定向指數)。一般來說,ADX > 25代表市場處於強趨勢中,ADX < 20代表市場處於無趨勢的震盪狀態。
咱們來看一個真實的交易心得案例:2023年5月到7月,螺紋鋼主力合約在3600到3700這個區間內來回摩擦。如果你的系統是一個經典的“突破20日高點買入,跌破20日低點賣出”的唐奇安通道系統,你會被來回打臉。
| 交易次數 | 入場方向 | 入場理由 | 結果 |
|---|---|---|---|
| 第1次 | 多 | 突破3710 | 假突破,回落至3650止損 |
| 第2次 | 空 | 跌破3590 | 假跌破,反彈至3660止損 |
| 第3次 | 多 | 突破3720 | 再次假突破,止損 |
連續三次假突破,每次虧損60個點,1手就是1800元沒了。但如果你的系統里加了一個條件:只有當ADX > 25時,唐奇安通道的突破訊號才有效。那麼在這三個月裡,ADX一直在15到20之間徘徊,你的系統會自動遮蔽掉這些垃圾訊號,讓你空倉觀望。少做,往往就是賺。
四、系統衰退與引數鈍化:沒有永遠賺錢的聖盃
這是《機械交易系統》中最深刻的哲學,也是最容易讓人絕望的一點:系統是會衰退的。
很多交易者找到一個好引數,就以為找到了印鈔密碼,把它焊死在交易軟體裡,然後去環遊世界了。結果幾個月後回來一看,賬戶爆倉了。為什麼?因為市場參與者變了,市場結構變了,原來的引數失效了。
1. 為什麼引數會鈍化?
比如你用布林帶(20, 2)做豆粕的均值迴歸系統,價格觸及下軌買入,觸及中軌平倉。前幾年這個系統勝率極高。但隨著越來越多的量化基金湧入中國期貨市場,大家都看到了這個下軌的支撐,於是提前買入;或者市場波動加劇,價格直接擊穿下軌繼續下跌。你的引數就鈍化了。
2. 滾動最佳化與樣本外測試
書裡給出的解法是“滾動最佳化”。比如你用過去3年的資料最佳化引數,然後用這組引數交易接下來的3個月。3個月後,你把最新的3個月資料加進去,去掉最老的3個月資料,重新最佳化引數,再交易下一個3個月。
這聽起來很機械,但非常必要。不過要警惕“過度擬合”,不要為了追求歷史收益的最大化,把引數調得極其複雜。大道至簡,引數越少,系統的魯棒性(健壯性)越強。
五、實戰應用:把書本規則搬進中國期貨市場
說了這麼多理論,咱們來看看怎麼把這些細節真正落地到中國期貨的實戰中。我給大家梳理了幾個常見品種的機械系統框架思路。
1. 螺紋鋼:成交量配合的趨勢突破
螺紋鋼是中國期貨的國民品種,受宏觀政策和產業供需影響大,趨勢一旦形成,往往有延續性。
- 入場條件:價格突破過去20日高點,且當日的成交量大於過去20日平均成交量的1.5倍。這代表資金在真實推動。
- 過濾條件:當日ADX必須大於20,且MACD柱狀圖在零軸上方。
- 止損規則:入場後,將止損設在入場K線最低點下方2個跳動單位(即20元/手)。隨著價格上漲,採用吊燈止損法,止損線始終距離最高點1.5倍ATR。
2. 豆粕:天氣炒作期的波動率擴張
豆粕在每年的5月到8月(美豆種植和生長關鍵期)往往會出現劇烈波動,適合做波動率突破。
- 入場條件:計算過去10日的ATR。如果當日的最高價減去開盤價,大於過去10日ATR的0.8倍,且開盤價高於昨日收盤價,則做多。
- 倉位計算:賬戶總資金的2%除以(0.8倍ATR * 10),得出開倉手數。
- 止盈規則:不設固定止盈,當價格跌破10日均線時平倉。
3. 原油:應對跳空的時間過濾
國內原油受外盤影響極大,隔夜跳空風險極高。機械系統必須加入時間管理。
- 持倉規則:週五夜盤收盤前,無論盈虧,必須平掉所有頭寸,不持倉過週末,規避不可控的國際地緣政治風險。
- 止損規則:對於日內交易,如果開盤後30分鐘內價格未按預期方向運動,且跌破日內開盤區間,無條件止損。
結語:從紙上談兵到知行合一
讀完《機械交易系統》,最大的感觸是:交易不是一門玄學,而是一門嚴謹的工程學。每一個被忽視的細節——哪怕只是1個跳動單位的滑點,或者一次沒做的ADX過濾——都可能在長期複利中演變成一場災難。
書本給了我們圖紙,但把圖紙變成能在中國期貨市場裡乘風破浪的戰艦,還需要大量的打磨和測試。不要拿真金白銀去測試一個未經驗證的想法。想檢驗自己的交易系統,可以參加模擬考核實戰驗證,在沒有資金壓力的環境下,把你的滑點假設、倉位模型、狀態過濾器通通跑一遍,看看你的系統到底是個紙老虎,還是真的能在這個殘酷的市場裡活下來。只有當你的系統能在嚴格的模擬考核中證明自己,你才有資格在這個市場上談長期盈利。