2018年10月16日火曜日

[MT4] 「チャートの最大バー数」は何を意味するのか

@MetaTrader 4.00 Build 1090

MetaTrader 4 の設定には「チャートの最大バー数」という項目があります。

この設定値が何を意味するのか調べてみました。 と言っても、正式なドキュメントを見つけることができなかったので動作からの推察です。 なお、この値は** MT4 を再起動しないと反映されません**何度も再起動するのが地味に面倒くさい ### チャートの最大バー数 (Max bars in chart) 以下は 「チャートの最大バー数」を 20 にしてチャートを表示してみたものです。
ご覧の様にチャートに表示されるバーが 20 本になりました。スクロールして過去のバーを見ることも出来ません。 つまり、最新 20本のみ参照可能ということです。 例えば、この値を400にすると、最新 400本のみスクロールして参照出来ますが、それ以前へはスクロール出来ません。 このように、「チャートの最大バー数」は(見えない部分も含めた)チャート上の最大バー数を表します読んで字のごとくですが。 では、「チャートの最大バー数」を大きくすれば便利に使えるのかというとそうでもありません。 この値が大きいと、その分メモリを消費します。 最近は大量のメモリを積んでいるマシンが多いとはいえ、チャートの枚数が増えてくるとかなり影響が出てきます。 チャートの枚数が増えると動きがモッサリしてくる場合、この値が大きいのが原因かもしれません。 ### 「チャートの最大バー数」を小さくしすぎないように注意 EA でしか使用しないという場合、描画に使用するメモリは少ないにこしたことはありません。 しかし、「チャートの最大バー数」をあまり小さくしすぎると問題があります。 以下は 「チャートの最大バー数」を 20 にしたチャートに 10本SMA を表示したものです。 最初の 10本分にインジケーターが表示されていないのがわかるかと思います。
インジケーターによっては過去の累積が重要なものもあります。 こういったインジケーターの値に影響を与えるので、「チャートの最大バー数」はある程度大きな値にしておくべきです。 安易に変更すると EA の動作が変わってしまうかもしれませんのでご注意を。 ### ヒストリー内の最大バー数 (Max bars in history) 「チャートの最大バー数」と同じ設定項目に「ヒストリー内の最大バー数」というのもあります。 しかし、私の環境でこの値を変更してみたところ、10000000 以下の値を設定しても、勝手に 10000000 に変更されてしまうようです。(ヒストリーセンター使用時) 私の記憶が正しければ、昔はこの値が ヒストリーファイル(`*.hst`)のサイズに影響していました。 が、勝手に大きな値に変更されてしまうようでは確認のしようがありません。 ヒストリーファイルが十分でないと、ストラテジーテスターの結果にも影響が出てくるので、小さく出来ないようにしたのかもしれません。