記事"マーケットでの公開前にトレードロボットに行うべき検査"についてのディスカッション - ページ 4

 

とても良い!

 

Expert Advisor の 自動テスト 中に緊急終了が発生し、「Order Send Error #131: ERR_INVALID_TRADE_VOLUME」というメッセージを受信した。取引ロボットのエラーを素早くキャッチして修正する方法」のセクションで、問題の解決 策がmql5で示されています。しかし、私のExpert Advisorはmql4で書かれています。どうすればよいでしょうか?Expert Advisorはどのように動作すれば出来高の正誤チェックに 合格しますか?

 
Sergey Vrady:

Expert Advisor の 自動テスト 中に緊急終了が発生し、「Order Send Error #131: ERR_INVALID_TRADE_VOLUME」というメッセージを受信した。取引ロボットのエラーを素早くキャッチして修正する方法」のセクションで、問題の解決策がmql5で示されています。しかし、私のExpert Advisorはmql4で書かれています。どうすればよいでしょうか?Expert Advisorはどのように動作すれば、出来高の正誤チェックに 合格できますか?


mql5と mql4はほとんど同じ言語 です。唯一の違いは関数の名前です、

出来高計算のコードを添付していただければ、mql4への翻訳をお手伝いします。

 

たぶん、この代わりに

//--- タケプロフィット・レベルに変化があるかどうかをチェックする。
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-sl)>tp);

こうするんだ:

//--- タケプロフィット・レベルに変化があるかどうかをチェックする。
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-tp)>point);

その方がいいと思う。

 
Almaz Allaberenov:

たぶん、この代わりに

こうするんだ:

その方がいいと思います。

コピーペースト、修正します。

 

こんにちは。

記事をありがとうございました!

何か誤解しているのかもしれませんが、freeze_levelとstops_levelのチェックに不正確な点があると思います。

テストによると、距離は "not less than "levelであるべきで、テーブルでも >= 、すべてがフィットします。しかし、コードでは>>となっています。

例えば

TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
TP_check=(TP-Bid>stops_level*_Point);

では、正しい方法は何でしょうか?

 
Oleksii Chepurnyi:

テストによると、距離は "not less than "レベルであるべきで、テーブルでも >= 、すべてがフィットする。しかし、コードでは>>となっている。

である。

ということは、>=が正しいのか、>>が正しいのか?

信頼性のためには、より厳しい条件を要求したほうがよい。
 
Rashid Umarov:
信頼性を高めるためには、より厳しい条件を要求する方がよい。

まあ、それは取引操作の 前にExpert Advisorで整理することができます。

チェック関数自体で >= を使う方が正しいのでしょうか?それとも何か問題があるのでしょうか?

 
Oleksii Chepurnyi:

まあ、取引操作の 前にExpert Advisorで整理することはできます。

しかし、チェック機能自体では >= それはより正しいですか?それとも何か問題があるのでしょうか?

時々、間違ったストップの問題があります。私は通常、"stoplevel+1ポイントより大きい "ことをチェックします。
 
Artyom Trishkin:
時々、間違ったストップで問題が発生することがある。私は通常、"more stoplevel+1 point "をチェックするようにしている。
しかし、その場合、トレードを失敗する可能性があります。