ボリンジャーバンド戦略をバックテストする方法
ボリンジャーバンド戦略は、20期間SMAとその上下2標準偏差のバンドを基準に売買します。平均回帰型では価格が下側バンドを下回って引けたら買い、ミドルバンドに戻ったら売ります。横ばい相場で機能し、トレンド相場では損失を出しやすいため、トレンド局面にはブレイクアウト戦略が向いています。
ボリンジャーバンドはボラティリティにリアルタイムで適応し、相場が荒れているときは広がり、落ち着いているときは狭まります。そのため平均回帰とブレイクアウトの両方の戦略に適しています。ただし、選ぶアプローチは相場局面に合っていなければならず、合っていなければ結果は散々なものになります。
ボリンジャーバンドとは?
1980年代にJohn Bollingerが考案したボリンジャーバンドは、3本の線で構成されます。ミドルバンド(20期間の単純移動平均)、上側バンド(ミドルバンドに2標準偏差を足したもの)、下側バンド(ミドルバンドから2標準偏差を引いたもの)です。
ボリンジャーバンドを単純なエンベロープ指標と区別しているのは標準偏差の要素です。標準偏差はボラティリティを測るため、バンドは変動の大きい時期には自動的に広がり、落ち着いた時期には狭まります。統計的には、リターンが正規分布に従うなら、値動きの約95%が2標準偏差のバンド内に収まります。実際には金融リターンはファットテール(fat tails)を持つため、価格がバンドに触れたり突き抜けたりする頻度は正規分布の予測より高くなります。
平均回帰戦略
平均回帰(mean reversion)のアプローチは、価格が外側のバンドに触れた後、ミドルバンドに戻ると想定します。ルールはシンプルです。価格が下側バンドを下回って引けたら(または触れたら)買い、価格がミドルバンドに戻るか上側バンドに触れたら売ります。
これは価格が安定した平均値の周りを上下するレンジ相場でうまく機能します。バックテストでは、横ばい期間(例えば2015年や2018年のSPY)の株価指数に対するボリンジャーの平均回帰戦略は、魅力的なシャープレシオを示すことがよくあります。危険なのは、この戦略を強いトレンドの最中に使うことです。2008年のような暴落の中で下側バンドに触れるたびに買えば、底の見えない下落相場でナンピンを続けることになります。
実用的な改善策は、局面フィルターを加えることです。50日SMAの傾きが平坦(明確な上向きでも下向きでもない)で、レンジ相場を示しているときだけ平均回帰のシグナルを採用します。
ブレイクアウト戦略
ブレイクアウト(breakout)のアプローチは正反対の考え方です。価格が上側バンドを上抜けたときは、さらなる上昇を支えるだけのモメンタムがあるとみなし、上側バンドを上回って引けたら買い、価格がミドルバンドに戻るまで保有します。ショートの場合は、下側バンドを下回って引けたら売ります。
ブレイクアウト戦略が最もよく機能するのはボリンジャーバンドのスクイーズ、つまりバンド幅が異常に狭い期間の後です。低ボラティリティの局面は大きな方向性のある値動きに先行しやすい、というのがその理屈です。スクイーズは押し縮められたバネのようなもので、解放されるとブレイクアウトの方向が続きやすくなります。
バックテストでは、ブレイクアウト戦略は一般に勝率が低め(30-40%)ですが、平均利益は大きくなります。課題は、ダマシのブレイクアウトによる小さな損失の連続を乗り切ることです。ポジションサイズと損切り(ストップロス)の置き方が極めて重要で、多くのトレーダーはストップをミドルバンドか、ATRに基づく一定の距離に置きます。
スクイーズの検出
ボリンジャーバンドのスクイーズは、テクニカル分析の中でも特に実行に移しやすいセットアップの一つです。定量化するにはバンド幅を計算します:(上側バンド - 下側バンド) / ミドルバンド。バンド幅が125日(6か月)の最小値を下回ったとき、相場はスクイーズの状態にあります。
John CarterのTTM Squeezeという変種では、二次フィルターとしてケルトナーチャネル(Keltner Channels)を加えます。ボリンジャーバンドがケルトナーチャネルの内側に収縮したときにスクイーズが確定します。バックテストでは、ケルトナーフィルターによってシグナルはさらに減りますが、歴史的にはその後のブレイクアウトの方向的中率が向上しています。
重要な注意点として、スクイーズは値動きが来ることを教えてくれますが、その方向は教えてくれません。ロングかショートかを決めるには、バンドの上または下での終値、モメンタム指標、出来高による確認といった方向性のトリガーが必要です。
パラメータの選び方
デフォルトの20/2設定は十分に検証されていますが、どんな場合にも最適というわけではありません。パラメータを調整する際は、次の指針に従ってください。
- 短い期間(10):バンドの反応が速く、シグナルが増えます。1.5標準偏差と組み合わせます
- 標準の期間(20):反応速度のバランスが良く、2.0標準偏差を使います
- 長い期間(50):より滑らかでシグナルが少なくなります。バンドが狭くなりすぎないよう2.5標準偏差を使います
期間と標準偏差の倍率は一緒に調整するべきです。10期間で2.0標準偏差のボリンジャーバンドは、直近の値動きに対してバンドが相対的に広いため、タッチが極端に少なくなります。逆に、50期間でわずか1.5標準偏差のバンドは絶えずタッチされ、シグナルの質が低下します。
相場局面への依存
ボリンジャーバンド戦略のパフォーマンスを左右する最も重要な要素は相場局面です。平均回帰戦略は横ばい相場で利益を上げ、トレンドで損失を出します。ブレイクアウト戦略はトレンド相場で利益を上げ、レンジで損失を出します。あらゆる状況で機能するボリンジャーバンドのアプローチは一つもありません。
バックテスト結果を評価する際は、必ずパフォーマンスを年ごと、または相場局面ごとに分解してください。平均回帰戦略が全体ではシャープレシオ2.0を示していても、2020年と2022年(トレンド局面)に損失を出しているなら、全体の数字は誤解を招きます。堅牢な戦略は、最も不利な局面でも少なくとも損益トントンの成績を示すべきです。たった一つの有利な期間に引き上げられた見栄えのよい平均値だけでは不十分です。
実際に試してみましょう
コードを書かずにさまざまなボリンジャーバンドのアプローチを試すには、戦略を自然言語で記述します。QuantPromptなら、次のように入力できます:「MSFTの日足データで、価格が下側ボリンジャーバンド(20, 2)を下回って引けたら買い、価格がミドルバンドに戻ったら売る。50日SMAの傾きが-0.1%から+0.1%の間にあるときだけ取引する。」エンジンがロジックを解析してバックテストを実行し、完全なパフォーマンスレポートを返します。
同じデータで平均回帰とブレイクアウトを比較し、スクイーズでフィルターしたエントリーを試し、どのパラメータの組み合わせが複数の相場環境で安定した結果を出すかを確かめましょう。