【MQL5】SymbolsTotal関数について【MT5】

MQL5リファレンス

スポンサーリンク
スポンサーリンク

SymbolsTotal関数とは利用可能な取引銘柄数を戻り値として返す関数

SymbolsTotal関数は、

(1)利用可能な全ての銘柄数、

あるいは

(2)MT5の気配値ウィンドウに表示されている銘柄数を戻り値として返す関数です。

(1)(2)どちらを戻り値として返すかは、引数で指定します。

SymbolsTotal関数の引数と戻り値

SymbolsTotal関数引数戻り値は以下のようになっています。

int  SymbolsTotal( 
   bool  selected      // True - 「気配値表示」 のシンボルのみ 
  ); 戻り値は仮引数「selected」に従った設定の銘柄数

引数「selected」のデータ型bool型となります。

データ型については↓の記事をご参照ください。

MQL5 EA講座 第10回「データ型」

bool型については↓の記事をご参照ください。

MQL5 EA講座 第14回「データ型その4 Bool(ブール)型」

引数にfalseを設定した場合、利用可能な全ての銘柄数を戻り値として返します。

引数にtrueを設定した場合、MT5の気配値ウィンドウに表示されている銘柄数を返します。

つまり、trueの場合気配値表示の銘柄を編集して、いくつかの銘柄を非表示にしていたとしても、潜在的に気配値ウィンドウに表示可能な全ての銘柄数を戻り値として返す、という事になります。

一方で、falseの場合、編集して、いくつかの銘柄を非表示にしていた場合、表示されている銘柄のみを数としてカウントし、戻り値として返します。

SymbolsTotal関数を使ったサンプルコード

SymbolsTotal関数を使った以下のようなサンプルコードを作ってみました

OnTick関数については↓の記事をご参照ください。

MQL5 EA講座 第8回「OnTick関数」

OnDeinit関数については↓の記事をご参照ください。

MQL5 EA講座 第7回「OnDeinit関数」

Comment関数については↓の記事をご参照ください。

Comment関数について


bool selected=false;

void OnTick()
  {
     int symbolsTotal= SymbolsTotal(selected);
     Comment("利用可能銘柄数= ",symbolsTotal);
  }
//+------------------------------------------------------------------+

void OnDeinit(const int reason)
{  
   if(reason==REASON_REMOVE)
   Comment("");
}

bool型のローカル変数「selected」に、まずはfalseを代入し、SymbolsTotal関数引数として記述したものを実行してみると・・・↓

気配値に表示可能な銘柄数は35であることがわかりました。

では、次はローカル変数「selected」に、まずはtrueを代入し、実行してみましょう。

ローカル変数については↓の記事をご参照ください。

MQL5 EA講座 第26回「ローカル変数について」

実行にあたり、編集でいくつかの銘柄を気配値から削除した後にプログラムを実行してみます。↓


bool selected=true;

void OnTick()
  {
     int symbolsTotal= SymbolsTotal(selected);
     Comment("利用可能銘柄数= ",symbolsTotal);
  }
//+------------------------------------------------------------------+

void OnDeinit(const int reason)
{  
   if(reason==REASON_REMOVE)
   Comment("");
}

実行結果は以下のようになります。

気配値ウィンドウに表示されている銘柄を3銘柄削除した後にMQL5 Program Fileを挿入したところ、チャート左上のComment関数出力箇所には「32」が表示されました。

コメント

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