ea正常運行在大部分時候是指ea正常開倉交易,畢竟ea的主要用途還是用來實現按照某種策略進行自動交易的。如果從網上下載或者其它途徑獲得一個ea,開始它能正常運行交易,但是在中途修改參數后就不再交易了,那么問題出在哪里呢?
首先,我們不凡列舉一下ea在程序沒有問題,而在終端圖表上不能正常交易的幾種情況:
1、使用權限問題,有的ea本身有使用時間或賬號限制,如果使用到期或者賬號無使用權限,那它就不會在運行其交易函數了。不過這種情況,通常ea開發者會有彈出提示。
2、ea策略中含有交易時間段限制,有的策略是規定ea在指定時間段內交易,如果ea參數設置中有時間輸入變量,那么就是研究下它是否有限制交易時間段。通常從網上下載來的老外開發的ea,大部分變量名稱都是英文字符,不太好理解,所以如果存在時間相關變量,可以根據mt4圖表時間來嘗試調整下。
3、交易品種限制,有的策略是指定交易品種,那在參數中如果有交易品種變量,就要核對下它和當前圖表品種名稱是否一致。比如說,ea規定只交易迷你賬號的EURUSDmicro,那么用於標准賬號,就要對照圖表修改貨幣對名稱為EURUSD。
4、交易品種自身的交易時間限制,常見外匯對在周一早晨開盤后至周六臨晨收盤期間,都是可以交易的。而一些CFD指數類的產品,是有其特定的交易時間段的。如果用EA來交易這類品種,需要核對其是否在交易時間段內,不再交易時間段內,怎么修改EA參數都是沒有用的。因為它本身在這個時間段就是禁止交易的。
5、交易品種的交易規則限制,這方面問題較為常見,也是最有可能出現的問題,主要包含手數大小、止損止盈距離等。
交易手數,不同的平台,或者說同一平台的不同品種,在交易手數規則方面都是不同的,有的品種外匯對最小開倉是0.01手,有的是0.1手。同一平台內,外匯對最小開倉0.01手,而原油或其它品種有可能是最小開倉1手,那么當修改參數后ea不再交易時,就要核實一下是否有修改手數參數,修改后的手數是否符合交易品種的手數規則。
止損止盈,跟手數一樣,不同的品種或不同的平台,止損止盈的最小距離(止損水平)限制都是不同的。如果有修改ea的止損止盈參數,那么要核對它和當前交易品種的最小限制距離是否沖突。如果止損止盈設置小於當前品種的止損水平,那么就會出現開倉報錯,無法正常交易。
如果是掛單,也同樣要考慮到掛單距離及掛單的止損止盈是否符合品種的止損水平要求。
如果ea策略中含有加倉邏輯,那么也同樣要考慮到加倉距離及訂單的止損止盈是否符合品種的止損水平要求。
止損止盈及相關距離的點數問題,一般情況下,ea設置止損止盈或掛單等間距點數,都是從報價最后一位計算,比如黃金報價1901.23,那么3美金止損就是300點,而不能設置成30點,如果黃金報價是1901.230,那么3美金止損就是3000點,設置300點就無法開倉。這方面設置可以用模擬盤先行測試觀察。
6、ea智能交易開關的設置限制,在mt4平台,ea要正常運行,那么在加載ea到圖表之前,是需要先開啟智能交易開關的。智能交易開關的勾選可以參考下圖,如果在智能交易開關中勾選“圖表夾改變是禁用EA”,那么如果在加載EA的圖表上切換品種或時間周期,也會到帳智能交易開關中途關閉,從而EA就不再進行交易了。
ea智能交易開關的設置會影響ea交易
7、ea自身的交易策略限制,有一些ea限制賬號交易資金、盈虧次數、盈虧金額等,但這些限制條件滿足后,它本身就不會在進行交易了。這跟修改參數沒有關系。如果EA限制盈虧多少就不再交易,而ea中參數也帶有訂單識別碼參數,那么可以嘗試修改下訂單識別碼。
當然,上面也只是簡單的列舉下幾種可能出現的情況,具體的ea不運行的原因還是要根據具體的ea策略來區分對待的。
那么如何判斷是修改參數造成ea不運行還是其自身的策略限制呢?如果在修改參數之前一直運行,而自修改參數后就不運行了,同時上面列舉的幾種情況都沒有可能,那么我們可以將ea參數還原到默認參數在繼續觀察其是否交易。如下圖所示,在ea屬性框“輸入參數”頁面,點最右下角的“重設”,即可將ea參數恢復到默認參數。
ea參數恢復默認參數
如果ea參數恢復到默認參數后又開始交易,那么就可以排除ea內置策略限制限制方面的問題,把問題集中在交易品種的交易規則方面,對照默認參數逐一排查修改中間的錯誤原因即可。