OrderSelect関数
OrderSelect関数はMQLのEA開発において頻繁に使用される関数であると共に、一番奥が深い関数です。
OrderSelect関数を理解しているとそうでないのでは雲泥の差です。
適切でないOrderSelect関数はバグの原因に繋がりますし、ロジック通りにエントリーできないです。
OrderSelect関数で活用できる関数
OrderSelect関数で活用できる関数について紹介します。
OrderOpenPrice関数
指定したポジションの約定価格(オープン価格)を返します。
OrderOpenTime関数
OrderTicket関数
選択されたチケット番号を返します。
OrderLots関数
注文したポジションのロット数を返します。
OrderSymbol関数
注文したポジションの通貨ペアを取得します。
現在選択中の注文の通貨ペア名を返します。事前にOrderSelect()で対象とする注文を選択する必要があります。
OrderMagicNumber関数
注文したポジションのマジックナンバー(EA識別番号)を取得します。
こちらも事前にOrderSelect()で対象とする注文を選択する必要があります。
OrderType関数
OrderSelect関数の使い方
OrderSelect関数は一体どんな時に使うかなのですが、
- インデックス番号を指定して、トレーディングプールからオーダーを選択する場合
- インデックス番号を指定して、ヒストリープールからオーダーを選択する場合
- チケット番号を指定してオーダーを選択する場合
の3つになります。
インデックス番号を使用してオーダーを選択する場合は第2引数は『SELECT_BY_POS』を指定します。
チケット番号を使用してオーダーを選択する場合は『SELECT_BY_TICKET』を指定します。
トレーディングプールからオーダーを選択する場合には、第3引数にMODE_TRADESを指定します。
ヒストリープールから選択する場合には、第三引数にMODE_HISTORYを指定します。
トレーディングプール
トレーディングプールとは
- 未決済の保有ポジション
- 未約定の待機注文
が集まって管理されている場所になります。
ヒストリープール
ヒストリープールとは
- 決済済みのオーダー
- キャンセルされた待機注文
が集まって管理されている場所になります。
オーダープールの考え方
新しいオープンポジション、もしくは待機注文が作られたタイミングで
トレーディングプールにオーダーが追加されます。
決済または待機注文のキャンセルがされると、トレーディングプールのオーダーが減り、
ヒストリープールに新たなインデックスのオーダーが追加されます。
これ以外に、入出金をおこなった場合などにも、ヒストリープールにオーダーが追加されます。
オーダーを決済すると、トレーディングプールのインデックスに欠番が発生することがあります。
その場合にインデックスは、0からの連番となるように再計算がおこなわれます。
コメント