MQL4でOrderSendエラーコード130 invalid stopsの解決策

※本ページはプロモーションが含まれています

バックテストでは正常に稼働するけど、リアル口座ではOrderSend時に、エラーコード130(Invalid Stops)が出てしまう。かなりあれこれ調べまくって、なんとかある程度は解決しました。記事に残しておこうと思います。普通に仕様通りにプログラム組むだけではだめで、対処は必須ですね。

目次

エラーコード130の意味

主に以下です。

  • 損切りや利益の設定価格が今現在価格にとても近い
  • 損切り、利益の計算が正しくない
  • 損切り、利益の小数点の桁数が多すぎる

取引所によってはOrderSend時にSL、TPを設定するとエラー

なんと、取引所によっては、OrderSend時に、引数でSL、TPを設定するとエラーになるそうです。マジかよ~。

矢野テック
矢野テック

XMはたまに通るけどエラーが帰って来るときもありました。

 

その場合は、損切り、利益は0で設定して、OrderModifyで変更するのが鉄板らしい。

ただし、成功しないときもある(マジかよ~)

 

以下のようにする事で対処しました。Long、Short、それぞれ用でオリジナル関数を作りました。こうすることで、メイン処理がごちゃつかない。

 

オーダー修正するリトライ部分は以下のような関数を作りました。

矢野テック
矢野テック

30回ほどリトライさせてます。やってみると分かるのですが、結構失敗します。

 

上記は、以下の方の処理を参考にさせて頂きました。

あわせて読みたい
OrderModify | MT4でEA自作しちゃお~ 当サイトはMetaQuotes Software社のMT4(メタトレーダー4)で、EA(自動売買)やカスタムインジケータを作成したいけど・・・ まず何をやったらいいのか分からずスタート地点で...

損切り、利益の価格が狭い時も発生

現在価格と比べて、損切りや、利益の金額設定が近すぎる時も、エラーコード130が発生します。ここで関係があるのが、ストップレベルです。

 

MQL4の公式ページに、これについて言及があります。

あわせて読みたい
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
矢野テック
矢野テック

結構盲点だったかも。

ストップレベルの確認方法は通貨ごと

最小設定値は、取引所ごと、通貨毎に異なります。

 

MT4上で、該当通貨にて「右クリック」⇒「仕様

 

ストップレベルは40と表示されています。これは、単位はポイントです。10分の1にすれば、pipsで表せます。

上記はXMTradingのUSDJPYのペアの表示。OrderSend時に損切り、利確最低ともに、4pipsは空けないといけないということが分かります。

選択通貨のストップレベルの取得

MarketInfo関数を使います。

小数点の桁数も重要

同じく小数点の桁数もかなり重要です。XMTradingのUSDJPYでは、3桁です。

ところが、普通にMQL4でdouble型で扱うと、小数点はdoubleの型の有効桁数で扱われます。桁数は15桁。

これも、桁数を揃えないと、リアルトレードでエラー130が発生します。

選択した通貨の桁数をチェックするには?

MarketInfoを使って、2番めの引数に、DIGITSを渡すと、チャート上の通貨の有効桁数が帰ってきます。

小数点の桁数を丸めるには?

NormalizeDouble関数を使います。1番めの引数は丸めたい数値、2番めは桁数です。

 

それでもポジションが残る事もあり

これで解決かと思ったんですが、30回リトライしても、SL、TPが設定できないときがあります。その場合は、逆指値、指値、ともに0のままなので、オーダーが残ったままになります。

 

矢野テック
矢野テック

うーん、困ったね。みんなどうしてんだろ。。

多少スリープかませるかとか、色々実験中です。

 

ブログランキングに参加してます。この記事が少しでもお役に立ちましたら、応援ポチっとお願いします。

にほんブログ村 為替ブログ システムトレード 自作EA派へ
にほんブログ村

お友達にMT4インジケータープレゼント中

機械学習使った日々の予測結果や、細かい試行錯誤の結果はLINEで公開しています。パスワード付き記事もこちらから。

また、今ならお友達には矢野テック自作のMT4用のインジケーターをプレゼント中です。

友だち追加

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

プログラマー。FXのMT4を使った自動売買EA作成やBOT作成などが趣味。2016年から元本10万円をどこまで増やせるか挑戦中。一旦は10万⇒700万⇒2017暴落 20万。ガチホからFXトレードに変更。 現在1000万円。その過程やノウハウは無料メール講座にまとめました。1か月で学べます。→無料メール講座

ご質問はコメント欄からお願いします

コメントする

目次