MQL4におけるOrderSend()関数について解説

MQL4のOrderSend()関数は、MetaTrader 4 (MT4)で新規注文を実行するための主要な関数です。

この関数は、成行注文や指値注文、逆指値注文などを設定するために使用されます。以下に、OrderSend()関数の詳細な説明を示します。

目次

OrderSend()関数の構造

OrderSend()関数は、以下の形式で使用されます

OrderSend(
    string symbol,           // 通貨ペア名
    int cmd,                 // 注文タイプ
    double volume,           // ロット数
    double price,            // 注文価格
    int slippage,            // スリッページ
    double stoploss,         // ストップロス価格
    double takeprofit,       // テイクプロフィット価格
    string comment = NULL,   // コメント
    int magic = 0,           // マジックナンバー
    datetime expiration = 0, // 有効期限
    color arrow_color = clrNONE // エントリーマークの色
);

引数の詳細

  1. symbol: 取引する通貨ペアを指定します。例として、”USDJPY”のように指定します。また、Symbol()関数で現在のチャートの通貨ペアを指定することもできます.
  2. cmd: 注文の種類を指定します。以下のようなタイプがあります:
    • OP_BUY: 成行買い
    • OP_SELL: 成行売り
    • OP_BUYLIMIT: 指値買い
    • OP_SELLLIMIT: 指値売り
    • OP_BUYSTOP: 逆指値買い
    • OP_SELLSTOP: 逆指値売り.
  3. volume: 取引のロット数を指定します。通常、0.1ロットで1万通貨を表します.
  4. price: 注文の価格を指定します。成行注文の場合、買いはAsk、売りはBidを指定します.
  5. slippage: 許容するスリッページの最大値をポイントで指定します.
  6. stoploss: 損切りの価格を指定します。設定しない場合は0を入力します.
  7. takeprofit: 利益確定の価格を指定します。設定しない場合は0を入力します.
  8. comment: 注文に対するコメントを指定します。コメントが不要な場合はNULLを指定します.
  9. magic: 注文を識別するためのマジックナンバーを指定します。手動取引の場合は0です.
  10. expiration: 指値・逆指値注文の有効期限を指定します。無期限の場合は0を指定します.
  11. arrow_color: エントリーマークの色を指定します。デフォルトはclrNONEです.

戻り値とエラー処理

OrderSend()関数は、注文が成功すると注文番号(チケット番号)を返し、失敗すると-1を返します。

エラーが発生した場合は、GetLastError()関数を使用してエラーコードを取得できます。この関数を使用することで、MT4での自動売買やトレーディング戦略の実装が可能になります。

サンプルソース

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // Order parameters
   string symbol = Symbol(); // 現在のチャートの通貨ペアを取得
   int cmd = OP_BUY; // 成行買い注文
   double volume = 1.0; // 取引ロット数
   double price = Ask; // 成行買い注文の価格はAsk
   int slippage = 3; // 許容スリッページ
   double stoploss = 0; // ストップロス価格(設定しない)
   double takeprofit = 0; // テイクプロフィット価格(設定しない)
   string comment = "My Buy Order"; // 注文コメント
   int magic = 123456; // マジックナンバー
   datetime expiration = 0; // 有効期限(設定しない)
   color arrow_color = clrGreen; // エントリーマークの色

   // Send order
   int ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);

   // Check result
   if(ticket < 0)
     {
      Print("OrderSend failed with error #", GetLastError());
     }
   else
     {
      Print("Order placed successfully with ticket #", ticket);
     }
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

コードの説明

  • Symbol(): 現在のチャートの通貨ペアを取得します。
  • OP_BUY: 成行買い注文を指定します。
  • Ask: 成行買い注文の価格として使用される現在の買値です。
  • OrderSend(): 注文を送信する関数です。成功すると注文番号(チケット番号)を返し、失敗すると-1を返します。
  • GetLastError(): エラーが発生した場合に、そのエラーコードを取得します。

このコードは、MT4プラットフォーム上で実行されるエキスパートアドバイザー(EA)の一部として使用できます。実際に使用する際には、取引条件やブローカーの仕様に応じてパラメータを調整する必要があります。

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

この記事を書いた人

池田 直哉 池田 直哉 メタプロアカデミー創業者・講師

オリジナルのEAを作ることができるようになるWebスクール【メタプロアカデミー】を運営しています。プログラミング未経験の方が最短1ヵ月で勝てるオリジナルEAが作れるようになります。

目次