把一個想法變成可測試的策略
策略不是你對市場的一種感覺。它是一組明確到「兩個人照著做會得到完全相同結果」的規則。
一個交易想法是對市場的一種感覺。一套策略則是一組規則,精確到「兩個不同的人拿到相同資料,會做出完全相同的交易」。系統交易幾乎所有的工作,都發生在這兩者之間的落差裡。
在你的想法撐過「被毫不含糊地寫下來」之前,它無法被測試;而在它被測試之前,你手上不是一套策略——你手上是一個意見。
不含糊是基本要求
每一個條件在任何一根 K 線上都必須能用是或否回答。「趨勢強的時候進場」不是規則。「當 50 期移動平均線在 200 期之上,且價格收在 50 期之上時進場」才是。
如果你發現自己需要看圖才能決定訊號是否發生,那條規則還沒寫完。那個需要詮釋的空隙,正是主觀判斷滲進來的地方,而主觀判斷無法被回測。
參數:命名、設界、而且要少
你規則裡的每一個數字都是一個參數。給每一個參數一個名字與一個合理的範圍。移動平均線的期數是參數;停損倍數與時段過濾也是。
數量極度重要。每多一個參數,就會乘上你能嘗試的組合數,也就乘上「你找到的最佳組合是貼合雜訊而非真實效應」的機率。三到四個參數可以處理;十五個不行。
在看資料之前先寫下來
最常見的方法論錯誤,是邊看著你之後要測試的同一段資料、邊發展規則。你不是在發現一個型態;你是在描述眼前那張圖,然後在描述吻合時恭喜自己。
先從邏輯、以及對另一段期間的觀察寫下規則,然後才測試。如果測試失敗,修改的是邏輯,不是參數——並且再一次測試在你開發時仍未使用過的資料。
先定義出場,再定義進場
新手執著於進場,把出場當成附帶的事。出場決定了你的平均獲利、平均虧損,因此也決定了期望值。進場多半只決定你有多少機會去驗證這件事。
把停損、目標、任何時間出場條件,以及當訊號反轉時部位會發生什麼事,全部寫下來——在跑任何一次測試之前。
構建
Create and backtest your systematic trading strategies without coding.
重點整理
- 每一條規則都必須能在不詮釋圖表的情況下回答是或否
- 參數要少——每多一個就乘上你擬合雜訊的方式
- 在看你要測試的資料之前先把規則寫下來
- 出場比進場更決定期望值;先定義出場
- 每一個進場、出場與過濾條件都必須毫不含糊
- 參數必須被命名、被設界,而且數量要少
- 如果一條規則需要詮釋,它就無法被測試
- 在看更多圖之前,先把規則寫下來
把規則去貼合眼前那張圖,然後把結果稱為策略。