TradeLearn|1469學交易 trade1469.com
簡
第 04 章目錄 · 10 節本章產物:可證偽觀點改寫範本
第 04 章 第 9 節·約 16 分鐘

可證偽和回測是什麼關係?回測檢驗的到底是哪一句話

先寫下你的第一反應 · 30 秒

你找到一個規則,拿過去八年的行情回測,每年都賺。這份回測證明了什麼?寫一句話就行。

只存在你自己的瀏覽器裡。學完這節,課末會把它拿出來跟你對一下。
Snow
本節結論

回測檢驗的是一句寫死的規則:哪個品種、哪段時間、怎麼進怎麼出、扣多少成本,在過去那段資料上表現怎樣。它不檢驗你對行情的看法,也不檢驗明年。能回測,前提是這句規則每一步都能讓機器判。跑之前先寫好「什麼結果算它失敗」,再留一段資料先不看,最後只考一次。看完結果再回頭改規則,就是在打補丁。

小白理解:跑回測之前,本子上先寫三行:規則原話、什麼結果算它失敗、哪段資料先不看。三行沒寫完,先別跑。

一
回測考的是誰

回測檢驗的是一句規則,不是你的看法

「原油跌多了會反彈」,這是看法。它沒法回測:跌多少算多?彈多少算彈?幾天之內?機器不知道怎麼判,你自己判,到時候又總能判成對的。

把它寫成規則:原油期貨日線,收盤連著 5 天比前一天低,第二天開盤買進,買進那天算第 1 天,拿到第 20 天收盤賣出;同一時間只拿一筆;每筆來回扣 0.1% 的成本。這句話每一步都能讓機器判,十個人跑出來是同一個結果。這就是 04.03 講的判卷測試,換成了規則的樣子。

回測跑的就是這句話。它賺了,說明的是「這句規則在這段資料上、扣這個成本,沒虧」;它說明不了「原油跌多了會反彈」這個看法對,那幾年原油要是一路漲,隨便哪天買都賺。它虧了,也只說明這一句不行,看法可能只是沒寫好。

回測檢驗的那一句話,拆開是五樣示意
品种 原油期货日线 时间段 2010~2017 年 进出规则 连跌 5 天,次日开盘买 拿到第 20 天收盘卖 成本 每笔扣 0.1% 失败标准 事先写好 什么结果算它错 不在这句话里:你对原油的看法、明年会怎样 回测对这两样一个字也没说

讀圖:五樣寫全,回測才知道該算什麼、算完怎麼判。最常漏的是金色那格:沒寫失敗標準,跑出什麼結果你都能說「還行」。

機器怎麼判一筆:2012 年 5 月原油期貨日線

讀圖:5 月 2 日到 8 日連著五天收盤一天比一天低,8 日收在 97.01。規則 9 日開盤按 97.38 買進,拿到第 20 天,6 月 6 日收盤 85.02 賣出,這一筆扣完成本虧了一成二多。規則不挑好壞,回測裡每一筆都這麼判,虧的也照記(示範規則,不是買賣建議)。

二
先寫判卷標準

失敗標準寫在跑之前,再留一段先不看

回測最常見的樣子:先跑,看結果,再決定這個結果「算不算好」。年化一成,說「還行」;虧了,說「這幾年行情特殊」。怎麼跑都能找到說法,這份回測就變成了 04.06 的萬能解釋。

所以順序要倒過來。跑之前寫好:什麼結果算這句規則失敗。比如「扣成本後每筆平均不到 0,或者不如同期隨便哪天買進、拿同樣天數的平均,就算失敗」。後半句是比較基準(手冊 t3-21 講過):原油要是那幾年整體在漲,隨便買都賺,規則得比隨便買好,才算它自己的本事。

再把資料切成兩段。前一段叫樣本內,隨你試引數、挑最好的;後一段叫樣本外,鎖起來,挑完以後只跑一次,跑完不改。樣本外就是這句規則的考場。

先寫標準,再挑引數,最後考一次示意
第 0 步 写好失败标准 样本内 2010~2017 随便试,挑出最好的一组 样本外 2018~2025 锁住,只考一次 考完再改参数:样本外被你看过,就变成了样本内

讀圖:左上那一格要最先寫。右邊那一段的價值只有一個:它沒參與挑選。你只要按它的結果改過一次規則,它就不再是考場。

推演:樣本內挑出的冠軍,放到沒看過的八年原油期貨日線 · 2018 年起先蓋住

跑之前寫下的一頁(示範規則,不是買賣建議):

規則原油期貨日線,收盤連著 N 天比前一天低,第二天開盤買進,買進那天算第 1 天,拿到第 M 天收盤賣出;同一時間只拿一筆
成本每筆來回扣 0.1%(手續費加滑價,示範,算得偏多)
要試的N 從 1 到 6,M 取 1、2、3、5、10、20,一共 36 組
挑法2010~2017 年裡,筆數不少於 20 的組,挑扣成本後每筆平均最高的一組
失敗標準2018~2025 年每筆平均不到 0,或者不比同期隨便哪天開盤買進、拿同樣天數的平均高,就算失敗
不算的一段2020 年 3 月到 6 月原油跌到過零下,漲跌幅沒有意義,這段不算,持倉也不跨過它

樣本內跑完,排在前面的五組:

連跌幾天買拿幾天筆數每筆平均(扣成本)

冠軍是「連跌 5 天買、拿 20 天」。同一句規則一字不改,放到 2018~2025 年,每筆平均會怎樣?

算例:冠軍在樣本內外各賺多少,按標準判卷
三
試了幾次

每改一次規則,就是一次新的考試

上面那一頁寫著「36 組」。這個數要跟著冠軍一起報。你只試一組,它好看,有幾分說服力;你試了 36 組挑最好的,它好看,有一部分是挑出來的:36 組裡總有幾組碰巧趕上了那幾年的幾筆大行情。試得越多,冠軍裡運氣的成分越大(手冊 t3-14、t3-26 講過過擬合和多重檢驗,這裡不重講)。

樣本外跑完,你多半會想改:換個天數,加個條件,樣本外就更好看了。這一改,就是 04.05 說的打補丁,只不過補在了規則上。改出來的是新版本,按 04.08 的規矩,記錄從零開始,它的考場只能是以後的新行情。

試 1 次的第一名,和試 36 次的第一名示意
只试 1 组 好看,就有几分说服力 36 组里的第一名 试了 36 组,挑最高的 高出来的那截,有一部分是运气

讀圖:右邊每個點是一組引數在樣本內的成績。第一名站得比別人高,一部分是規則真有點東西,一部分是它碰巧踩中了那幾年的幾筆大行情。換一段資料,運氣那部分不會跟著來。

回測報告上只寫冠軍的成績,等於考試只報最高分、不報考了幾次。冠軍旁邊寫上「36 選 1」,再寫上樣本外有沒有被看過。

2
成立條件

什麼時候回測算得上一次檢驗

  • 規則每一步都能讓機器判。裡面有「趨勢明顯時」「放量」「看情況」這種詞,回測出來的是你當時怎麼理解這些詞,下次你未必這麼理解。
  • 筆數夠多。十幾筆的樣本外,一兩筆大的就能把結論翻過來;日線規則至少攢幾十筆再談結論。
  • 成本按你實際做得到的扣,持倉越短、換手越勤,成本佔得越多。
  • 樣本外真沒看過。挑引數前你已經翻過那幾年的圖,知道哪年大跌、哪年大漲,那段也算不上完全乾淨,結論要再打個折。
  • 這些都滿足了,回測也只說到過去為止。市場的參與者和規矩變了,規則可以照樣失效,所以上線以後要接著記錄、接著判卷。
3
落地動作

研究本上加一頁:回測登記

每跑一個回測之前,先寫下這四行,寫上日期:

  1. 規則原話:品種、時間段、進出規則、成本,寫到機器能判。
  2. 失敗標準:一個數,加一個比較基準。比如「每筆平均不到 0,或不如隨便買」。
  3. 哪段先不看:樣本外從哪天到哪天。
  4. 一共試了幾組:每試一組記一筆,冠軍旁邊寫「幾選 1」。

樣本外跑完,照第 2 行判卷,結果填進去,不改前三行。想改,開新的一頁,寫「第 2 版」,從零記。計畫單上用這條規則下單時,「觀點(五樣)」那欄的「憑什麼」寫成「第幾版規則,樣本外判卷結果」;填可證偽觀點改寫範本時也這麼寫。

四行沒寫完,先別跑回測。已經跑完、看過結果才補寫的,標上「事後補寫」,這份回測只能當探索,不能當證據。
4
檢驗方法

月底翻一次研究本

  1. 這個月跑過的回測,有幾份是先寫失敗標準、後跑的?數一數比例,目標是全部。
  2. 每條正在用的規則,旁邊有沒有「幾選 1」和「樣本外判卷結果」?缺一樣,先停用,補齊再用。
  3. 樣本外跑完以後又改過規則的次數。每改一次,就該多出一頁新版本;沒有新的一頁,就是改在了原版本上。
  4. 已經上線的規則,把實盤或模擬的前 20 筆每筆平均,和樣本外的每筆平均擺在一起看。差一大截,先回去查成本和執行,再查規則。
5
常見誤讀與反例

這幾種用法是錯的

「回測賺錢,說明我的看法對」

回測檢驗的是那句規則,看法只是你寫規則的起點。規則賺錢,錢可能來自看法,也可能來自那幾年品種整體在漲,或者某一兩筆碰巧的大行情。想知道是不是看法的功勞,就得事先寫好比較基準,規則要比隨便買好才算。

「樣本外不好,把樣本外也拿來調一調」

樣本外一旦用來挑引數,它就成了樣本內,你手裡不再有沒看過的資料。調完以後的規則看起來兩段都好,那是你把兩段都背下來了。要檢驗它,只能等以後的新行情。

反例:一個品種不過,就換下一個品種

老林(示意人物,按常見做法概括,不是真人真事)的規則在第一個品種上樣本外沒過,他換一個品種,再換一個,哪個過了就說「這規則在這個品種上有效」,還管這叫「跨品種驗證」。他其實是把品種當成了又一個引數:試了三個品種,第三個過了,這就是三選一的冠軍,旁邊得寫「3 選 1」。真要跨品種驗證,是事先寫好在哪幾個品種上一起考、過幾個才算過,考完不換。

「樣本外過了,就可以上大部位」

樣本外過了,只說明這句規則這一次沒被打臉。一次考試的筆數往往不多,運氣照樣摻在裡面。上線先用小部位,接著記錄,攢夠了筆數再談加。

30 秒自測

考怎麼用,不考誰說的

1. 假設一條「連跌幾天就買、拿幾天賣」的規則,樣本外扣完成本還賺,也比隨便買好。這能說明什麼?

回測只管那一句寫死的規則和那一段資料。它不替你的看法作證,也不替明年作證。

2. 樣本外跑完,你發現把連跌天數從 5 天改成 4 天,樣本外好看得多。下一步:

你是看了樣本外才挑的 4 天,這段資料已經被用來挑引數了。新版本只能拿沒看過的行情去考。

3. 跑回測之前,最該先寫下來的是:

失敗標準寫在後面,跑出什麼都能說「還行」。先寫好,結果出來才有卷可判。
+
手冊已經講過

要補基礎,看這幾節

本課講交易思想和決策方法,不提供買賣訊號,也不承諾收益。文中行情都是歷史日線,用來說明道理,不代表以後會怎麼走。