ボリンジャーバンドはどのように計算されるのか
ボリンジャーバンドを一言でいうと
ボリンジャーバンドは、同じ価格データの移動ウィンドウから作られる3本の線のセットです。
- ミドルバンド:価格の移動平均
- 上側バンド:ミドルバンドに、ローリング標準偏差のある倍率を掛けたものを加えた値
- 下側バンド:ミドルバンドから、ローリング標準偏差のある倍率を掛けたものを引いた値
中心となる考え方は、ボラティリティによって上側バンドと下側バンドの距離が変わることです。価格の変動が大きくなるとローリング標準偏差が上がり、バンドは広がります。逆に変動が小さくなるとバンドは狭まります。
計算式(パラメータ付き)
ある時点でボリンジャーバンドを計算するには、価格の時系列(例:終値)が必要です。すると:
パラメータ
- 期間(N):移動ウィンドウ内の観測数。平均と標準偏差に使います。
- 倍率(k):加減する標準偏差の数。
- 価格入力:計算に適用する価格です(一般的にはcloseですが、この方法では同じ選択肢を一貫して使う必要があります)。
手順の仕組み
Pₜ を時刻 t における選択した価格とします。
-
ミドルバンド(移動平均) [ \text{MB}t = \frac{1}{N} \sum{i=0}^{N-1} P_{t-i} ]
-
ローリング標準偏差 直近N本の価格について、同じ移動平均の周りで標準偏差を計算します(計算全体で標準偏差の定義を一貫させてください)。 [ \text{SD}t = \sqrt{\frac{1}{N} \sum{i=0}^{N-1} \left(P_{t-i} - \text{MB}_t\right)^2} ] (一部の実装では、無偏推定量として (N-1) を使います。その場合でもバンドの挙動は概ね似ていますが、厳密な値は異なり得ます。)
-
上側・下側バンド [ \text{UB}_t = \text{MB}_t + k \cdot \text{SD}_t ] [ \text{LB}_t = \text{MB}_t - k \cdot \text{SD}_t ]
これら3つのバンドは、新しい価格ポイントが入るたびに繰り返し計算されます。そのたびに、直近のN観測を使います。
必要なデータ(そして出力がどう変わるか)
ボリンジャーバンドは、入力によって完全に決まります。正確で独立した説明のために、前提を明示してください。
-
価格系列の選択 (P_t) としてどの系列を使うかを指定する必要があります。たとえば終値です。系列を変える(closeと別の項目)と、値が変わります。なぜなら移動平均も標準偏差も、同じ入力を使うからです。
-
サンプリング頻度 期間 N は絶対的な時間ではなく、観測数を数えます。たとえばデータが日次なら、N=20 は20営業日を意味します。データが時間足なら、20時間を意味します。したがって「lookback length(参照期間の長さ)」はデータの頻度に依存します。
-
N と k の設定
- より大きい N は一般にミドルバンドをより滑らかにし、標準偏差の変化への反応を遅くします。
- より大きい k は、同じ (\text{SD}_t) に対して上側・下側バンド間の縦方向の距離を大きくします。
- スタートアップ/欠損値 最初の N−1 点では、完全なウィンドウの移動平均と標準偏差を計算できません。異なるソフトウェアは初期期間の扱いを異なる方法で行うことがあります(例:値を空欄にする)。計算を検証するときは、同じ扱いルールに揃えてください。
確認できる具体例
次のように選んだと仮定します。
- lookback window N = 5
- multiplier k = 2
- 価格入力 (P_t) をあなたの系列として使う
ある時刻 t で、直近5つの価格を取ります。 [ P_{t-4},\ P_{t-3},\ P_{t-2},\ P_{t-1},\ P_t ]
-
ミドルバンドを計算: [ \text{MB}t = \frac{P{t-4}+P_{t-3}+P_{t-2}+P_{t-1}+P_t}{5} ]
-
そのミドルバンドの周りで標準偏差を計算: [ \text{SD}t = \sqrt{\frac{1}{5}\sum{i=0}^{4}(P_{t-i}-\text{MB}_t)^2} ]
-
バンドを計算: [ \text{UB}_t = \text{MB}_t + 2\cdot \text{SD}_t ] [ \text{LB}_t = \text{MB}_t - 2\cdot \text{SD}_t ]
これを次の時刻ステップ(t+1)でも同様に、次の5つの価格セットで繰り返すと、次のバンドが得られます。このローリングの再計算こそが「仕組み」の核心です。
制約(限界)と失敗しやすいパターン
ボリンジャーバンドは、価格が移動ウィンドウの変動性に対してどれくらい動いているかを表しますが、重要な制限があります。
-
ボラティリティの安定性に関する前提は保証されない 標準偏差は直近データだけから計算されます。市場の挙動がレジーム転換する(たとえばボラティリティが急に変わる)と、バンドは条件の変化に対して遅れてしまう可能性があります。
-
標準偏差の定義が異なると、数値も異なる 前述のとおり、一部の実装では標準偏差で (N) と (N-1) を使い分けます。ツール間で結果を比較する場合、式が一致していないと、両方が妥当でもバンドが「不整合」に見えることがあります。
-
価格入力の選択が重要 価格系列が異なる(例:closeと別の入力を使う)場合、ミドルバンドと標準偏差が変わるため、バンドの位置も変わります。入力系列を一致させない限り、正しさを検証できません。
-
説明的なツールであって、自動の判断ルールではない バンドが「タッチ」したり「クロス」したりすることは、それ自体では将来の結果を信頼できる形で示すシグナルではありません。ボラティリティは多くの要因の影響を受け、相関も安定しないため、過去の関係が崩れることがあります。
-
バックテストの落とし穴 ボリンジャーバンドに依存する戦略を誰かが評価する場合、結果はデータ頻度、パラメータの選択(N と k)、そして実装の詳細に敏感になり得ます。パラメータを過去データに合わせて調整すると、過学習のリスクがあります。
計算を独立に検証する方法
特定のプラットフォームに依存せず、再現可能な形でボリンジャーバンドを検証できます。
- 入力を正確に確認する:N、k、価格系列 (P_t)、そして標準偏差が (N) か (N-1) を使っているか。
- 小さなウィンドウ(N=5 や N=10 など)で、元の数値から MB、SD、UB、LB を手計算する。
- 複数の時点で整合性を確認する(最初に計算された値だけでなく)。
計算した値が、そのツールが使っている同じ式と一致していれば、計算は検証済みです。一致しない場合、通常は入力の選択、パラメータの違い、または標準偏差の慣習(convention)の不一致が原因です。
次の問い:バンドは何を測っているのか
ボリンジャーバンドは、移動平均とローリング標準偏差を用いたボラティリティベースの構成です。次のステップとして、他のボラティリティ指標や移動平均の概念とどのように関係しているのか、また N と k を変えると反応性がどう変わるのかを明確にするのが有用です。必要なら、「ローリング平均からの距離」という考え方を他のボラティリティ指標と比較して、この手法が何を捉えていて、何を捉えていないのかを理解できます。
DOCUMENT END