FX-EA System Projectはこちら公式ラインに登録して
プレゼントをもらう

【MQL】EA(エキスパートアドバイザー)に必要な『Order系関数』についてわかりやすく説明してみた

MQL EA Order系関数MT4EA作成

Order系関数

Order系関数は主にEA(エキスパートアドバイザー)で使用する関数です。

今回はOrder系関数の中で良く活用される関数をご紹介したいと思います。

OrderSend関数

OrderSend関数は売買注文を送信する関数です。

OrderSend(Symbol(), CMD,Volume,Price,Slippage,SL,TP,Comment,Magic,Expiration,Color);
OrderSend(オーダーを送信する通貨ペアは?,注文方式は?,ロットは?,レートは?,スリッページは?,損切り価格は?,利確価格は?,オーダーにメモをつける?,マジックナンバーは?,オーダーの有効期限は?,チャート上に何色で表示する?);

cmdの注文は

  • OP_SELL
  • OP_BUY

のみ使用します。

また、priceには

  • Bid(売値)
  • Ask(買値)

のみ使用します。

例えば以下のように記述します。

OrderSend("USDJPY", OP_BUY, 0.1, Ask, 3, 0, 0, "EA", 1234, 0, Red);

OrderClose関数

OrderClose関数は、ポジションを決済することができる関数です。

OrderCloseは以下のように記述します。

OrderClose(ticket,lots,price,slippage,color);
OrderClose(チケットナンバー、ロット、価格、スリッページ、チャート上の色);

チケットナンバーとは、オーダーごとの固有の識別番号のようなものです。

OrderSend関数が成功するとOrderSend関数はチケットナンバーを返します。

int TicketNumber = OrderSend("USDJPY", OP_BUY, 0.1, Ask, 3, 0, 0, "EA", 1234, 0, Red);
OrderClose(TicketNumber,0.1,Bid,3,Yellow);

これでポジションの決済を行います。

OrderSelect関数

OrderSelect関数は、オーダーの詳細情報を取得できる関数です。

ポジションの情報を取得するには、どのポジションに対して情報を要求するのか宣言する必要があります。

オーダーの識別はOrderSelect関数で行います。

OrderSelect(ポジション番号、選択モード);

ポジション番号とは、チケットナンバーとは異なる識別番号で、

現在持っているポジション数-1が最大となる数のことです。

例えば、ポジションを3つ持っている場合は、それぞれのポジションに0,1,2という番号が割り振られています。

OrderSelect(0,SELECT_BY_POS);

この宣言をすることで、以下のような関数が活用することができます。

  • OrderOpenPrice関数:そのオーダーの約定価格
  • OrderOpenTime:そのオーダーの約定時間
  • OrderTicket関数:そのオーダーのチケット番号
  • OrderLots関数:そのオーダーのロット
  • OrderSymbol関数:そのオーダーの通貨ペア
  • OrderMagicNumber関数:そのオーダーのマジックナンバー
  • OrderType関数:そのオーダーの取引種別

詳しくは以下の記事を参照してください。

【MQL】OrderSelect関数で活用できる関数についてわかりやすく説明してみた
OrderSelect関数 OrderSelect関数はMQLのEA開発において頻繁に使用される関数であると共に、一番奥が深い関数です。 OrderSelect関数を理解しているとそうでないのでは雲泥の差です。 適切でないOr...

OrdersTotal関数(ポジションの総数)

現在の待機注文と保有中のポジションの合計を取得します。

エントリー中の注文と保留中注文の総数を返します。

例えば、エントリー中のポジション数が1、保留中の指値数が1あったとすると戻り値は2になります。

int OrdersTotal();

OrderTakeProfit関数(利益価格)

選択したポジションの利益確定価格を返します。

double OrderTakeProfit();

OrderStopLoss関数(損切り価格)

選択したポジションの損切り価格を返します。

double OrderStopLoss();

まとめ

今回はOrder系関数について紹介しました。

Order系関数はEAを作成する際に非常に重要になってきますので、しっかりと理解しておきましょう。

コメント

タイトルとURLをコピーしました