フィボナッチとピボットポイントを組み合わせる考え方 — 根拠の異なる水平線が重なる価格帯を抽出する
水平線を何本も引いた結果、かえって「どの線を見ればよいのか」が分からなくなることがあります。本記事で扱うのは、線を増やすのではなく 絞り込む ための組み合わせです。フィボナッチ・リトレースメントとピボットポイントはどちらも水平線を出力しますが、線が生まれる根拠はまったく異なります。成り立ちの違う2系統の線が近い価格に集まった場所を「重なり帯(コンフルエンス)」として抽出し、単独の線と区別して扱うのが本記事の骨格です。水平線系のロジックを cBot に落とし込みたい方向けの設計メモであり、特定の水準で反応が起きることを示すものではありません。
フィボナッチ・リトレースメントの役割
フィボナッチ・リトレースメントは、直近のスイング安値から高値まで(下落局面ならその逆)の値幅を 100% とみなし、23.6%・38.2%・50%・61.8% といった比率の位置に線を引く手法です。水準は 直近の波の形 から生まれ、新しいスイングが確定すれば引き直される、動的な水平線です。
単独利用の限界は2つあります。1つは、どの波を基準にするかで線の位置がすべて変わる起点選びの主観性です。もう1つは、比率ごとに線が並ぶため 候補が多すぎる ことで、どの線が意識されやすいのかをフィボナッチ自身は教えてくれません。基準となる高安を機械的に揃える考え方は、Swing Point Auto Marker の紹介記事でも扱っています。
ピボットポイントの役割
ピボットポイントは、前日の高値・安値・終値から中心値 P を求め、その上下に R1・S1 などの水準を計算で展開する手法です。当日が始まる前にすべての線が確定し、誰が計算しても同じ値になります。フィボナッチとは対照的に、カレンダーの区切り から生まれる静的な水平線です。
一方で、ピボットは前日1本分の値動きしか参照しないため、数日単位で続く流れの押し目がどこにあるかという文脈を持ちません。R3/S3 まで含めると7本前後の線が並び、「どの線を重視するか」を別途決める必要がある点もフィボナッチと共通です。スケールを持たない弱点を ATR で補う設計は、ピボットポイントとATRの組み合わせで整理しました。
なぜこの組み合わせか
2つの手法に共通する弱点は「線が多い」こと、異なるのは「線の根拠」です。根拠の違いを利用して、線の多さを整理するのがこの組み合わせです。
出自の異なる線の重なりを抽出できます。波の値幅から引いた線と前日の値から計算した線が近い価格に並べば、その価格帯は2つの異なる見方で同時に注目対象になっています。サポートとレジスタンスでいう「複数の根拠が重なる水準」を、主観を挟まずに検出する仕組みとして機能することが期待できます。
動的な線と静的な線の補完関係になります。フィボナッチは波の構造を反映するものの起点に揺らぎがあり、ピボットは客観的に固定されるものの波の文脈を持ちません。両者の近接を確認することで、候補を多角的に判定する材料になります。
ただし、落とし穴が2つあります。
1つは 偶然の重なり です。両方で10本前後の線を限られた価格帯に並べると、許容幅次第では意味のない近接も起きやすくなります。許容幅を広げるほど重なり帯は増え、抽出する意味は薄れます。
もう1つは 根拠の独立性が完全ではない ことです。前日の高値や安値がそのままスイングの起点になっている場合、2つの手法は同じ価格から線を作っており、重なりは半ば構造的に生じます。また、派生版のフィボナッチ・ピボットは前日の値幅にフィボナッチ係数を掛けて作るため、比率の出自が重複します。独立した根拠として扱うなら、クラシック型を基準にするほうが整理しやすいと考えられます。
パラメータをどう考えるか
正解の値はないため、検討の方向性だけを整理します。
スイングの粒度: 高安を左右何本の足と比べて確定させるかを決めます。日足ピボットと組み合わせるなら、数日以内に収まる程度の波を基準にすると時間軸の意味が揃いやすくなります。
使う比率と水準: 比率を 38.2%・50%・61.8% に絞るか、ピボットを R1/S1 までにするかで、偶然の重なりの起きやすさが変わります。線を増やすほど重なりは見つかりやすくなりますが、一つひとつの意味は薄まります。
許容幅: 2本の線を「重なっている」とみなす距離です。固定値では銘柄やボラティリティの変化に追従できないため、ATR の一定割合として持たせ、小さめの係数から発生頻度をログで確認しながら広げていく進め方が考えられます。
検証では、重なり帯の水準と単独の水準で、その後の反応に差があるかを比較する形にします。重なり帯だけを集計すると、条件を足すたびに見かけの結果が整う過剰最適化に陥りやすいため、比較対象を用意したうえでバックテストを行う前提です。
cBot化する際の考慮点
設計の中心は、2系統の水準を1つのリストに統合する処理です。
更新タイミングが2種類ある: ピボットは日付変更時、フィボナッチはスイング確定時に更新されます。どちらかが更新されたときだけ統合処理を走らせると、計算量も判定も安定します。
「前日」の定義: 日足バーの区切りはブローカーや銘柄の設定で異なる場合があるため、週明けや祝日を挟むときにどのバーを前日とみなすかを仕様として固定します。
スイング確定の遅れ: 高安は右側に指定本数の足が並んで初めて確定します。未確定の高安を使うとバックテストと実運用で挙動がずれます。
出自タグと連鎖結合: 水準に出自のタグを持たせ、同じ手法の線同士の近接は重なりとして数えません。隣接する線を順に結合すると帯が際限なく伸びるため、帯の最大幅にも上限を設けます。
// 抜粋: 出自タグ付きの水準リストから重なり帯を抽出する
private enum LevelSource { Fibonacci, Pivot }
private readonly record struct Level(double Price, LevelSource Source);
private readonly record struct Zone(double Low, double High, int Count);
private List<Zone> FindConfluenceZones(List<Level> levels, double tolerance, double maxWidth)
{
var zones = new List<Zone>();
var group = new List<Level>();
foreach (var level in levels.OrderBy(l => l.Price))
{
bool fits = group.Count == 0
|| (level.Price - group[^1].Price <= tolerance // 直前の線との距離
&& level.Price - group[0].Price <= maxWidth); // 帯の伸びすぎを防ぐ
if (!fits)
{
AddIfMixed(zones, group);
group.Clear();
}
group.Add(level);
}
AddIfMixed(zones, group);
return zones;
}
private static void AddIfMixed(List<Zone> zones, List<Level> group)
{
// 両方の出自を含む群だけを重なり帯として残す
if (group.Any(l => l.Source == LevelSource.Fibonacci)
&& group.Any(l => l.Source == LevelSource.Pivot))
zones.Add(new Zone(group[0].Price, group[^1].Price, group.Count));
}
許容幅には日足 ATR に係数を掛けた値を渡す想定です。起動直後は ATR が NaN を返したり、スイングが1つも確定していなかったりするため、どちらかの系統が揃うまでは統合処理を保留します。水準は十数本程度なので、計算負荷はほとんど問題になりません。
実装の流れ
処理は、2系統の入力が1か所で合流する形に整理できます。
- 入力: 日足のバー(前日 HLC 用)と実行足のバー(スイング検出用)を取得する
- 水準生成: 日付変更時にピボット、スイング確定時にフィボナッチの水準を出自タグ付きで作る
- 統合: どちらかが更新されたときだけ、全水準を価格順に並べて許容幅で束ねる
- 判定: 両方の出自を含む群だけを重なり帯とし、片方だけの群は単独水準として区別する
- 出力: 重なり帯を描画してログに残し、発注側には「現在値が帯の中にあるか」のフラグとして渡す
このモジュールには売買の方向を決めさせず、「注目する価格帯の一覧」を返すところまでを担当させると、方向判定や損切り設計を後から差し替えやすくなります。複数条件を点数でまとめる設計はシグナルスコアリングの設計も参考になります。
どう活用するか
自作派の方は、出自タグと帯幅の上限という2つの論点を、Claude Code への指示書に最初から明記しておくと手戻りが減ります。ラウンドナンバーなどを3つめの出自として足す拡張にも、同じ構造が使えます。委託派の方は、ai-programming.xyz への相談時に「どの比率・水準を使うか」「許容幅を何で決めるか」を先に整理しておくと、要件のすり合わせが早く進みます。教育派の方には、並べ替えと群化という汎用アルゴリズムを、トレードの題材で書く練習になります。ピボットの描画を既製ツールで済ませたい場合は、Daily Pivot Multi Levelも選択肢です。
本記事は一般的な情報提供を目的としています。投資助言ではありません。 取引判断はご自身の責任で行ってください。