← 返回部落格 · 2026年08月20日 · 約4分鐘讀完
各位交易者朋友,大家好。今天咱們不聊虛的,聊聊一本在量化圈被翻爛了的書——《量化投資策略》。很多朋友跟我抱怨:“這書裡的策略我都跑過回測了,年化收益看著特別美,怎麼一到實盤就原形畢露,甚至爆倉出局?”其實,這並不是書裡的策略不行,而是大家在看書和寫程式碼的時候,把最核心、最容易被忽視的細節給漏掉了。
做中國期貨,不管是主觀還是量化,最怕的就是“想當然”。回測曲線上天,實盤賬戶入地,這種落差感我懂。今天我就以一個老交易員的視角,結合這本經典著作,跟大夥兒掏心窩子聊聊,那些藏在字裡行間、決定生死存亡的量化投資策略細節。這些內容,不僅是我的交易心得,更是無數真金白銀砸出來的教訓。
倖存者偏差與未來函式:你以為的聖盃其實是陷阱
《量化投資策略》裡反覆強調過一個概念,但很多人看一眼就翻過去了,那就是“未來函式”。什麼是未來函式?簡單說,就是你在計算今天的交易訊號時,用到了明天才能知道的資料。這種錯誤在回測裡極其隱蔽,卻能讓你的策略變成“神運算元”,實盤卻變成“接盤俠”。
舉個最常見的例子。有些朋友喜歡用當日最高價作為突破買入訊號,程式碼寫成:“如果價格突破當日最高價,則以最高價買入”。聽起來沒毛病對吧?但仔細想想,當價格突破當日最高價的那一瞬間,當日的最高價就已經被重新整理了,你永遠不可能在“當日最高價”那個點成交,因為那個點是走完一天後回頭才能確認的。這就是典型的未來函式。
再比如財務資料的釋出。如果你在回測時,用某公司年報的資料(比如淨利潤大增)去匹配當年1月1日的股價,這也是未來函式。因為年報通常要到次年3、4月份才釋出。在期貨裡,比如農產品的USDA報告,如果你用報告公佈後的資料去測算報告公佈前的倉位,同樣是作弊。
書中還提到了“倖存者偏差”。你在回測股票池時,只用了現在還活著的股票,那些退市的、ST的都被你剔除了,那你的策略當然表現好。期貨雖然沒有退市,但主力合約的移倉換月同樣存在這個問題。如果你只看主力合約的連續指數,而沒有考慮移倉時的升貼水損耗,你的回測收益就是虛胖的。
引數孤島與過度擬合:少即是多的哲學
咱們做量化的,最容易犯的毛病就是“調參強迫症”。寫好一個均線交叉策略,跑一下回測,發現收益一般。於是開始遍歷引數,短期均線從5測到20,長期均線從20測到60。最後發現,短期均線用13,長期均線用47的時候,年化收益最高,夏普比率爆表。你以為你找到了財富密碼,其實你只是把歷史資料擬合得完美無缺。
《量化投資策略》裡特別警告過“過度擬合”。怎麼判斷你的引數是不是過度擬合?看“引數平原”。如果你發現13和47的收益很高,但改成12和46,或者14和48,收益就斷崖式下跌,甚至變成負的,那這個13和47就是“引數孤島”。這種孤島在未來的實盤行情中,稍微一點波動就會失效。
真正穩健的量化引數,應該是一片“平原”。比如短期均線在10到15之間,長期均線在40到50之間,收益雖然不是最高,但都比較穩定,沒有出現劇烈的跳躍。這就說明你的策略捕捉的是市場的某種底層邏輯,而不是特定歷史片段的巧合。
解決過度擬合的一個有效方法是前向分析。把你的歷史資料分成兩段:樣本內(比如2015-2020年)和樣本外(比如2021-2023年)。只在樣本內資料上調參,找到引數平原後,直接放到樣本外資料去跑。如果樣本外表現依然穩健,這個策略才算及格。千萬別用全部資料去最佳化引數,那叫自欺欺人。
滑點與手續費的隱形吞噬:別讓利潤在摩擦成本中蒸發
很多新手在寫策略時,回測設定裡手續費填0,滑點填0。這簡直是耍流氓。在中國期貨市場,滑點和手續費是決定日內策略生死的命門。書裡雖然講了交易成本的概念,但只有你真正算過賬,才會覺得肉疼。
咱們拿螺紋鋼(rb)舉個具體的例子。螺紋鋼1手是10噸,最小變動價位是1元/噸。假設你做一個高頻的動量突破策略,每天交易5次。交易所手續費加上期貨公司佣金,算它萬分之1(約0.0001),開平倉各收一次。如果價格在4000元/噸,一手合約價值40000元,手續費雙邊大約是8元。
接下來算滑點。你用市價單去追突破行情,往往遇到的是盤口單薄的真空期,買入價可能比訊號觸發價高1-2個跳動點,賣出時又低1-2個跳動點。假設單邊滑點1個點,雙邊就是2個點,對應金額是20元。
| 專案 | 單次交易成本(1手) | 每日交易5次成本 |
|---|---|---|
| 手續費(雙邊) | 8元 | 40元 |
| 滑點(雙邊2個點) | 20元 | 100元 |
| 合計摩擦成本 | 28元 | 140元 |
看到了嗎?每天光摩擦成本就要吃掉140元。如果你的策略每天平均賺不到140元,那在回測裡看著是賺錢的,實盤必虧無疑。這就是為什麼很多看著勝率70%的日內策略,實盤卻虧得底掉。
所以,在回測時,一定要把滑點設定得保守一點。對於螺紋鋼,至少設定1個跳動點的滑點;對於波動大的鐵礦石(i,1手100噸,1個跳動點50元),滑點甚至要設定2個點。只有把最壞的情況考慮進去,你的交易心得才是紮實的。
實戰應用:將量化細節落地中國期貨市場
理論說完了,咱們來看看怎麼把這些細節落實到具體的中國期貨品種上。量化投資策略不是放之四海而皆準的,必須因地制宜。
螺紋鋼(rb)的均線策略引數平原測試
螺紋鋼是中國的國民品種,趨勢性很好,但震盪起來也很要命。如果你用雙均線交叉策略,千萬別用網上隨便抄來的“5日和20日”金叉死叉。你把引數在5-15和20-40的區間內做個三維圖,你會發現,在螺紋鋼上,短期均線10-12,長期均線30-35這片區域是一個比較平緩的高原。這說明這個引數組合對螺紋鋼的日線級別趨勢捕捉比較穩定。實盤中,你可以在這個區間內定期微調,而不是死守一個孤島引數。
鐵礦石(i)的波動率突破與滑點控制
鐵礦石的波動率比螺紋鋼大得多,經常出現跳空和長陽長陰。做鐵礦石的突破策略,如果用市價單,滑點能把你虧哭。我的經驗是,對於鐵礦石,儘量用限價單。比如突破關鍵阻力位時,不追漲,而是掛一個比突破價稍微低一點點的限價單,等價格回踩時成交。這會犧牲一定的成交率(可能錯過20%的機會),但能把你剩下的80%交易的滑點成本降到最低。在回測時,一定要模擬這種“部分成交”的情況,這樣你的期望收益才是真實的。
豆粕(m)與原油(sc)的跨品種對沖細節
豆粕受外盤大豆影響大,原油受國際地緣政治影響大。這兩個品種都有夜盤,且夜盤經常出現跳空。如果你做這兩個品種的均值迴歸策略,千萬不要用盤中均價(VWAP)作為訊號觸發點。因為夜盤的跳空會瞬間擊穿你的止損,而你的盤中均價訊號根本來不及反應。正確的做法是,對於這類容易跳空的品種,用日線收盤價作為訊號源,第二天開盤後根據開盤價的偏離度再決定是否入場。這雖然會晚一天,但能避開跳空帶來的致命一擊。
從紙面回測到實盤執行:心態與系統的雙重考驗
《量化投資策略》這本書最後其實點到了一個核心:策略是人執行的。回測裡你的最大回撤是20%,你可能覺得“沒問題,我能扛住”。但在實盤裡,當賬戶從100萬跌到80萬的時候,你看著每天跳動的浮虧,真的能面不改色地繼續下單嗎?
大多數人在實盤迴撤到10%的時候,心態就崩了,開始手動干預策略,結果往往是剛平倉行情就反轉了。這就是實盤和回測最大的區別:回測沒有情緒,實盤全是人性。這也是為什麼很多量化交易者最後變成了“手工量化”——策略是量化的,手是自己的,管不住手,再好的策略也白搭。
要解決這個問題,唯一的辦法就是逐步建立對系統的信任。不要一上來就上重資金。先用小資金跑三個月,看看實盤和回測的偏差有多大。如果偏差在合理範圍內(比如收益相差不超過15%),再慢慢加倉。記住,活下來比賺得多更重要。
另外,系統的健壯性也很重要。不要把所有資金押在一個策略上。你可以配置一個趨勢跟蹤策略(比如螺紋鋼和鐵礦石),再配置一個對沖套利策略(比如豆粕和原油的跨期)。當趨勢策略震盪回撤時,套利策略可能正好賺錢,平滑整體資金曲線。這也是書裡強調的分散化投資原則。
讀完《量化投資策略》,我最大的感觸是:量化交易不是尋找一個印鈔機,而是建立一套嚴謹的工程體系。每一個程式碼的細節、每一個引數的選擇、每一筆成本的核算,都是這座大廈的磚瓦。忽視細節,大廈將傾;敬畏市場,方能長遠。
各位朋友,量化這條路不好走,但走通了就是一片天。如果你已經打磨出了自己的交易系統,想檢驗它在真實行情壓力下的表現,可以參加模擬考核實戰驗證。在真金白銀投入之前,用考核的標準來逼自己遵守紀律,測試系統的穩定性,這絕對是一個價效比極高的選擇。祝大家在中國期貨市場裡,都能找到屬於自己的那片引數平原。