
MQL4MQL5 銘柄・レート情報
SymbolInfoInteger()
- できること
- 銘柄の桁数・スプレッド・ストップレベルなど整数の情報を取得する
- 対応
- MQL4・MQL5
SymbolInfoInteger() とは
銘柄の整数の情報(価格の桁数、現在のスプレッド、ストップレベル、フリーズレベル、対応する執行タイプ、取引できるかどうか など)を取得する関数です。
SymbolInfoInteger() の書式と引数
引数の組み合わせが違う 2 通りの書き方があります。
long SymbolInfoInteger(
string name,
ENUM_SYMBOL_INFO_INTEGER prop_id
)
bool SymbolInfoInteger(
string name,
ENUM_SYMBOL_INFO_INTEGER prop_id,
long &long_var
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
name | string | 必須 | 銘柄名。 |
prop_id | ENUM_SYMBOL_INFO_INTEGER | 必須 | 取得する項目。SYMBOL_DIGITS(桁数)、SYMBOL_SPREAD(スプレッド・ポイント)、SYMBOL_TRADE_STOPS_LEVEL(ストップレベル・ポイント)、SYMBOL_TRADE_FREEZE_LEVEL、SYMBOL_FILLING_MODE(MQL5:対応する執行タイプ)、SYMBOL_TRADE_MODE など。 |
long_var | long & | 必須 | 2つ目の書き方で、値を受け取る変数。 |
戻り値
1つ目の書き方は値そのもの(long 型)。2つ目の書き方は成功したら true を返し、値は long_var に入ります。
SymbolInfoInteger() の使い方(コード例)
MQL4・MQL5 共通
int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);
int spread = (int)SymbolInfoInteger(_Symbol, SYMBOL_SPREAD); // ポイント
int stopLevel = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); // ポイント
Print("桁数=", digits, " スプレッド=", spread, " ストップレベル=", stopLevel);MQL5
// 銘柄が対応している執行タイプを調べる(MQL5)
long modes = SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE);
if((modes & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK) Print("FOK に対応");
if((modes & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC) Print("IOC に対応");OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
SymbolInfoInteger() の注意点
- 戻り値は long 型です。int の変数に入れるときは (int) でキャストしないと「possible loss of data」の警告が出ます。
MQL4 と MQL5 の違い
MQL4 の MarketInfo(銘柄, MODE_DIGITS / MODE_SPREAD / MODE_STOPLEVEL) の代わりに使います。












