[Mona1.0]ごく単純なルールを持つEAをつくってみる

Pocket

Udemyのビデオコースを見ながら、MQL5の勉強をしているのですが、とりあえず簡単なものでもつくってみたほうが良さそうなので、単純なEAをとりあえず作ってみました。

仕様

今回つくったEAの仕様はこんな感じにしました。

  • 取引数量は0.1ロット(1lot=100,000通貨)
  • EAが保有するポジションは1つのみ
  • 5EMAが10EMAを上にクロスしたらロング(5EMAが10EMAを下にクロスしたら決済)
  • 5EMAが10EMAを下にクロスしたらショート(5EMAが10EMAを上にクロスしたら決済)
全コード

インクルードと変数の用意

注文などのトレード操作を行うためにTrade.mqhをインクルードしておきます。

今回は取引数量を固定としますが、変数Lotを宣言しておいて、これに取引数量を入れておきます。

また、複数のポジションを持たないようにIsTradingフラグを用意しています。ポジションを持っている場合はtrueです。加えて、現在のポジションの方向を保持するTradingTypeも宣言しておきます。これは決済時に使います。

EMAの用意

今回は短期として5EMAを、中期として10EMAを用意します。

インジケータのデータを利用するには、データ格納用の配列と、インジケータへのハンドルを作成して、必要なタイミングでデータをコピーします。

インジ用配列の初期化とインジケータハンドルの生成をするコードOnInit()内部に書いておきました。

売買の判断

売買の判断基準は

  • 「5EMAが10EMAを上にクロス」
  • 「5EMAが10EMAを下にクロス」

それぞれ

  • ema5[1]<ema10[1]  &&  ema5[0] > ema10[0]
  • ema5[1]>ema10[1]  &&  ema5[0] < ema10[0]

と記述できます。

また、既にポジションを開いている場合、これらは決済基準になります。

以上の条件による売買処理をOnTick()内部に記述します。

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。