[MT4] PeriodConverter を使うとヒストリーデータが消えることがある
MetaTrader には PeriodConverter
というスクリプトが標準で付属しています。
この PeriodConverter
は M1 のデータ等から他の時間足のデータを再生成する際に使用します。
便利に使っていたのですが、ある日、再生成したヒストリーデータが直近数時間分になってしまう現象がおこりました。 M1 のデータは 1971年から1あるのにも関わらずです。
先に原因を書いておくと、「チャートの最大バー数」が小さい場合、このような現象が起こります。
ツール → オプション → チャート
以下に問題を再現してみた結果を載せておきます。 「チャートの最大バー数」は上記スクリーンショットのように 800 を使用しました。
ヒストリーデータを確認する
まずは現在のヒストリーデータを確認します。
ファイル → オフラインチャート
全時間枠で 1971年からのデータがあることが確認できます。
PeriodConverter を適用する
M1 のチャートを開き、PeriodConverter を適用します。
PeriodConverter → 右クリック → チャートで実行 (ダブルクリックやドラッグ&ドロップでも良い)
再生成する時間枠を指定。今回は 5 にしました。
もう一度ヒストリーデータを確認すると…
以下のように、M5 だけ、直近数時間分になってしまいました2。
なお、この状態でストラテジーテスターを実行すると、11/5 4:50 以降しか実行されません。(M5 をターゲットにした場合)
修復
データが無くなったとはいえ、M1 は残っているので修復可能です。
先に書いたように、原因は「チャートの最大バー数」が小さいことなので、「チャートの最大バー数」を十分に大きくします。 なお、この値は MetaTrader を再起動しないと反映されない ので注意してください。
参考
ツール → オプション → チャート
この状態で再度 PeriodConverter
を実行すると、M5 が再生成されます。
ただし、この設定のまま複数チャートを開いたりすると、すごく重くなります。 場合によっては完全に固まるということもありますので、ご注意ください。