バックテストのバーの拡大モードとは
「バーの拡大」モードの機能を使用すると、ストラテジーをバックテストする際の注文の約定がより現実的なものになります。このツールによって日中足が解析されバー内の価格の動きについてより詳しい情報が取得されるので、約定の正確性が高まります。
このモードを有効にすると、ブローカーエミュレーターが過去バーでOHLC値のみを利用して仮定する価格の動きが、バーの拡大モードによって置き換えられます。
バーの拡大モードで使用される日中の時間足は、チャートの時間足に合わせて動的に調整されます。以下の表は、チャートの時間足と使用される日中の時間足を下位の時間足から一覧にしたものです。
こちらはバーの拡大モードを利用せずにストップ注文を行うストラテジーの例です。
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)
ブローカーエミュレーターは、バーのインデックスが #10381 のバーで逆指値注文を出し、stop = 157.0 の条件が満たされると、すぐに次のバーで価格157.0の注文が約定します。ブローカーエミュレーターは、バー内で価格が「始値」から「安値」、そして「高値」(ここでエントリー注文がトリガー)から「終値」に動いたと仮定します。数バー後(日足では11日間後)、stop price = 156.0 のポジションを決済する条件がトリガーされています

バーの拡大モードが有効な場合(パラメーター use_bar_magnifier = true の場合)、エグジットとエントリー価格は変わりませんが、ポジションの決済はエントリーが発生したバーと同じバー内で行われます。
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)

同じシンボルの下位足のチャート(この場合、先の一覧表によると60分足)でバー #10382 に対応する時間範囲を確認すると、1時間足では、157.0に到達してエントリーが行われた後、価格が156.0に下落し、stop = 156.0 の条件を満たしたことがわかります。

バーの拡大モードをオンにすると、ブローカーエミュレーターはバックテスト中に下位の時間足の価格変化にアクセスできるようになり、そのタイミングでストラテジーをフォワードテストしているときの動作により近くなります。
バーの拡大モードは、ストラテジーの「設定/プロパティ」パネルでオン/オフを切り替えることができます。

注意!: ストラテジーは下位の時間足に200,000本以上のバーをリクエストできません。
多くの過去データを持つシンボルの場合(チャート上のバーの数 * チャートのバーあたりの下位足のバーの数 > 200,000)の場合、チャート上の初期のトレードはバーの拡大モードの適用外となる可能性があります。
チャートの直近のデータから数えて、バーの拡大モードの適用対象となるバーの数は、おおよそ次のように計算することができます。
直近のバーのインデックス - (200000 / チャートのバー毎の下位足のバーの数)
下位の時間足のバーの数はチャートのバーごとに異なる可能性があるため、計算の値はおおよその目安となります。
こちらもご覧ください: