バンド幅(スクイーズ):値動きの収縮から次の大きな動きに備える
- バンド幅が半年(126営業日)で最小になった「スクイーズ」は、19年で34回。その後に最初に抜けた方向は上16回・下18回で、ほぼ半々
- スクイーズ後の+2σ上抜けで買い、20日線割れで売ると、年率0.2%・取引19回・PF1.25。絞らない+2σ上抜け(年率2.9%)に大きく負けた
- 出口を「20営業日保有」に変えるとPF2.30・最大下落率−15.0%まで改善する。ただし取引は19回しかない
バンド幅は「値動きの縮み具合」
ボリンジャーバンドは、20日移動平均(20日線)の上下に、値動きのばらつき(標準偏差σ)の2倍の線を引いたものです(#004)。値動きが荒いとバンドは広がり、静かだと狭まります。この「広さ」を数字にしたのがバンド幅です。
= 4σ ÷ 20日線
20日線で割るのは、価格の水準が違っても比べられるようにするためです。日経平均が1万円でも6万円でも、バンド幅が4%なら「20日線の上下2%ずつにバンドがある」という意味になります。約19年間の中央値は7.46%、最小は2017年7月28日の1.33%、最大はリーマン・ショック後の2008年10月27日の53.37%でした。
「半年最小」は相対的な基準
スクイーズに決まった定義はありません。今回は「バンド幅が過去126営業日の最小値に並んだ日」としました。19年間4,760日のうち該当したのは112日。続けて起きる日をまとめ、直前20営業日にスクイーズがなかった日を「始まり」と数えると、34回です。年に2回もない、珍しい状態です。
注意したいのは、基準が「半年の中で」の相対比較であることです。2016年9月までのバンド幅の中央値は8.33%、2016年10月以降は6.55%。値動きの大きい時期のスクイーズは、静かな時期なら「ふつう」の幅でもあります。
「スクイーズの後は上に放れる」とは限りません。バンドが縮むのは値動きが小さくなったことを示すだけで、次の方向は何も教えてくれません。上か下か、どちらに抜けるかを確かめてから動く必要があります。
実際の日経平均で見てみる
直近500営業日のスクイーズの始まりは、2024年12月30日、2025年6月5日、2026年9月1日の3回です。バンド幅は2025年4月の急落直後、4月14日に24.14%まで広がりました。その後は縮み続け、6月6日には3.53%と、この2年で最も狭くなっています。このときは6月18日(38,885円)に+2σを上抜け、9月1日に20日線を割るまで持って+8.30%でした。
2026年9月は様子が違います。9月1日のバンド幅は7.26%で、19年間の中央値(7.46%)とほぼ同じ。それでも、夏までの値動きが大きかったため「半年最小」になりました。9月14日には終値63,493円が−2σ(63,633円)を割り込み、先に下へ抜けています。ところが翌15日にバンド幅は5.81%まで縮み、10月1日には終値68,956円で+2σ(67,805円)を上抜け。主ルールの買いシグナルが出て、10月2日時点では−0.94%の含み損です。
検証①:スクイーズ後の上抜け
ルール:過去10営業日以内にスクイーズがあり、終値が+2σを上抜けたら買い、終値が20日線を割り込んだら売り。比較として、スクイーズを問わない+2σ上抜け(#004の順張り)と、逆に「スクイーズが無いときの上抜けだけ」で買う版も試しました。条件は共通の検証ルールのとおりです。
| 戦略 | 最終資産 | 年率 | 最大下落率 | 取引 | 勝率 | PF | 保有率 |
|---|---|---|---|---|---|---|---|
| 買い持ち | 3.93倍 | 7.3% | −61.4% | — | — | — | 100% |
| スクイーズ後10日以内の上抜け | 1.04倍 | 0.2% | −23.7% | 19 | 42% | 1.25 | 7% |
| スクイーズ後5日以内の上抜け | 1.06倍 | 0.3% | −18.1% | 14 | 43% | 1.40 | 5% |
| スクイーズ後20日以内の上抜け | 1.14倍 | 0.7% | −23.1% | 22 | 50% | 1.57 | 8% |
| +2σ上抜け(#004 順張り) | 1.73倍 | 2.9% | −21.0% | 79 | 46% | 1.62 | 29% |
| スクイーズ無しの上抜けのみ | 1.72倍 | 2.8% | −17.0% | 67 | 46% | 1.72 | 25% |
結果ははっきりしています。スクイーズに絞ると、19年で取引19回、資産は1.04倍にしか増えませんでした。一方、スクイーズが無いときの上抜けだけで買うと年率2.8%・最大下落率−17.0%・PF1.72。#004の順張りから「スクイーズ後」を取り除いても、成績はほとんど落ちないどころか、最大下落率とPFは良くなりました。
19回の取引のうち、利益が出たのは8回です。大きく取れたのは2012年1月19日(8,640円)の買いで+13.46%、2020年11月5日の+9.47%、2025年6月18日の+8.30%。残りは−1.55%〜−4.85%の小さな負けが並び、1回あたりの平均は+0.39%と、#004の順張り(+0.82%)の半分以下でした。
負けの原因は「出口が近すぎる」こと
スクイーズ直後はバンドが狭いため、+2σと20日線の距離も短くなります。終値が+2σの上にある日で、+2σから20日線までの距離を測ると、スクイーズ後は平均2.67%、+2σの上にあるすべての日では平均3.68%でした。少し押し戻されただけで20日線を割り、売らされてしまうのです。
実は、上抜けそのものの質は悪くありません。+2σを上抜けた日から20営業日後のリターンは、スクイーズ後(23回)が平均+1.29%・上昇率73.9%。スクイーズ無し(114回)の+0.75%・53.5%を上回ります。そこで、出口を「上抜けから20営業日保有」に変えてみました。
| 上抜けから20営業日保有 | 最終資産 | 年率 | 最大下落率 | 取引 | 勝率 | PF | 保有率 |
|---|---|---|---|---|---|---|---|
| スクイーズ後の上抜け | 1.25倍 | 1.1% | −15.0% | 19 | 63% | 2.30 | 8% |
| スクイーズ無しの上抜け | 1.75倍 | 2.9% | −30.8% | 59 | 51% | 1.62 | 34% |
| +2σ上抜け(すべて) | 2.33倍 | 4.4% | −29.6% | 70 | 53% | 1.81 | 42% |
スクイーズ後の上抜けは、PF2.30・最大下落率−15.0%と見違えました。前半0.67%・後半1.59%で、判定期間を100日・150日に変えても年率1.53%・0.91%とプラスです。弱点は取引回数の少なさです。ただ、保有率8%では年率1.1%が限界で、上抜けをすべて20日保有した場合(年率4.4%)にも届きません。
検証②:スクイーズの後、上と下どちらに動くか
34回のスクイーズについて、その日から60営業日以内に、終値が先に+2σを上抜けたか、−2σを割り込んだかを数えました。60日以内に抜けなかった例はありません。
方向はほぼ半々で、スクイーズから方向は読めません。先に上へ抜けた場合は、待ち日数が平均6.0日と短く、20日後の上昇率は75%と高めでした。ただし平均リターンは+0.72%で、すべての日の平均+0.75%と変わりません。小さく勝つことが多い一方、2013年12月18日のスクイーズの後のように、上抜けから20日で−7.22%となる例もあります。
先に下へ抜けた場合は、20日後の平均が+1.22%と、むしろ高くなりました。2020年10月29日のスクイーズでは翌日に下へ抜けた後、20日で+16.58%。2021年8月17日も下抜け後に+12.91%です。「下に放れたから売り」も、日経平均では当てになりませんでした。
値動きは「大きく」なるのか
「嵐の前の静けさ」も確かめました。スクイーズ開始日の後20日間の日々の値動き(標準偏差)は、前20日間の平均1.20倍に増えます(すべての日では1.09倍)。確かに値動きは戻ってきます。しかし水準で見ると、後20日の標準偏差は1.10%で、すべての日の平均1.34%より小さいまま。20日後リターンの絶対値も、スクイーズ開始日4.82%に対し、すべての日で4.64%と、ほぼ同じです。静けさの後に来るのは「嵐」ではなく、「ふつうの値動きに戻る」程度でした。
読み解き
- スクイーズは+2σ上抜けに上乗せの価値を生まなかった。スクイーズ後の上抜けは年率0.2%・PF1.25。スクイーズ無しの上抜けだけでも年率2.8%・PF1.72で、#004の順張りの成績はほぼこちらが担っていた。
- 失敗の主因は、狭いバンドで出口が近すぎること。+2σから20日線までの距離は平均2.67%と短く、小さな押しで売らされる。20営業日保有に変えるとPF2.30・最大下落率−15.0%まで改善した。
- スクイーズは方向を教えない。最初の抜けは上16回・下18回。下に抜けた後の20日平均は+1.22%と、上に抜けた後(+0.72%)より高く、値動きの大きさも全日並みに戻るだけだった。
成績のまとめ(スクイーズ後10日以内の+2σ上抜け)
PFは1.25で、19年で19回しか売買がなく、年率0.2%は買い持ち7.3%にも、絞らない+2σ上抜け(年率2.9%)にも大きく劣る。出口を20営業日保有に変えた版はPF2.30・最大下落率−15.0%まで改善したが、19回という少なさは変わらず、偶然の可能性を否定できない。スクイーズは「売買の合図」より、「値動きが小さい時期」を示す目安として扱うのが妥当だろう。
自分で試す(TradingView)
//@version=6
indicator("バンド幅とスクイーズ", overlay = false)
len = input.int(20, "期間")
mult = input.float(2.0, "σの倍率")
look = input.int(126, "スクイーズ判定の期間(日)")
win = input.int(10, "スクイーズ後の有効日数")
basis = ta.sma(close, len)
dev = mult * ta.stdev(close, len)
upper = basis + dev
lower = basis - dev
bw = (upper - lower) / basis * 100 // バンド幅(%)
minBw = ta.lowest(bw, look)
isSq = bw <= minBw // 半年最小に並んだ日
recentSq = ta.highest(isSq ? 1 : 0, win) == 1
buy = recentSq and close > upper and close[1] <= upper[1]
plot(bw, "バンド幅(%)", color = color.teal)
plot(minBw, "126日最小", color = color.gray)
bgcolor(isSq ? color.new(color.orange, 80) : na, title = "スクイーズ")
plotshape(buy, "スクイーズ後の上抜け", shape.triangleup, location.bottom, color.green, size = size.tiny)

