以為魔術數字會影響成交
它不改變委託成交的任何環節。它是中繼資料:券商不會據此行動,它對價格、點差與滑價都沒有影響。
EA 在自己發出的每一筆委託上打的一個整數,用來認出自己的部位,並且不去碰帳戶裡的其他任何東西。
亦稱:EA 魔術號, 訂單魔術號, MAGIC
更新於 · 審閱於
每一筆交易上的名牌。終端並不在乎是誰開的倉,所以每個 EA 在委託單上寫下自己的號碼,之後只碰帶著這個號碼的單子。
MetaTrader 讓帳戶裡的每個 EA 看到完全一樣的全部部位。沒有標記,EA 就無法把自己的交易和你的、或者另一個 EA 的區分開——而管錯了部位的 EA,是一種會花錢的 bug,不是一種會報錯的 bug。
| 設定項 | 常見取值 | 備註 |
|---|---|---|
| 手動交易 | 0 | 終端的預設值。EA 絕不應該去管魔術號 0。 |
| 一個 EA、一個商品 | 任意唯一整數 | 好記就行——20260807、1001。 |
| 同一個 EA 跑在多個商品上 | 每張圖表一個值 | 否則 EURUSD 那份會把 GBPUSD 那份的部位平掉。 |
| 同時跑多套策略的組合 EA | 每條腿一個值 | 每條腿都需要自己的標記,才能被獨立移動停損與平倉。 |
一個帳戶上跑三個 EA。每個都打上自己的號碼,所以儘管三個都看得見全部六筆部位,每個部位迴圈只碰屬於自己的那幾行。
計算 if (PositionGetInteger(POSITION_MAGIC) != MagicNumber) continue;
結果 每個 EA 只管自己開出來的部位
示意數字,並非任何上架 EA 的實際紀錄。
把魔術數字當成帳戶設定,而不是策略參數:在 EA 上實盤之前寫下來,並且在有部位的時候絕不去改。
這個值本身對 MetaTrader 沒有任何意義——任何整數都行。唯一重要的是它在那個帳戶上跑著的東西裡是唯一的。
它不改變委託成交的任何環節。它是中繼資料:券商不會據此行動,它對價格、點差與滑價都沒有影響。
真正要緊的身分是正在執行的實例,不是產品。兩張圖共用一個標記,意味著兩份實例在管同一池部位。
已經開著的部位仍然帶著舊標記。改輸入項等於把它們拋下:EA 不再認得它們,它們會一直開著,直到手動平倉或被強制平倉。
終端的「交易」分頁並不顯示它。要按 EA 分開結果,必須從紀錄裡讀 DEAL_MAGIC,那是報表工具做的事——不是預設結單會給你的。
| 這裡公開的 14 支 EA | 數值 |
|---|---|
| 帶 MagicNumber 輸入項的商品 | 10 |
| 安裝時需要改動它的商品 | 0 |
| 要求你在沒有別的東西交易該商品的地方執行的商品 | 8 |
| 其中仍然帶著 MagicNumber 輸入項的商品 | 6 |
| 被不止一個商品佔用的交易商品 | 15 個裡的 7 個 |
| 不能共用一個帳戶的 EA 組合 | 91 組裡的 15 組 |
把第三行與第四行放在一起讀。給委託打標記是一件事;判斷一個新訊號是否被允許是另一件事,而一個把自己限制在一筆部位的 EA 必須先去數。如果它用 PositionsTotal() 加一次商品檢查來數,別人的部位就會算進總數;如果它先按 POSITION_MAGIC 過濾,就不會。這裡有六個商品帶著這個輸入項、卻照樣印著那句警告,這就告訴了你它們的部位計數用的是哪一種。
所以搭配的問題其實是商品的問題,而且在買之前就能回答。USD/JPY 同時被四個商品佔用—— Iridescence、Kestrel Hover、Lanternfish 與 Tessera——所以它們中任何兩個都不該放在一起。EUR/GBP 現在也有兩檔,Ballast 與 Thunderhead。只有 Orrery、Peregrine 與 Zerqon 不和任何人重疊。兩個確實重疊的時候,分開帳戶能解決標記解決不了的事:那樣每個 EA 數的就是一個只含自己交易的池子。我們的方法論會按商品記錄每一次公開的執行,這正是同一個區分從測量那一側看過去的樣子。