通貨ペアのプロパティ(double型)を取得 SymbolInfoDouble 関数

関数

マーケット情報関数

SymbolInfoDouble 関数

 この関数は、指定した通貨ペアに関するプロパティ情報(double型)を取得します。

 この関数で取得する通貨ペアのプロパティ情報の識別子は ENUM_SYMBOL_INFO_DOUBLE 列挙値から選択します。

データ型と構成・戻り値

 この関数には 2つの型があります。

double SymbolInfoDouble(①,②);
bool   SymbolInfoDouble(①,②,③);

 戻り値は、指定した通貨ペアに関するプロパティ情報を double型 または bool型で返します。

 発生するエラーについては、GetLastError関数で取得することができます。
・4106 — 通貨ペアが「気配値表示」で選択されていない(利用可能な通貨ペアのリストにない)
・4051 — 取得する通貨ペア情報の無効な識別子
・4024 — 内部エラー

 関数が直近の Tickに関する情報を取得するために使用される場合は SymbolInfoTick関数を使用することをお勧めします。ターミナルが取引口座に接続されているため、単一の情報がまだ表示されていない可能性があります。このような場合、要求した値は不定値になります。

多くの場合、SymbolInfoTick関数を使用するだけで十分です。これにより、ユーザーは、1回の呼び出しで、Ask、Bid、Last、Volume の値と直近の Tickの到着時刻を受け取ることができます。

引数 [3]

 SymbolInfoDouble関数は 2~3個の引数で構成されます。

番号引数名データ型単位初期値説明
namestringプロパティ情報を取得する通貨ペア名。
prop_idenum取得するプロパティ情報の識別子。
ENUM_SYMBOL_INFO_DOUBLE から選択します。
long_varlong&指定した通貨ペア情報の値を受け取る double型の変数。
関数が bool型の時に設定します。

使用例

SymbolInfoDouble関数による通貨ペアプロパティ情報の取得

 SymbolInfoDouble関数を使って通貨ペアのプロパティ情報を取得します。

コード

// SymbolInfoDouble関数による通貨ペア情報の取得
#property strict
void OnInit() {

string symbol = Symbol();

Print("①売値:",               SymbolInfoDouble(symbol, SYMBOL_BID));                 // 1
Print("②買値:",               SymbolInfoDouble(symbol, SYMBOL_ASK));                 // 4
Print("③1Pointの価格:",       SymbolInfoDouble(symbol, SYMBOL_POINT));               // 16
Print("④基準価格:",           SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE));    // 26
Print("⑤最小変更幅:",         SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE));     // 27
Print("⑥取引契約サイズ:",     SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE)); // 28
Print("⑦取引最小ロット数:",   SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN));          // 34
Print("⑧取引最大ロット数:",   SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX));          // 35
Print("⑨ロット数の最小値幅:", SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP));         // 36
Print("⑩買いスワップ:",       SymbolInfoDouble(symbol, SYMBOL_SWAP_LONG));           // 38
Print("⑪売りスワップ:",       SymbolInfoDouble(symbol, SYMBOL_SWAP_SHORT));          // 39
Print("⑫初期証拠金:",         SymbolInfoDouble(symbol, SYMBOL_MARGIN_INITIAL));      // 42
Print("⑬必要証拠金:",         SymbolInfoDouble(symbol, SYMBOL_MARGIN_MAINTENANCE));  // 43
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

 各行の後ろにあるコメントの数値は、引数②の識別子に対応する値です。識別子の代わりにこの値を使うこともできます。

結果

bool型SymbolInfoDouble関数による通貨ペアプロパティ情報の取得

 bool型SymbolInfoDouble関数を使って通貨ペアのプロパティ情報を取得します。bool型の場合、引数③にセットする変数を用意する必要があります。

コード

// bool型SymbolInfoDouble関数による通貨ペア情報の取得
#property strict
void OnInit() {

double a,b; // SymbolInfoDouble関数の引数③に設定する変数
string symbol = Symbol();

Print("①売値:", SymbolInfoDouble(symbol, SYMBOL_BID, a)); // 1
Print("②買値:", SymbolInfoDouble(symbol, SYMBOL_ASK, b)); // 4
Print("①の変数:", a);
Print("②の変数:", b);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

 各行の後ろにあるコメントの数値は、引数②の識別子に対応する値です。識別子の代わりにこの値を使うこともできます。

結果

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