注文プロパティ
取引操作の実行リクエストは、注文として定式化されます。各注文は、読み込みのための様々なプロパティを持っています。それらの情報は OrderGet...() 及び HistoryOrderGet...() 関数で得られます。
OrderGetInteger() 及び HistoryOrderGetInteger() 関数
識別子 |
説明 |
Type |
---|---|---|
ORDER_TICKET |
注文チケット。各注文に割り当てられる固有番号。 |
long |
ORDER_TIME_SETUP |
注文設定時刻。 |
datetime |
ORDER_TYPE |
注文の種類。 |
|
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 |
注文充填タイプ。 |
|
ORDER_TYPE_TIME |
注文ライフタイム。 |
|
ORDER_MAGIC |
注文を出したエキスパートアドバイザーのID(各エキスパートアドバイザーは、独自のユニークな番号を作成するように設計されています)。 |
long |
ORDER_REASON |
注文の理由またはソース。 |
|
ORDER_POSITION_ID |
実行後すぐに注文に設定されるポジション識別。注文の実行は注文を出すか、既存のポジション変更する約定となります。このポジションの識別子がこの時点で実行される注文のために設定されています。 |
long |
ORDER_POSITION_BY_ID |
ORDER_TYPE_CLOSE_BY型の注文の為の反対ポジションの識別子。 |
long |
OrderGetDouble() 及び HistoryOrderGetDouble() 関数
識別子 |
説明 |
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() 関数
識別子 |
説明 |
Type |
---|---|---|
ORDER_SYMBOL |
注文シンボル。 |
string |
ORDER_COMMENT |
注文コメント。 |
string |
OrderSend() 関数を使用して取引リクエストを送る場合、操作によっては注文の種類の指定が必要です。注文の種類は特別な構造体 MqlTradeRequestの 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 列挙に記載されています。
識別子 |
説明 |
---|---|
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銘柄プロパティから取得できます。
実行モード |
説明 |
|
---|---|---|
実行モード
(リクエスト実行) |
以前に証券会社から受け取った価格で成行注文を実行します。
特定の成行注文の価格は、注文が送信される前に証券会社にリクエストされます。価格を受け取ると、指定された価格での注文の実行を確認または拒否できます。 |
SYMBOL_TRADE_EXECUTION_REQUEST |
即時実行
(即時実行) |
指定された価格ですぐに成行注文を実行します。
実行する取引リクエストを送信すると、プラットフォームは自動的に現在の価格を注文に追加します。
|
SYMBOL_TRADE_EXECUTION_INSTANT |
成行執行
(成行執行) |
証券会社は、トレーダーとの追加の話し合いなしに、注文執行価格について決定を下します。
このようなモードで注文を送信することは、この価格での実行に事前に同意することを意味します。 |
SYMBOL_TRADE_EXECUTION_MARKET |
取引所実行
(取引所実行) |
取引操作は、現在の市場オファーの価格で実行されます。 |
SYMBOL_TRADE_EXECUTION_EXCHANGE |
ボリューム実行ポリシーは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() 関数で取引リクエストを送る際に注文の有効期間は特別な構造体 MqlTradeRequest の type_time フィールドで設定できます。ENUM_ORDER_TYPE_TIME 列挙値が使用されます。このプロパティの値を取得するには OrderGetInteger() または HistoryOrderGetInteger() 関数を 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列挙体に記述されています。
識別子 |
説明 |
---|---|
ORDER_REASON_CLIENT |
注文はデスクトップターミナルから出された |
ORDER_REASON_MOBILE |
注文はモバイルアプリケーションから出された |
ORDER_REASON_WEB |
注文はwebプラットフォームから出された |
ORDER_REASON_EXPERT |
注文はMQL5プログラム(エキスパートアドバイザーまたはスクリプト)から出された |
ORDER_REASON_SL |
注文はストップロスのアクティブ化の結果として出された |
ORDER_REASON_TP |
注文はテイクプロフィットのアクティブ化の結果として出された |
ORDER_REASON_SO |
注文はストップアウトイベントの結果として出された |