把狀態當成事件
偵測快線是否在慢線之上,在整段趨勢裡都為真。偵測它是否剛剛穿過,則還需要前一根 K 線——兩者的差別就是一次進場和幾十次進場的差別。
一種給予近期價格更高權重的移動平均線,因此比簡單平均更早轉向。EA 的趨勢過濾與交叉進場建立在它之上的次數,多過任何其他指標。
亦稱:EMA, 指數均線
更新於 · 審閱於
一條近期價格的平均線,對剛剛發生的事比對一段時間之前發生的事更上心。它比普通平均線轉得更快,所以在趨勢裡更有用,在盤整區裡更聒噪。
指數均線是 EA 趨勢邏輯的預設積木:它提供 ADX 這類指標刻意不提供的方向。它同時也是散戶 EA 中最被濫用、最被過度最佳化的部件——因為交叉規則寫起來容易,而它的兩個週期又太容易調到任何一段歷史都顯得獲利為止。
| 設定項 | 常見取值 | 備註 |
|---|---|---|
| 快/慢組合,短線 | 8 / 21 | 反應很快;會產生大量交叉,而其中多數並不是趨勢。 |
| 快/慢組合,中線 | 50 / 200 | 被廣泛關注的一對。訊號很少,而且給出的訊號來得晚。 |
| 單一趨勢過濾 | 進場週期上的 EMA 200 | 當作方向閘門用,而不是當作進場訊號。 |
| 套用價格 | Close | 常規且穩定。中位價或典型價會進一步平滑,並改變每一個回測結果。 |
| 訊號 K 線 | 最後一根已收盤的 K 線 | 讀取正在形成的 K 線,會產生在這根 K 線內部出現又消失的交叉。 |
讀狀態與讀事件的差別,這是 EA 程式碼裡最常見的一個均線錯誤。
在強趨勢裡測試時,兩個版本看起來都獲利。但其中只有一個是原本想要的策略。
計算 if (fast[2] <= slow[2] && fast[1] > slow[1]) → 向上交叉
結果 每次交叉進場一次,而不是每根 K 線進場一次
一條均線規則寫起來容易,湊出來也容易。所有值得檢查的事情,都關乎參數被挪動之後還站不站得住。
| 區間 | 含義 |
|---|---|
| 週期挪動 10% 結果就崩掉 | 被擬合到了測試視窗上。穩健的設定,它的鄰居也同樣能用。 |
| 很寬一段週期組合都表現相近 | 這個效應更可能是結構性的而不是擬合出來的,這正是最佳化曲面上出現平台區的含意。 |
| 沒有盤勢過濾的交叉 | 訊號在盤整區裡同樣會觸發,而在那裡它們大多虧損。這正是通常要加上 ADX 或波動率過濾去修正的問題。 |
| 在正在形成的 K 線上讀取 | 無法重現。同一段行情會因為跳價到達的時間不同而產生不同的進場。 |
移動平均的 `/indicators` 頁面講的是計算方式以及與 SMA 的比較;這一條講的是指數均線如何接進 EA 的邏輯裡。
偵測快線是否在慢線之上,在整段趨勢裡都為真。偵測它是否剛剛穿過,則還需要前一根 K 線——兩者的差別就是一次進場和幾十次進場的差別。
平滑曲面上的兩個自由參數,總能生出一份漂亮的回測。真正有價值的是相鄰的組合是否表現相近,這就是效應與擬合之間的分界。
在盤整區裡均線會不停交叉,而那些交叉幾乎全是虧的。過濾器不是對策略的最佳化——它是讓這套策略變得可用的前提。
它反應更快,而這把刀是雙刃的:在真實趨勢裡進場更早,在雜訊裡假訊號更多。哪一個更合適取決於策略,而兩者的差別比週期選擇的差別還要小。
這裡發布了十四個 EA,並附有各自完整的平倉記錄。其中沒有任何一個從指數移動平均線裡取方向。
| 判斷方向的機制 | EA 數量 | 具體是什麼 |
|---|---|---|
| 一目均衡表轉換線/基準線交叉 | 5 | Kestrel Hover、Orrery、Peregrine、Tessera、Zerqon |
| 疊放的簡單移動平均線 | 1 | Lanternfish —— M30 上的 SMA 25/50/75,進場在 M5 |
| 指數移動平均線 | 0 | —— |
| 交叉之外的其他機制 | 8 | RSI 極值、通道邊緣的回歸、K 線型態 |
這五個留下了交叉、捨棄了調參:轉換線與基準線的週期來自指標本身的定義,而不是來自網格搜尋。五個都讀取已收盤的 K 線,其中 Orrery 與 Peregrine 還要等訊號 K 線的實體超過其近期均值的若干倍才動手——這正是一個裸交叉所需要的盤勢過濾。它們的獲利因子在 1.27 到 1.46 之間,和目錄裡其餘產品處在同一檔,並沒有更高。
策略測試器的輸入參數頁為每個週期提供起始值、步長與終止值。請讀完整份結果,而不是只看最上面一行:一片彼此相鄰、表現接近的組合是效應,孤零零的一個尖峰則是擬合。這就是過度擬合在實務中的樣子,也是為什麼像ADX 這樣的過濾器應該排在再調一個週期之前。