💬

MQL5ForumにEAをアップロードする際の注意点

2024/11/20に公開

はじめに

MQL5フォーラムでは不正なEAかどうかを自動的に判定してくれるバリデーション機能がある。

バリデーション機能で不正なEAかどうかを判定するが、現実的にそんなことはないであろうというテストケースまで判定されるので、要注意。

ケース1 過剰なスプレッド

バリデーション時に過剰なスプレッドの際のテストがされる。
エントリー時に複数ポジションのSL/TPを変更するEAの場合、BuyLimit / SellLimit / BuyStop / SellStopの記述を正確に行わないとエラーが出て、バリデーションが止まる。
解決策として、AskとBid値を取得し不等号でSL/TPを動かす処理を入れることで解決。

ケース2 最大ロット処理

最大ロット時のテストが実行される。

通常の証券会社であればあり得ないのだが、EURUSDの最大ロットが0.01で設定されているテストが実行され、エラーが出てしまい、リアルに1日詰まっていた。
解決策として、最大ロットを取得して、最大ロット以上の注文を処理しないようなロジックを作成する。
(↑現実的に最大ロットでエントリーをするようなEAはないとは思うが以下のような処理を書いておく)

最後に

不正なEAを消すという名目でテストをしているのはわかるが、流石にやりすぎじゃない?というものもある・・・
また見つかり次第追記します。

Discussion