MENU
  • 必要証拠金計算ツール
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
FXあれこれ
  • 必要証拠金計算ツール
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
  1. ホーム
  2. MQL
  3. 【MQL】で開いていないチャートのデータを取得できない問題を解決するスクリプト

【MQL】で開いていないチャートのデータを取得できない問題を解決するスクリプト

2025 6/24
MQL
2025年6月24日
当ページのリンクには広告が含まれています。

MT4で一度も開いていないデータはヒストリーデータが存在しないため、次のようなコードを実行する場合に、データを取得できない場合がありますので、データの集計作業を行う場合に問題が発生します。

for(int i=0;i<SymbolsTotal(false);i++)
{
    string symbol   = SymbolName(i,false);
    double bid      = SymbolInfoDouble(symbol,SYMBOL_BID);
}

このコードは、MT4に存在する全てのデータからBID値を取得するものです。

ヒストリーデータの存在するシンボルからはBID値を取得できますが、ヒストリーデータの存在しないシンボルからはBID値を取得できません。

手動でチャートを開けばこのような問題は起こらないのですが、結構な量がありますし、COCOA-SEP25のような先物データはシンボル名称そのものが変わりますので、常に最新のヒストリーデータを手動で取得するのは現実的ではありません。

そこで次のスクリプトを用意しました。

//+------------------------------------------------------------------+
//|                                               ChartSetSymbol.mq4 |
//|                                  Copyright 2025, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
    for(int i=0;i<SymbolsTotal(false);i++)
    {
        string symbol   = SymbolName(i,false);
        long chart_id = ChartOpen(symbol, 0);
        Sleep(1000);
        ChartClose(chart_id);
    }
}

このスクリプトは、MT4に存在する全てのシンボルを1秒ごとに開いて閉じるスクリプトです。

スクリプトは定期的に手動で実行する必要がありますが、全てのシンボルを手動で開くよりはましだと思います。

このスクリプトをEAやインジケーターで実行できれば何の問題もないのですが、Sleep処理はスクリプトでしか機能しませんので、スクリプトにしています。

MQL
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 【MQL】MQL4で使えるSymbolInfoString
  • 【FX基礎】トレンドの有無を確認する方法やインジケーター

関連記事

  • とりあえずロジックのサインを確認するテストインジケーター
    2025年7月2日
  • 【MQL4】ZigZagでフィボナッチリトレースメントを自動で引くインジケーター
    2025年6月26日
  • 【MQL】MQL4で使えるSymbolInfoDouble
    2025年6月24日
  • 【MQL】MQL4で使えるSymbolInfoInteger
    2025年6月24日
  • 【MQL4】iWPRの使い方【ウィリアムズ%R】
    2025年6月18日
  • 【MQL4】iStochasticの使い方【ストキャスティクス】
    2025年6月18日
  • 【MQL4】iStdDevOnArrayの使い方【配列に対する標準偏差】
    2025年6月18日
  • 【MQL4】iStdDevの使い方【標準偏差】
    2025年6月18日

コメント

コメントする コメントをキャンセル

新着記事
  • とりあえずロジックのサインを確認するテストインジケーター
    2025年7月2日
    MQL
人気記事
  • ボリンジャーバンドの「長所」と「短所」、そして実践的なトレード手法2選!
    2025年6月2日
    FXの基礎 7
  • 【MT4インジケーター】マルチタイムADX
    2025年6月2日
    MQL 6
  • FXで負けている人がやっていること【10選】
    2025年6月6日
    FXの基礎 5
カテゴリー
  • FXの基礎 (5)
  • MQL (45)
  • XM (7)
  • お知らせ (1)
  • トレード戦略 (1)
  • ハイレバの基本的な考え方 (1)
  • 証拠金計算ツール (1)
スポンサーリンク

\ すぐ始められる!/

XMでトレードする
目次

© FXあれこれ.

目次