Williams %Rの設定変更がもたらす影響:感度、トレードオフ、失敗パターン
直接的な答え
Williams %R(Williams Percent Range)はオシレーターで、その主な設定は、直近の価格履歴における最高値と最安値を見つけるために使うlookback期間です。この期間を変えると感度が変わります。一般に、参照期間が短いほどWilliams %Rは新しい高値・安値に対してより素早く反応し、参照期間が長いほど変化はなめらかになる一方で反応は遅くなります。
ただし、ある設定が「常に」より良いという意味ではありません。同じ機械的なルールは市場に関係なく適用されますが、適切なlookbackは、その銘柄の典型的なボラティリティ、使用する時間軸、そして依拠している価格フィードによって決まります。また、入力データ(ローソク足、タイムスタンプ、データのクリーニング)が同一でない可能性があるため、プロバイダー間で結果が異なることもあります。
仕組みと定義
Williams %Rは、現在の終値を、選択したlookbackウィンドウ内の「最高値(highest-high)」から「最安値(lowest-low)」のレンジのどこに位置しているかに関連する値へ変換します。概念的には次の通りです。
- N本のバーのlookback期間を選ぶ。
- そのN本のバーにおける最高値を求める。
- そのN本のバーにおける最安値を求める。
- 現在の終値をそのレンジと比較して、オシレーター値を作る。
オシレーターが極値(最高値と最安値)に基づくため、Williams %Rは、新しい極値がlookbackウィンドウに入ってくるタイミング、または出ていくタイミングに敏感です。Nを変えることで、「重要になる極値」が変わります。
市場の結果を前提にせずにできる簡単な確認は次の通りです。
- Nを減らすと、極値はより頻繁に更新されるため、内部レンジ計算の分子と分母が、バーごとに変わりやすくなります。
- Nを増やすと、極値はより長く残るため、内部レンジの変化はよりゆっくりになります。
証拠または例(明示的な前提つき)
ローソク足のバーを使っており、「high」と「low」が各バーの取引レンジから来ると仮定します。同じ価格系列に対して、2つの設定を考えてください。
- 設定A:N = 10本
- 設定B:N = 30本
ここで、市場が直近10本の範囲内で急な値動きをし、最後に30本の極値が確立された後に発生した新しい最高値(または新しい最安値)を作ったと仮定します。N = 10では、その新しい極値がすぐに含まれるため、Williams %Rは素早く変化できます。N = 30では、直前の30本の極値がまだ支配的である可能性があるため、オシレーターはより緩やかに動くかもしれません。
重要なのは、動きの方向ではなくタイミングです。lookbackウィンドウが、「レンジ境界」(highest high / lowest low)がどれくらい速く更新されるかを決めます。
同じバーに対してNだけを変えて同じ計算を行うと、通常次のように観察できます。
- 小さいN:より頻繁なスイング(見かけ上の反応性が高い)。
- 大きいN:スイングが少ない(見かけ上の反応性が低い)。
制限とリスク(重大な失敗パターン)
-
文脈の不一致 Williams %Rは選択したlookbackに結びついています。選んだNが、あなたの時間軸における銘柄の典型的な動きと一致していない場合、オシレーターは過剰に反応して(ノイズとして)見えたり、遅れて(ラグとして)見えたりします。あるNでの過去の挙動は、別のNでも同様になる保証にはなりません。
-
データと実装の違い オシレーターが使う「high」と「low」は、基となる価格系列と、バーがどのように形成されるか(時間の整合、ギャップ、データのクリーニング)に依存します。同じ名目上の設定でも、基となるOHLC入力が異なり得るため、2つのプラットフォームで異なる値が出ることがあります。
-
端のケースと曖昧なレンジ lookback期間における最高値と最安値が非常に近くなると、オシレーターが使う内部レンジが小さくなり得ます。実装によっては、これが数値的な感度を増幅したり、その期間の前後で不安定な読みを生んだりする可能性があります。
-
スタンドアロンのシグナルとしての過度な解釈 Williams %Rはしばしば閾値(しきいち)とともに説明されますが、設定を変えると、その閾値をどれくらいの頻度で、どこで跨ぐかが変わります。レベルのクロスを直接的で信頼できる結果として扱うことは、lookbackの選択によるばらつき、市場レジーム、コスト、執行、そして管轄による違いを無視することになります。
検証と次の質問
Williams %Rの設定変更がどう影響するかを独立に検証するには、1つの固定した過去データセット(同じ時間軸で、同じOHLCソース)を選び、複数のlookback期間(たとえばN = 10, 20, 30)について、同じ式と同じバー定義を使ってオシレーターを計算します。次に比較してください。
- 新しい高値・安値が現れた後、オシレーター値がどれくらい速く反応するか。 - 指定した時間枠の中で、どれくらいの頻度でスイングするか。