スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

注文情報の取得





OrderSelect()関数


注文の取消・訂正・決済においては、注文番号(int ticket)が関数の引数になっています。

これは注文を出すとサーバーから一意に割り当てられる番号で、注文番号さえ分かれば注文情報が取得できます。

その注文情報の取得のため、注文を選択するOrderSelect()関数が用意されています。これは、処理したい注文を簡単に選択することができる関数です。
bool OrderSelect(int index, int select, int pool=MODE_TRADES)

注文を選択するといってもピンとこない人は、Gmailを思い浮かべてみてください。メールを選択して、(個々のメールを開かなくても)メニューからさまざまな処理をすることができますね。一気にすべてのメールを選択することもできます。

20110223_1

地味ですが、選択するというのは非常に便利な機能なのです。

では引数の解説です。
int index : チケット番号またはオーダーの並び順(インデックス)を指定します。

int select : 選択を実行するタイプを指定します。チケット番号なら SELECT_BY_TICKET とし、インデックスならSELECT_BY_POS とします。

int pool=MODE_TRADES : SELECT_BY_POS の選択タイプを使った場合に、未決済注文から選ぶか、履歴一覧から選ぶか指定します。未決済注文の場合は MODE_TRADES とし、履歴一覧の場合は MODE_HISTORY とします。引数を省略すると MODE_TRADES が指定されます。

なお、未決済注文を並べた状態をトレードプール( Trading Pool )、決済済み注文とキャンセルした注文を並べた状態をヒストリプール( History Pool )と呼ぶことからです。


大まかにいって、注文を選択する方法には、チケットでの指定とインデックスでの指定があり、どちらを選ぶかによって引数も異なることになります。

もうひとつOrderSelect()関数の重要性について書くと、この関数を使わなければ使えない関数というのがあります。

OrderMagicNumber, OrderClosePrice, OrderCloseTime, OrderOpenPrice, OrderOpen,Time, OrderComment,OrderCommission, OrderExpiration, OrderLots, OrderPrint, OrderProfit,OrderStoploss,OrderSwap,OrderSymbol,OrderTakeProfit,OrderTicket, OrderType

つまり、OrderSelect()関数は処理の前提としての関数なのです。


チケット番号で選択


では、まずはおなじみのチケット番号で注文を選択して、その注文情報を取得してみましょう。

まずは、トレードプール(取引タブ)の注文情報を取得します。

取引タブは以下のようになっています。

20110228_5


取引タブの並び方は、注文番号で降順に並んでいます。つまり注文番号が小さいものが上にあります。

では、この一番上の、チケット番号 2491747 で EURJPY を112.79で0.1ロット売りの取引がありますが、Comment()関数でこの注文情報を表示してみます。

前提として、いくつか関数を勉強します。すべて、OrderSelect() 関数で事前に選択することで利用できる関数です。
int OrderTicket( ) : チケット番号を返します。

double OrderLots( ) : ロット数を返します。

double OrderSymbol( ) : 通貨ペア名を返します。

double OrderOpenPrice( ) : 新規注文の約定価格を返します。


ではSampleScriptファイルに記述します。

int start()
{
OrderSelect(2491747,SELECT_BY_TICKET);

string order=StringConcatenate(
"チケット番号 : ",OrderTicket()
," , ロット数 : ",OrderLots()
," ,通貨ペア : ",OrderSymbol( )
," ,約定価格 : ",OrderOpenPrice( )
);

Comment(order);

return(0);
}


実行結果 :

20110228_6



次に、ヒストリプール(口座履歴タブ)の注文情報を返します。

ターミナルの口座履歴タブを開いてみます。たくさんの取引履歴が並んでいます。

20110228_3


口座履歴タブの並び方も、注文番号で降順に並んでいます。つまり注文番号が小さいものが上にあります。

では、この一番上の、チケット番号 2479424 で EURUSD を1.3598で0.1ロット買い、1.3595で決済して、損益がマイナス250円の取引がありますが、Comment()関数でこの注文情報を表示してみます。

またいくつか関数を勉強しましょう。これらもすべて、OrderSelect() 関数で事前に選択することで利用できる関数です。ちょこちょこ使って、ちょこちょこ覚えましょう。
double OrderClosePrice( ) : 決済注文の約定価格を返します。

double OrderProfit( ) : 損益を返します。


ではSampleScriptファイルに記述します。

int start()
{
OrderSelect(2479424,SELECT_BY_TICKET);

string order=StringConcatenate(
"チケット番号 : ",OrderTicket()
," , ロット数 : ",OrderLots()
," , 新規 : ",OrderOpenPrice( )
," , 決済 : ",OrderClosePrice( )
," , 損益 : ",OrderProfit( )
);

Comment(order);

return(0);
}


実行結果 :

20110228_4




インデックスで選択


先ほど選択した注文を、インデックスでも選択してみます。

まずは、新たに OrderPrint()関数を覚えましょう。
void OrderPrint( ) : 次のフォーマットで注文情報を出力します。出力情報は、ターミナルのExpertsタブ(エキスパートログファイル)に表示されます。

ticket number; open time; trade operation; amount of lots; open price; Stop Loss; Take Profit; close time; close price; commission; swap; profit; comment; magic number; pending order expiration date.


OrderSelect()関数の引数ですが、インデックス方式で選択する場合、古いものから0,1,2,…と番号が振られます。ローソク足の4本値が新しいものから数えるのと異なります。



まず、取引タブのチケット番号 2491747 です。

数えたところ、チケット番号 2491747 は注文番号が一番小さいので、インデックスでいうと0になります。未決済なので、pool は MODE_TRADES(省略可) です。

ではSampleScriptファイルに記述します。

int start()
{
OrderSelect(0,SELECT_BY_POS);

OrderPrint();

return(0);
}


実行結果 :

20110228_7



同様に、口座履歴タブのチケット番号 2479424 です。

チケット番号 2479424 は1番古い注文なので、インデックスでいうと0になります。決済済みなので、pool は MODE_HISTORY です。

ではSampleScriptファイルに記述します。

int start()
{
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

OrderPrint();

return(0);
}


実行結果 :

20110228_8



なお、OrderComment()という関数もありますが、これは注文情報をチャート画面上に出力してくれるのではなく、注文時のコメントを返す関数です。また、OrderAlert()という関数はなさそうです。
スポンサーサイト

タグ :

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://metatradermania.blog24.fc2.com/tb.php/52-2c1a08b4
Listed below are links to weblogs that reference
from ど素人のMetaTrader入門
Bookmark
検索フォーム
RSSリンクの表示
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。