MQL4(MT4) OrderSendの使い方

MQL4 Reference
スポンサーリンク

OrderSend()の使用方法

MQL4 (MT4)のOrderSend()の使い方をChatGPTに確認しました。

使用GPTs:EA Creator

MT4 MQL4のOrderSendの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。

回答

MT4のMQL4でOrderSend関数を使用する際の実装例として、買い(BUY)注文と売り(SELL)注文の基本的な使い方を紹介します。また、実装時に注意すべきポイントも合わせて解説します。

OrderSend関数の概要

OrderSendはMT4で取引を実行するための関数で、新しい注文を開くために使用されます。以下はその基本的なシグネチャです。

int OrderSend(
   string    symbol,      // 通貨ペア
   int       cmd,         // 取引の種類
   double    volume,      // 取引量(ロット数)
   double    price,       // 実行価格
   int       slippage,    // スリッページ
   double    stoploss,    // ストップロス価格
   double    takeprofit,  // テイクプロフィット価格
   string    comment,     // 注文に関するコメント
   int       magic,       // 注文を識別するためのマジックナンバー
   datetime  expiration,  // 注文の有効期限
   color     arrow_color  // チャート上の矢印の色
);

買い注文の実装例

// EURUSDで0.1ロットの買い注文を出す例
double lotSize = 0.1;
double price = Ask; // Ask価格を取得
int slippage = 2;
double stopLoss = 0; // ストップロスなし
double takeProfit = 0; // テイクプロフィットなし

// 注文を送信
int ticket = OrderSend("EURUSD", OP_BUY, lotSize, price, slippage, stopLoss, takeProfit, "Buy Order", 0, 0, clrBlue);
if(ticket < 0)
{
    Print("OrderSend failed with error #", GetLastError());
}
else
{
    Print("Buy order placed with ticket #", ticket);
}

注意点

  • スリッページ: slippageは、指定された価格と実際の執行価格の最大許容差です。市場が急激に動いた場合に、指定した価格より悪い価格で実行されるのを防ぎます。
  • 価格の正確性: priceパラメータは、買い注文の場合はAsk価格、売り注文の場合はBid価格を使用します。価格はNormalizeDouble関数を用いて適切な桁数に丸めるべきです。
  • エラーハンドリング: OrderSendが失敗した場合、GetLastError関数を使用してエラーコードを取得し、その原因を把握することが重要です。
  • 注文の識別: magicパラメータを使用して、異なるEAや戦略による注文を区別できます。これにより、特定の注文を追跡しやすくなります。
  • 実行速度: OrderSendはリアルタイムの取引実行を行いますので、高速な実行環境を確保することが望ましいです。

この例と注意点を参考にして、MQL4での注文送信機能を実装してみてください。各パラメーターの詳細な説明や追加の機能については、MQL4の公式ドキュメントを参照することをお勧めします。

MQL4リファレンス

式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/trading/ordersend

他のトレード関数の使用方法

以下のそれぞれのリンク先で確認していますので、ご参照ください。

関数名概要
OrderClose指定されたチケット番号、ロット数、クローズ価格、スリッページを指定して特定の注文を閉じるために使用されます。成功した場合、真を返します。
OrderCloseBy2つの相反する注文を相殺するために使用され、一方の注文を閉じ、もう一方には相当する利益または損失が記録されます。
OrderClosePrice最後に閉じられた注文のクローズ価格を返します。注文が選択されている必要があります。
OrderCloseTime注文が閉じられた正確な日時を返します。注文が閉じられていない場合は、ゼロを返します。
OrderComment注文に関連付けられたコメントを返します。
OrderCommission注文にかかるコミッションの金額を返します。
OrderDelete指定されたチケット番号の保留中の注文を削除します。成功した場合、真を返します。
OrderExpiration保留注文の有効期限を日時形式で返します。有効期限が設定されていない場合は、ゼロを返します。
OrderLots注文のロット数を返します。
OrderMagicNumber注文に割り当てられたマジックナンバーを返します。これは注文を識別するためにEAによって使用される数値です。
OrderModify既存の注文のパラメータ(価格、ストップロス、テイクプロフィット、有効期限等)を変更します。成功した場合、真を返します。
OrderOpenPrice注文が開かれた価格を返します。
OrderOpenTime注文が開かれた正確な日時を返します。
OrderProfit選択された注文の詳細情報をエキスパートログに出力します。
OrderProfit注文から得られた利益または損失を返します。
OrderSelect指定されたチケット番号の注文を選択するか、全注文の中から特定の注文を選択します。成功した場合、真を返します。
OrderSend新しい注文を送信します。注文のタイプ、量、価格、ストップロス、テイクプロフィット等を指定できます。成功した場合、注文のチケット番号を返します。
OrdersHistoryTotalアカウントの取引履歴に含まれる注文の総数を返します。これには閉じられた注文とキャンセルされた注文が含まれます。
OrderStopLoss注文のストップロスレベルを返します。
OrdersTotal現在開いている注文の総数を返します。
OrderSwap注文にかかるスワップ料金を返します。
OrderSymbol注文が関連する通貨ペアを返します。
OrderTakeProfit注文のテイクプロフィットレベルを返します。
OrderTicket注文のユニークなチケット番号を返します。
OrderType注文のタイプ(買い、売り、買い停止、売り停止、買いリミット、売りリミット)を表す整数値を返します。

関連記事

スポンサーリンク
海外FXキャッシュバック口座開設ならTariTali(タリタリ)

コメント

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