基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2012年08月06日(月)

MT5で両建てシステム(3)〜過去のディールの参照 [MQL5]



MQL4では各オーダーの情報を取得するために、まず、OrderSelect()という関数でオーダーを選択します。そして選択したオーダーに対してOrderLots()、OrderTicket()などの関数を使ってオーダーの情報を取得します。

例えばこんな感じです。プログラムを挿入したチャートのシンボル名とマジックナンバーMAGICが一致するオーダーを選択してロット数とチケット番号をlots、ticketに取得する例です。

for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
{
lots = OrderLots();
ticket = OrderTicket();
break;
}
}

MQL5でも基本的な考え方は同じなのですが、前回のコラムで紹介した通り、オーダー、ディール、ポジションと分かれており、その中でもオーダーは「取引」タブと「履歴」タブに分かれているので、それぞれを選択する関数も別々になっています。

ここでは、仮想ポジションに利用するために、ディールを参照する方法について説明します。

過去のオーダーやディールを選択する場合、その前に選択の対象となる過去の範囲をリクエストする必要があります。そのための関数がHistorySelect()です。次のような書式で定義されています。

bool  HistorySelect(
datetime from_date, // From date
datetime to_date // To date
);

履歴の開始日時を第1パラメータ、終了日時を第2パラメータで指定します。例えば、現在から遡ってすべての範囲を指定したい場合、

HistorySelect(0, TimeCurrent());

と記述します。すると、HistoryDealsTotal()という関数で過去のディールの数が取得できるので、

ulong ticket;
for(int i=HistoryDealsTotal()-1; i>=0; i--)
{
ticket = HistoryDealGetTicket(i);
}

のようにHistoryDealGetTicket(i)というi番目のディールのチケット番号を取得する関数を繰り返すことで、各ディールのチケット番号をticketという変数に取得することができます。

但し、このままでは、履歴の新しい方から順にチケット番号を代入していくだけなので、ディールの特定ができません。

シンボル名とマジックナンバーでディールを特定したい場合は、HistoryDealGetString()HistoryDealGetInteger() という関数を使います。それぞれの関数には、ディールのチケット番号と取得したい情報の種類を表すプロパティIDという定数をパラメータとして指定します。

そのディールのシンボル名を取得するには、HistoryDealGetString(ticket, DEAL_SYMBOL)、マジックナンバーを取得するには、HistoryDealGetInteger(ticket, DEAL_MAGIC)というパラメータを指定します。

プログラムを挿入したチャートのシンボル名と マジックナンバーMAGICが一致するディールのチケット番号を取得するには以下のように記述します。

ulong ticket;
for(int i=HistoryDealsTotal()-1; i>=0; i--)
{
ticket = HistoryDealGetTicket(i);
if(HistoryDealGetString(ticket, DEAL_SYMBOL) == Symbol() &&
HistoryDealGetInteger(ticket, DEAL_MAGIC) == MAGIC) break;
}

MQL4では一旦OrderSelect()で選択したオーダーに対してパラメータなしでOrder何とか()という関数でオーダー情報を取得しましたが、MQL5のディールの場合、まずチケット番号を取得して、そのチケット番号をパラメータとして各種情報を取得する形になっています。

とりあえず、過去のディールが参照できるということがわかった、ということで次回に続きます。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 16時26分


ページのトップへ ページのトップへ

Sponsor AD

2012/8

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

ランダムウォークとランダムトレード(5)

ランダムウォークとランダムトレード(5)

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.