程式交易教學

介紹OrdeModify()函數與避免先行測試錯誤的方法


很多EA都是在OrderSend()函數的後面直接加入OrdeModify()函數來設置StopLoss(停損)或TakeProfit(停利)。

因為在舊版本Build的MT4上用OrderSend()函數來設置StopLoss或TakeProfit的話會出現錯誤或拒絕下單的情況,所以會使用這種技術。

最近Build雖然已經改善了這個問題,但是在OrderSend()函數的後面直接加入OrderModify()函數的EA還是有很多。

部位不被結算的現象

在極少情況下,先行測試時會出現部位不被結算現象。

其原因就是在OrderSend()函數中沒有設置StopLoss或TakeProfit,而在後面直接設置了OrderModify()函數,導致出現錯誤令OrderModify()不能通過時,部位不被結算。

避免方法有兩種。

●1.用OrderSend()函數設置StopLoss或TakeProfit。
●2.確認OrderModify()函數的返回值來進行處理。

使用方法1時不需要再次查看,處理速度也會加快。

另外,歷史回測與先行測試的結果也會更加清楚明了。

使用方法2時一定要確認OrderModify()函數返回值。

大部分的EA都會確認OrderSend()函數的返回值。

但是,其中也有一部分EA沒有確認OrderModify()函數的返回值。

所以使用OrderModfiy()函數時務必要確認結果。

將EA自動程式交易應用於外匯與差價合約交易中

EA

我們以圖文形式詳細介紹有關EA自動程式交易的基本知識,以及在MT4/MT5平台上的安裝、參數設定方法、編碼等等內容。另外,對持有OANDA帳戶的客戶,還可以免費使用我們的獨有EA與指標工具。