SymbolsTotal関数とは利用可能な取引銘柄数を戻り値として返す関数
(1)利用可能な全ての銘柄数、
あるいは
(2)MT5の気配値ウィンドウに表示されている銘柄数を戻り値として返す関数です。
(1)(2)どちらを戻り値として返すかは、引数で指定します。
SymbolsTotal関数の引数と戻り値
SymbolsTotal関数の引数と戻り値は以下のようになっています。
int SymbolsTotal(
bool selected // True - 「気配値表示」 のシンボルのみ
); 戻り値は仮引数「selected」に従った設定の銘柄数
仮引数「selected」のデータ型はbool型となります。
※データ型については↓の記事をご参照ください。
※bool型については↓の記事をご参照ください。
・MQL5 EA講座 第14回「データ型その4 Bool(ブール)型」
引数にfalseを設定した場合、利用可能な全ての銘柄数を戻り値として返します。
引数にtrueを設定した場合、MT5の気配値ウィンドウに表示されている銘柄数を返します。
つまり、trueの場合気配値表示の銘柄を編集して、いくつかの銘柄を非表示にしていたとしても、潜在的に気配値ウィンドウに表示可能な全ての銘柄数を戻り値として返す、という事になります。
一方で、falseの場合、編集して、いくつかの銘柄を非表示にしていた場合、表示されている銘柄のみを数としてカウントし、戻り値として返します。
SymbolsTotal関数を使ったサンプルコード
SymbolsTotal関数を使った以下のようなサンプルコードを作ってみました
※OnTick関数については↓の記事をご参照ください。
※OnDeinit関数については↓の記事をご参照ください。
※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を代入し、実行してみましょう。
※ローカル変数については↓の記事をご参照ください。
実行にあたり、編集でいくつかの銘柄を気配値から削除した後にプログラムを実行してみます。↓
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」が表示されました。
コメント