注文プロパティ

取引操作の実行リクエストは、注文として定式化されます。各注文は、読み込みのための様々なプロパティを持っています。それらの情報は OrderGet...() 及び HistoryOrderGet...() 関数で得られます。

OrderGetInteger() 及び HistoryOrderGetInteger() 関数

ENUM_ORDER_PROPERTY_INTEGER

識別子

説明

Type

ORDER_TICKET

注文チケット。各注文に割り当てられる固有番号。

long

ORDER_TIME_SETUP

注文設定時刻。

datetime

ORDER_TYPE

注文の種類。

ENUM_ORDER_TYPE

ORDER_STATE

注文状態。

ENUM_ORDER_STATE

ORDER_TIME_EXPIRATION

注文の期限。

datetime

ORDER_TIME_DONE

注文の実行及びキャンセル時刻。

datetime

ORDER_TIME_SETUP_MSC

01.01.1970 から経過したミリ秒数で表された注文の実行が出された時刻。

long

ORDER_TIME_DONE_MSC

01.01.1970 から経ったミリ秒で表された注文の実行/キャンセル時刻。

long

ORDER_TYPE_FILLING

注文充填タイプ。

ENUM_ORDER_TYPE_FILLING

ORDER_TYPE_TIME

注文ライフタイム。

ENUM_ORDER_TYPE_TIME

ORDER_MAGIC

注文を出したエキスパートアドバイザーのID(各エキスパートアドバイザーは、独自のユニークな番号を作成するように設計されています)。

long

ORDER_REASON

注文の理由またはソース。

ENUM_ORDER_REASON

ORDER_POSITION_ID

実行後すぐに注文に設定されるポジション識別。注文の実行は注文を出すか、既存のポジション変更する約定となります。このポジションの識別子がこの時点で実行される注文のために設定されています。

long

ORDER_POSITION_BY_ID

ORDER_TYPE_CLOSE_BY型の注文の為の反対ポジションの識別子。  

long

OrderGetDouble() 及び HistoryOrderGetDouble() 関数

ENUM_ORDER_PROPERTY_DOUBLE

識別子

説明

Type

ORDER_VOLUME_INITIAL

注文の初期ボリューム。

double

ORDER_VOLUME_CURRENT

注文の現在ボリューム。

double

ORDER_PRICE_OPEN

注文で指定された価格。

double

ORDER_SL

決済逆指値。

double

ORDER_TP

決済指値。

double

ORDER_PRICE_CURRENT

注文シンボルの現在の価格。

double

ORDER_PRICE_STOPLIMIT

ストップリミット注文の指値注文価格。

double

OrderGetString() 及び HistoryOrderGetString() 関数

ENUM_ORDER_PROPERTY_STRING

識別子

説明

Type

ORDER_SYMBOL

注文シンボル。

string

ORDER_COMMENT

注文コメント。

string

 

OrderSend() 関数を使用して取引リクエストを送る場合、操作によっては注文の種類の指定が必要です。注文の種類は特別な構造体 MqlTradeRequesttype フィールドに含まれ、ENUM_ORDER_TYPE 列挙の値が使用出来ます。

ENUM_ORDER_TYPE

識別子

説明

ORDER_TYPE_BUY

成行買い注文。

ORDER_TYPE_SELL

成行売り注文。

ORDER_TYPE_BUY_LIMIT

買い指値注文。

ORDER_TYPE_SELL_LIMIT

売り指値注文。

ORDER_TYPE_BUY_STOP

買い逆指値注文。

ORDER_TYPE_SELL_STOP

売り逆指値注文。

ORDER_TYPE_BUY_STOP_LIMIT

注文価格に達すると、未決の買い指値注文はストップリミット価格で出されます。

ORDER_TYPE_SELL_STOP_LIMIT

注文価格に達すると、未決の売り指値注文はストップリミット価格で出されます。

ORDER_TYPE_CLOSE_BY

ポジションを反対のポジションで決済するための注文。

 

各注文には、その状態を説明するステータスがあります。情報を取得するには ORDER_STATE 修飾子とOrderGetInteger() または HistoryOrderGetInteger() 関数を使用します。使用可能な値は ENUM_ORDER_STATE 列挙に記載されています。

ENUM_ORDER_STATE

識別子

説明

ORDER_STATE_STARTED

注文がチェック済み、ブローカによっての受け入れがまだ。

ORDER_STATE_PLACED

受付済みの注文。

ORDER_STATE_CANCELED

クライアントによってキャンセルされた注文。

ORDER_STATE_PARTIAL

実行中の注文。

ORDER_STATE_FILLED

実行済みの注文。

ORDER_STATE_REJECTED

拒絶された注文。

ORDER_STATE_EXPIRED

期限切れの注文。

ORDER_STATE_REQUEST_ADD

注文が登録中(取引システムに配置)。

ORDER_STATE_REQUEST_MODIFY

注文が更新中(パラメータの変更)。

ORDER_STATE_REQUEST_CANCEL

注文が削除中(取引システムからの削除)。

 

現在の時刻(有効時間)で実行のための取引リクエストを送信するとき、価格と必要な売買量を指定する必要があります。また、金融市場では、リクエストされたボリューム全体が特定の金融商品で希望の価格で利用できるという保証はありません。したがって、リアルタイムの取引操作は、価格およびボリューム実行モードを使用して規制されます。モードまたは実行ポリシーは、価格が変更された場合、またはリクエストされたボリュームを現時点で完全に満たすことができない場合のルールを定義します。

価格実行モードは、ENUM_SYMBOL_TRADE_EXECUTION列挙のフラグの組み合わせを含むSYMBOL_TRADE_EXEMODE銘柄プロパティから取得できます。

実行モード

説明

ENUM_SYMBOL_TRADE_EXECUTIONの値

実行モード

 

(リクエスト実行)

以前に証券会社から受け取った価格で成行注文を実行します。

 

特定の成行注文の価格は、注文が送信される前に証券会社にリクエストされます。価格を受け取ると、指定された価格での注文の実行を確認または拒否できます。

SYMBOL_TRADE_EXECUTION_REQUEST

即時実行

 

(即時実行)

指定された価格ですぐに成行注文を実行します。

 

実行する取引リクエストを送信すると、プラットフォームは自動的に現在の価格を注文に追加します。

  • 証券会社が価格を受け入れると、注文が実行されます。
  • 証券会社がリクエストされた価格を受け入れない場合、「リクオート」が送信され、証券会社はこの注文を実行できる価格を返します。

SYMBOL_TRADE_EXECUTION_INSTANT

成行執行

 

(成行執行)

証券会社は、トレーダーとの追加の話し合いなしに、注文執行価格について決定を下します。

 

このようなモードで注文を送信することは、この価格での実行に事前に同意することを意味します。

SYMBOL_TRADE_EXECUTION_MARKET

取引所実行

 

(取引所実行)

取引操作は、現在の市場オファーの価格で実行されます。

SYMBOL_TRADE_EXECUTION_EXCHANGE

ボリューム実行ポリシーORDER_TYPE_FILLING注文プロパティで指定され、ENUM_ORDER_TYPE_FILLING列挙からの値のみを含めることができます

実行ポリシー

説明

ENUM_ORDER_TYPE_FILLINGの値

FOK

注文は指定されたボリュームでのみ実行できます。

 

必要な量の金融商品が現在市場で入手できない場合、注文は実行されません。

 

必要なボリュームは、いくつかの利用可能なオファーで構成できます。

 

FOK注文を使用する可能性は、取引サーバで決定されます。

ORDER_FILLING_FOK

即時またはキャンセル

トレーダーは、注文に示された量の範囲内で市場で最大限に利用可能な量で取引を実行することに同意します。

 

リクエストを完全に満たすことができない場合、利用可能なボリュームでの注文が実行され、残りのボリュームはキャンセルされます。

 

IOC注文を使用する可能性は、取引サーバで決定されます。

 

ORDER_FILLING_IOC

パッシブ(BOC)

BoC注文は、注文が板情報でのみ発注でき、すぐに実行できないことを前提としています。発注時にすぐに約定できる場合、注文はキャンセルされます。

 

実際、BOCのポリシーは、発注された注文の価格が現在の市場よりも悪くなることを保証しています。BoC注文はパッシブ取引を実装するために使用されるため、注文が出されてもすぐには実行されず、現在の流動性には影響しません。

 

指値注文と逆指値注文のみがサポートされています(ORDER_TYPE_BUY_LIMIT 、ORDER_TYPE_SELL_LIMIT、ORDER_TYPE_BUY_STOP_LIMIT、 ORDER_TYPE_SELL_STOP_LIMIT)。

ORDER_FILLING_BOC

リターン

部分的な実行の場合、残りのボリュームのある注文はキャンセルされず、さらに処理されます。

 

成行実行モード(成行実行— SYMBOL_TRADE_EXECUTION_MARKET)では、リターン注文は許可されていません。

ORDER_FILLING_RETURN

OrderSend()関数を使用して取引リクエストを送信する場合、必要なボリューム実行ポリシーをtype_fillingフィールド(特別なMqlTradeRequest構造体)で設定できます。 ENUM_ORDER_TYPE_FILLING列挙からの値が利用可能です。特定のアクティブ/完了した注文でプロパティ値を取得するには、OrderGetInteger()またはHistoryOrderGetInteger()関数とORDER_TYPE_FILLING修飾子を使用します。

現在の実行時間で注文を送信する前に、ORDER_TYPE_FILLING値(ボリューム実行タイプ)を正しく設定するには、各金融商品でSYMBOL_FILLING_MODEプロパティ値を取得するのにSymbolInfoInteger()関数を使用できます。これは銘柄で許可されたボリューム実行タイプをフラグの組み合わせとして示します。 ORDER_FILLING_RETURN注文タイプは、「成行実行」モード(SYMBOL_TRADE_EXECUTION_MARKET)を除いて常に有効です。

実行モードに応じた注文タイプの使用法を次の表に示します。

実行の種類\実行ポリシー

FOK(FOK ORDER_FILLING_FOK)

即時またはキャンセル(IOC ORDER_FILLING_IOC)

リターン(リターンORDER_FILLING_RETURN)

即時実行

 

(SYMBOL_TRADE_EXECUTION_INSTANT)

+ (銘柄の設定に関係なく)

+ (銘柄の設定に関係なく)

+ (常に)

リクエスト実行

 

SYMBOL_TRADE_EXECUTION_REQUEST

+ (銘柄の設定に関係なく)

 

+ (銘柄の設定に関係なく)

+ (常に)

成行執行

 

SYMBOL_TRADE_EXECUTION_MARKET

+ (銘柄設定で設定)

+ (銘柄設定で設定)

- (銘柄設定に関係なく無効)

取引所実行

 

SYMBOL_TRADE_EXECUTION_EXCHANGE

+ (銘柄設定で設定)

+ (銘柄設定で設定)

+ (常に)

未決注文の場合、そのような注文は送信時点での実行を目的としていないため、実行タイプに関係なくORDER_FILLING_RETURN注文タイプ(SYMBOL_TRADE_EXEMODE)を使用する必要があります。未決注文を使用する場合、トレーダーは、この注文の取引条件が満たされたときに、証券会社が取引所でサポートされている注文タイプを使用することに事前に同意します。

 

OrderSend() 関数で取引リクエストを送る際に注文の有効期間は特別な構造体 MqlTradeRequesttype_time フィールドで設定できます。ENUM_ORDER_TYPE_TIME 列挙値が使用されます。このプロパティの値を取得するには OrderGetInteger() または HistoryOrderGetInteger() 関数を ORDER_TYPE_TIME 修飾子と使用します。

ENUM_ORDER_TYPE_TIME

識別子

説明

ORDER_TIME_GTC

GTC注文(キャンセルするまで有効)。

ORDER_TIME_DAY

現在の取引日のみ有効である注文。

ORDER_TIME_SPECIFIED

有効期限まで有効な注文。

ORDER_TIME_SPECIFIED_DAY

注文が指定された日の 23:59:59 まで有効となります。この時刻が取引セッション外である場合は、注文は最も近い取引時間中に満了します。

 

ORDER_REASONプロパティには注文を出した理由が含まれます。注文は、MQL5プログラムやモバイルアプリケーションから出されたりストップアウトなどの結果として出されたりします。ORDER_REASONの可能な値は、ENUM_ORDER_REASON列挙体に記述されています。

ENUM_ORDER_REASON

識別子

説明

ORDER_REASON_CLIENT

注文はデスクトップターミナルから出された

ORDER_REASON_MOBILE

注文はモバイルアプリケーションから出された

ORDER_REASON_WEB

注文はwebプラットフォームから出された

ORDER_REASON_EXPERT

注文はMQL5プログラム(エキスパートアドバイザーまたはスクリプト)から出された

ORDER_REASON_SL

注文はストップロスのアクティブ化の結果として出された

ORDER_REASON_TP

注文はテイクプロフィットのアクティブ化の結果として出された

ORDER_REASON_SO

注文はストップアウトイベントの結果として出された