【MQL4】MT4付属EA「Moving Average」に使用されている関数等


int OrdersTotal();

■説 明:エントリー中の注文と保留中注文の総数を返す。
■引 数:なし
■戻り値:エントリー中の注文数と保留中注文数の合計
■具体例:


void OnStart() {
    Print( "注文総数:" , OrdersTotal() );
}

■結 果:

注文総数:2

(※数字は適当)

■参 考:

 


bool OrderSelect( int index, int select, int pool = MODE_TRADES );

■説 明:
3つの引数を指定して、該当の注文(オーダー)を選択する。注文の選択に成功した場合はtrue、失敗した場合はfalseを返す。

OrderSelect関数は大きく分けて3通りの使い方がある。

  1. インデックス番号を指定して、トレーディング(取引)プールからオーダーを選択
  2. インデックス番号を指定して、ヒストリー(履歴)プールからオーダーを選択
  3. チケット番号を指定してオーダーを選択

■引数:
<1と2のパターン>
第1引数:indexに、インデックス(管理番号)を指定する場合、
第2引数:selectには、「SELECT_BY_POS」を指定し、
第3引数:poolには、「MODE_TRADES」、「MODE_HISTORY」のいずれかを指定する。
取引プールから注文を選択する場合、「MODE_TRADES」を指定。(エントリー中の注文、保留中の注文)
履歴プールから注文を選択する場合、「MODE_HISTORY」を指定。(決済済み注文・キャンセルした注文)

<3のパターン>
第1引数:indexに、チケット番号を指定する場合、
第2引数:selectには、「SELECT_BY_TICKET」を指定する。

注文プール=オーダープール(order pool)
「トレーディング(取引)プール」と「ヒストリー(履歴)プール」をまとめた呼称。

インデックス(index)
オーダープールに集まっているオーダーに割り振られた管理番号のこと。このインデックスの番号は、オーダープールに来た順番に、0, 1, 2, … と割り振られるため、必ず0から始まる連番となる。

■戻り値:true または false
■具体例:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

■結 果:省略
■参 考:

 


string OrderSymbol();

■説 明:現在選択中の注文の通貨ペア名を返す。
■引 数:なし
■戻り値:現在選択中の注文の通貨ペア名
■備 考:事前にOrderSelect()関数で対象の注文を選択する必要がある。
■具体例:


Print( "選択した注文の通貨ペア:", OrderSymbol() );

■結 果:

選択した注文の通貨ペア:USDJPY

(※通貨ペア名は適当)

■参 考:

 


string Symbol();

■説 明:現在チャートの通貨ペア名を返す。
■引 数:なし
■戻り値:現在チャートの通貨ペア名を格納するシステム変数_Symbolの値
■具体例:


Print( "現在チャートの通貨ペア名:", Symbol() );

■結 果:

現在チャートの通貨ペア名:USDJPY

(※通貨ペア名は適当)

■参 考:


int OrderMagicNumber();

■説 明:現在選択中の注文のマジック(識別)ナンバーを返す。
■引 数:なし
■戻り値:現在選択中の注文のマジック(識別)ナンバー。
■備 考:事前にOrderSelect()関数で対象の注文を選択する必要がある。
■具体例:省略


int OrderType();

■説 明:現在選択中の注文の、注文タイプを返す。
■引 数:なし
■戻り値:現在選択中の注文の、注文タイプ。注文タイプはオーダープロパティ列挙の値=「OrderSend()関数で使用する注文タイプ」
■備 考:事前にOrderSelect()関数で対象の注文を選択する必要がある。
■具体例:省略


for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }

コメント

タイトルとURLをコピーしました