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 // エントリーマークの色
);
引数の詳細
symbol
: 取引する通貨ペアを指定します。例として、”USDJPY”のように指定します。また、Symbol()
関数で現在のチャートの通貨ペアを指定することもできます.cmd
: 注文の種類を指定します。以下のようなタイプがあります:volume
: 取引のロット数を指定します。通常、0.1ロットで1万通貨を表します.price
: 注文の価格を指定します。成行注文の場合、買いはAsk
、売りはBid
を指定します.slippage
: 許容するスリッページの最大値をポイントで指定します.stoploss
: 損切りの価格を指定します。設定しない場合は0を入力します.takeprofit
: 利益確定の価格を指定します。設定しない場合は0を入力します.comment
: 注文に対するコメントを指定します。コメントが不要な場合はNULL
を指定します.magic
: 注文を識別するためのマジックナンバーを指定します。手動取引の場合は0です.expiration
: 指値・逆指値注文の有効期限を指定します。無期限の場合は0を指定します.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)の一部として使用できます。実際に使用する際には、取引条件やブローカーの仕様に応じてパラメータを調整する必要があります。