【MQL5】SymbolIsSynchronized関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

SymbolIsSynchronized関数の働き・役割

SymbolIsSynchronized関数は、端末で選択されたシンボルのデータがトレードサーバー上のデータと同期されているかどうかをチェックします。
「端末で選択されたシンボル」とは、ユーザーが取引プラットフォーム上で選んでいる銘柄を指します。具体的には、MetaTrader5などの取引端末で現在表示されているチャートや、取引の対象となっている通貨ペアや銘柄のことを指します。これにより、ユーザーはシンボルデータの一貫性を確認することができます。

SymbolIsSynchronizedの引数について

SymbolIsSynchronized関数は、1つの引数を取ります。この引数はシンボル名を指定するために使用されます。

  • 第1引数: name
  • 種類: 文字列
  • 説明: 銘柄名を指定します。この銘柄名は、端末で選択されているシンボルの名前です。例えば、「EURUSD」や「GBPJPY」などです。
bool SymbolIsSynchronized(
  string name  // 銘柄名
);

SymbolIsSynchronizedの戻り値について

SymbolIsSynchronized関数戻り値はブール型です。この関数は、指定したシンボルのデータがトレードサーバーのデータと同期しているかどうかを示します。

  • データが同期化されている場合は true を返します。
  • データが同期化されていない場合は false を返します。

SymbolIsSynchronizedの戻り値について

SymbolIsSynchronized関数戻り値はブール型です。この関数は、指定したシンボルのデータがトレードサーバーのデータと同期しているかどうかを示します。

  • データが同期化されている場合は true を返します。
  • データが同期化されていない場合は false を返します。

SymbolIsSynchronizedを使う際の注意点

この関数は端末とサーバー間のデータ同期を確認するために使用されますが、同期が取れていない場合は、取引や分析に影響を与える可能性があります。データが同期されていないと、最新の市場情報が反映されていない可能性があるためです。

次に、指定するシンボル名が正しいことを確認してください。不正なシンボル名を指定すると、関数は適切に動作せず、常に false を返す可能性があります。

SymbolIsSynchronizedを使ったサンプルコード

以下は、SymbolIsSynchronized関数を使用してシンボルのデータがサーバーと同期されているかどうかを確認するサンプルコードです。

#define SYMBOL_NAME "EURUSD"  // 使用するシンボル名を定義

// スクリプトプログラム開始関数
void OnStart()
{
    // SYMBOL_NAMEシンボルを使用して、ターミナル内のデータをサーバーデータと同期するためのフラグを取得する
    bool sync = SymbolIsSynchronized(SYMBOL_NAME);

    // 同期フラグに応じてメッセージを作成する
    // 同期されている場合
    string text = StringFormat("ターミナル内の'%s'シンボルのデータはトレードサーバーのデータと同期されています。", SYMBOL_NAME);
    
    // 同期されていない場合
    if(!sync)
        text = StringFormat("ターミナル内の'%s'シンボルのデータはトレードサーバーのデータと同期されていません。", SYMBOL_NAME);

    // 取得した結果を操作ログに送信する
    Print(text);
}

サンプルコードに使われた関数や文法要素の簡単な解説

  • 定数定義を使用して、シンボル名を”EURUSD”に設定しています。この方法は、コード内で繰り返し使用する値を管理しやすくします。ここでは、#define SYMBOL_NAME “EURUSD”が使われています。
  • OnStart関数は、スクリプトプログラムの開始関数です。この関数スクリプトが実行されると自動的に呼び出されます。
  • SymbolIsSynchronized関数を呼び出して、指定したシンボル名のデータがサーバーと同期されているかどうかを確認します。結果はブール型の変数syncに格納されます。
  • StringFormat関数は、文字列フォーマット関数です。指定した形式に従って文字列を作成します。この例では、シンボル名を含むメッセージを作成しています。
  • Print関数は、エキスパートログにメッセージを出力する関数です。この例では、同期状態に応じたメッセージをログに出力します。
タイトルとURLをコピーしました