取引リクエスト構造体 (MqlTradeRequest)
クライアント端末と注文確定操作を実行する取引サーバとの間の相互作用は、取引リクエストを用いて行われます。取引リクエストは取引を実行するために必要な全てのフィールドが含まれている MqlTradeRequest 構造体で表されます。リクエスト処理の結果は MqlTradeResult 型の構造体で表されます。
struct MqlTradeRequest
|
フィールドの説明
フィールド |
説明 |
---|---|
action |
取引操作の種類値は ENUM_TRADE_REQUEST_ACTIONS 列挙値の 1 つです。 |
magic |
エキスパートアドバイザー ID。取引注文の分析処理の整理を可能にします。取引リクエストを送信する際に、各エキスパートアドバイザーには、固有の ID を設定することが出来ます。 |
order |
注文チケット。未決注文を変更するために使用されます。 |
symbol |
注文シンボル。注文の変更とポジション決済操作には必要ありません。 |
volume |
リクエストされた注文ボリューム(ロット単位)。約定の出来高は注文実行の種類によって異なります。 |
price |
注文が実行されなければならない値に達している価格。「成行」実行タイプのシンボルの成行注文(TRADE_ACTION_DEALのSYMBOL_TRADE_EXECUTION_MARKET)では価格の指定は必要ありません。 |
stoplimit |
Limit pending 注文が置かれる価格 値(この条件は必須です)。それまで未決注文は出されません。 |
sl |
不利な値動きの際の決済逆指値。 |
tp |
有利な値動きの際の決済指値。 |
deviation |
ポイントで指定された最大価格偏差。 |
type |
注文の種類。ENUM_ORDER_TYPE 列挙値の 1 つ。 |
type_filling |
注文実行の種類。ENUM_ORDER_TYPE_FILLING 列挙値の 1 つ。 |
type_time |
注文期限切れの種類。ENUM_ORDER_TYPE_TIME 列挙値の 1 つ。 |
expiration |
注文期限切れの時刻(ORDER_TIME_SPECIFIED 型)。 |
comment |
注文コメント。 |
position |
ポジションチケット。ポジションの決済や変更をするときに、ポジションの一意義の認証の為に埋める必要があります。原則として、その結果としてポジションを保有する、注文のチケットに対応します。 |
position_by |
反対ポジションのチケット。反対ポジション(同じ商品であるが反対側に保有するポジション)の決済時に使用されます。 |
ヘッジシステムでのポジションの変更または決済の時には、そのチケット(MqlTradeRequest::position)を必ず指定してください。ネッティングシステムでもチケットを指定する必要がありますが、ポジションの識別はシンボル名で行われます。 |
取引操作を実行する注文を送信するには、OrderSend() 関数の使用が必要です。各取引操作のためには、必須項目を指定する必要があります。任意のフィールドを指定することも出来ます。取引注文を送信するには 7 つの可能なケースがあります。
Request Execution
これは、「リクエスト実行モード」で注文を出すための取引注文です(リクエストされた価格での取引)。以下の 9 のフィールドを指定する必要があります。
- action
- symbol
- volume
- price
- sl
- tp
- deviation
- type
- type_filling
「magic」及び「comment」フィールドの指定も可能です。
即時実行
これは、「即時実行モード」で注文を出すための取引注文です(現在価格での取引)。以下の 9 のフィールドを指定する必要があります。
- action
- symbol
- volume
- price
- sl
- tp
- deviation
- type
- type_filling
「magic」及び「comment」フィールドの指定も可能です。
マーケット実行
これは、「マーケット実行モード」で注文を出すための取引注文です。以下の 5 つのフィールドを指定する必要があります。
- action
- symbol
- volume
- type
- type_filling
「magic」及び「comment」フィールドの指定も可能です。
エクスチェンジ実行
これは、「エクスチェンジ実行モード」で注文を出すための取引注文です。以下の 5 つのフィールドを指定する必要があります。
- action
- symbol
- volume
- type
- type_filling
「magic」及び「comment」フィールドの指定も可能です。
買いポジションを持つ 取引操作TRADE_ACTION_DEALの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber |
売りポジションを持つ 取引操作TRADE_ACTION_DEALの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber |
ポジションを決済する 取引操作TRADE_ACTION_DEALの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber |
SL & TP 更新
決済逆指値及び/または決済指値のレベルを変更する取引注文です。以下の 4 つのフィールドを指定する必要があります。
- action
- symbol
- sl
- tp
保有ポジションのストップロスとテイクプロフィットの値を変更する 取引操作 TRADE_ACTION_SLTPの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber |
未決注文
未決注文をするための取引注文です。以下の 11 のフィールドを指定する必要があります。
- action
- symbol
- volume
- price
- stoplimit
- sl
- tp
- type
- type_filling
- type_time
- expiration
「magic」及び「comment」フィールドの指定も可能です。
未決注文を設定する 取引操作TRADE_ACTION_PENDINGの例:
#property description "未決注文設定の例" |
未決注文の変更
未決注文を変更する取引注文です。以下の 7 つのフィールドを指定する必要があります
- action
- order
- price
- sl
- tp
- type_time
- expiration
未決注文の価格レベルを変更する取引操作TRADE_ACTION_MODIFYの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber |
未決注文の削除
未決注文を削除するための取引注文です。以下の 2 つのフィールドを指定する必要があります。
- action
- order
未決注文の削除をする 取引操作TRADE_ACTION_REMOVEの例:
#define EXPERT_MAGIC 123456 // エキスパートアドバイザのMagicNumber
|
参照