はじめに
ここでは、XMのMT4はうまくバックテストをしてくれない時がある事について記載しています。
最近『XMでEAを導入してバックテストしているが売買してくれない』というお問合せがありました。
エラー内容はタイトルの通り「OrderSend error 131」だったのですが、中々一筋縄では解決しなかったのでどうやってバックテストでEAが売買できるようになったのかを記載していきたいと思います。
あまり起きない事象かもしれないですが、XMでEAが売買しないというお問合せをちょいちょい頂くので「OrderSend error 131」で困っている方は参考にしてみてください。
「OrderSend error 131」とは
「OrderSend error 131」とは新規注文時等のロットサイズが不正だった場合に発生するエラーです。ブローカーが定めている最小ロットサイズを下回ったり、上回ったりした場合に発生します。
今回お問合せ頂いた方はXMのMT4を使ってバックテストをしているとの事だったので、XMの最小ロット数を確認したところ0.01ロットでした。そしてテストしているロット数も確認したところ0.01との事でした。
エラーになる要素がない?
XMは0.01ロットが最小ロットなので、0.001ロット等の変な事をしないと「OrderSend error 131」は発生しません。何でエラーが出ているんだろうかと私も迷いました。
解決策
何度もお問合せ者さんとやり取りし、ロット数以外の部分も問題無いか確認しました。
が、結論として
でした。なので結局エラー内容「OrderSend error 131」は正しかったのですが、XMは0.01ロットからトレードできるのに何故0.1ロットからでしかバックテストできないのかは謎でした。
別環境だとロット数0.01でもバックテストできる
今回、調査が難航した理由として私のXMのMT4環境では0.01ロットでもバックテストできました。
お問合せ者さんとXMのMT4のバージョン情報も確認しましたが同じでした。
違いがあるとすれば、お問合せ者さんがリアル口座(KIWAMI口座)環境で私がデモ口座環境だったのでその違いぐらいです。ただ、その違いで0.01ロットでバックテスト出来ないのはとてもタチが悪いです。
今回はお問合せ者さんが色々な情報や問題のキャプチャー等を共有して頂いたり、沢山のテストモジュールを実行して頂いたりと非常に協力的で助かりました。なんとか解決にたどり着きましたが、情報共有が難しかった場合問題は闇の中の可能性もありましたね。
さいごに
エラー解決方法は以上になります。
結局、エラー内容は正しかったけど環境によって
- 0.01ロットからバックテストが出来る
- 0.1ロットからバックテストが出来る
とロット数の最小取引数が変わってしまう事象があったので問題解決に時間がかかりました。
もし、XMや他の環境でのバックテスト時に「OrderSend error 131」エラーが発生し売買してくれない場合は、一度ロット数を見直してバックテストするとうまくいくと思うので試してみてください。
※ EAのサンプルソースを一覧表にまとめました
※オンラインレッスンやってます
コメント
私も有ります、マイクロ口座でしたけど、、
今回とは違いますね。
なんでだろう?
なんでだろう?
なんで、なんでだろう?
こちらでも問題の事象を再現できたら解決できる事もあるんですけどね・・・。
なんでだろうですね。