階段 03進階

把一個想法變成可測試的策略

策略不是你對市場的一種感覺。它是一組明確到「兩個人照著做會得到完全相同結果」的規則。

2 分鐘閱讀進階

一個交易想法是對市場的一種感覺。一套策略則是一組規則,精確到「兩個不同的人拿到相同資料,會做出完全相同的交易」。系統交易幾乎所有的工作,都發生在這兩者之間的落差裡。

在你的想法撐過「被毫不含糊地寫下來」之前,它無法被測試;而在它被測試之前,你手上不是一套策略——你手上是一個意見。

不含糊是基本要求

每一個條件在任何一根 K 線上都必須能用是或否回答。「趨勢強的時候進場」不是規則。「當 50 期移動平均線在 200 期之上,且價格收在 50 期之上時進場」才是。

如果你發現自己需要看圖才能決定訊號是否發生,那條規則還沒寫完。那個需要詮釋的空隙,正是主觀判斷滲進來的地方,而主觀判斷無法被回測。

參數:命名、設界、而且要少

你規則裡的每一個數字都是一個參數。給每一個參數一個名字與一個合理的範圍。移動平均線的期數是參數;停損倍數與時段過濾也是。

數量極度重要。每多一個參數,就會乘上你能嘗試的組合數,也就乘上「你找到的最佳組合是貼合雜訊而非真實效應」的機率。三到四個參數可以處理;十五個不行。

在看資料之前先寫下來

最常見的方法論錯誤,是邊看著你之後要測試的同一段資料、邊發展規則。你不是在發現一個型態;你是在描述眼前那張圖,然後在描述吻合時恭喜自己。

先從邏輯、以及對另一段期間的觀察寫下規則,然後才測試。如果測試失敗,修改的是邏輯,不是參數——並且再一次測試在你開發時仍未使用過的資料。

先定義出場,再定義進場

新手執著於進場,把出場當成附帶的事。出場決定了你的平均獲利、平均虧損,因此也決定了期望值。進場多半只決定你有多少機會去驗證這件事。

把停損、目標、任何時間出場條件,以及當訊號反轉時部位會發生什麼事,全部寫下來——在跑任何一次測試之前。

構建

Create and backtest your systematic trading strategies without coding.

重點整理

  • 每一條規則都必須能在不詮釋圖表的情況下回答是或否
  • 參數要少——每多一個就乘上你擬合雜訊的方式
  • 在看你要測試的資料之前先把規則寫下來
  • 出場比進場更決定期望值;先定義出場
重點一覽
  • 每一個進場、出場與過濾條件都必須毫不含糊
  • 參數必須被命名、被設界,而且數量要少
  • 如果一條規則需要詮釋,它就無法被測試
  • 在看更多圖之前,先把規則寫下來
常見錯誤

把規則去貼合眼前那張圖,然後把結果稱為策略。

在 Strategist 上實作

閱讀不等於驗證

把你剛讀到的概念寫成明確的規則,然後測試它。那是唯一能知道它到底行不行的方法。

建立策略