【MQL4】OrderSend Error 4051の原因と解説方法。かなり簡単な理由だった

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

MQL4でEAを作成中に、OrderSendのエラー4051で少してこずりました。大した原因ではなかったんだけど、このエラーは、取引注文の不正な引数が原因で発生することが多く、新しいプログラマーにとっては特に困惑する問題です。本記事では、このエラーの原因を分かりやすく解説するとともに、実際に解決した具体的な方法を共有します。

目次

エラー4051

MQL4でEAを構築していると、「OrderSend error 4051」というエラーに出くわすことがありますが、このエラーは、送信されるオーダーの引数が正しくないことを示しています

この問題を解決しない限り、トレードが出来ません。私の場合もこのエラーに頭を抱えましたが、原因が解るとこれは見込の上ではとても簡単な問題でした。

エラー4051の原因

MQL4でEAやインジケータを作っているプログラマーには御用達のこちらのFC2ブログをみると

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

エラー内容は以下のようになっていました。

ERR_INVALID_FUNCTION_PARAMVALUE無効な関数の引数値
Invalid function parameter value
引数、何か間違っていたかなと、いろいろ見なおしたんだけど、原因は超簡単な理由でした。

原因はロット数

原因は、選択した通貨ペアの最低ロット数より低いロットでエントリーしようとしていたことにありました。MQL4のOrderSend関数では、ロット数が通貨ペアのルールを滿たしていない場合、このエラーが生じます。

たとえば、以下の通貨ペアでは、0.10ロットが最低であるのに、0.01ロットを指定するとオーダーが拒否されます。

通貨ペアを選択して、右クリック⇒仕様から確認できます。

OILWTI_USDの最低ロット数は0.1ですが、僕は0.01のロットでエントリーしていました。

まとめ

ロットに関する要件は、設定されたブローカーによって異なり、通貨ペアや利用するプラットフォームによって変わります。まあ、プログラム上で最低ロット数を取得するという手もありますが、いずれにせよ一律ではないのでご注意ください。

矢野テックのトレード結果やプログラム使った予測について

パスワードされた記事は、LINEでお友達になってくれた方に公開しています。

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

友だち追加

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

この記事を書いた人

仮想通貨botや、MT4のEA開発、インジケーターなどを作ってます。このブログではFXの基礎的な知識から検証のまとめなどを書いていきたいと思ってます。

プログラムや手法のご質問は各記事のコメント欄からお願いします。

なお、トレードの結果などはLINEでお友達になった方に報告してます。ぜひなってください

コメント

コメントする

目次