MQL4(MT4) OrderExpirationの使い方

MQL4 Reference
スポンサーリンク

OrderExpirationの使用方法

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

使用GPTs:EA Creator

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

回答

OrderExpiration関数は、MetaTrader 4 (MT4) プラットフォームで選択された注文の有効期限を取得するために使用されるMQL4言語の関数です。この関数は、特に保留中の注文(たとえば、リミット注文やストップ注文)の有効期限を管理する際に役立ちます。有効期限は、注文が自動的にキャンセルされる日時を示します。

OrderExpiration関数の基本使用法

OrderExpiration関数は引数を取らず、選択された注文の有効期限をdatetime型で返します。この関数を使用する前に、OrderSelect関数を使用して対象となる注文を選択する必要があります。

使用例

以下の例では、アカウントの全ての保留中の注文を検索し、それぞれの注文の有効期限を取得して表示します。

void OnStart()
{
    // 保留中の全ての注文を検索
    for(int i = 0; i < OrdersTotal(); i++)
    {
        if(OrderSelect(i, SELECT_BY_POS))
        {
            // 保留中の注文(リミットまたはストップ注文)のみを対象
            if(OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT || OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
            {
                // 注文の有効期限を取得
                datetime expiration = OrderExpiration();

                // 有効期限が設定されている場合、それを表示
                if(expiration > 0)
                {
                    string expiryStr = TimeToString(expiration, TIME_DATE | TIME_MINUTES);
                    Print("注文 #", OrderTicket(), ": 有効期限 ", expiryStr);
                }
                else
                {
                    // 有効期限が設定されていない場合
                    Print("注文 #", OrderTicket(), " には有効期限が設定されていません。");
                }
            }
        }
    }
}

注意点

  • 注文の選択: OrderExpirationを使用する前に、OrderSelect関数で適切な注文が選択されていることを確認してください。
  • 保留中の注文のみ: OrderExpiration関数は、保留中の注文(リミット注文やストップ注文)に対してのみ有効です。市場注文には適用されません。
  • エラーハンドリング: OrderSelect関数がfalseを返した場合、つまり注文の選択に失敗した場合は、GetLastError関数を使用してエラーコードを確認し、問題の原因を特定することが重要です。
  • 時間の扱い: OrderExpiration関数から返されるdatetime値は、MT4プラットフォームが使用するサーバー時刻に基づいています。この時刻をローカル時刻や他のタイムゾーンに変換する必要がある場合は、適切に変換する処理を追加する必要があります。

OrderExpiration関数を使用することで、特定の保留中の注文の有効期限を把握し、注文管理や戦略の調整に役立てることができます。特に、市場が大きく変動するイベントが予定されている場合や、特定の条件下でのみ取引を実行したい場合に有用です。

MQL4リファレンス

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

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

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

関数名概要
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をコピーしました