チャートパターン(Chart Patterns)
チャートパターンは、数本〜数十本のローソク足で構成される定型的な形状です。反転パターン(既存トレンドの終わりを示唆する形)と継続パターン(トレンド中の休息)を区別し、それぞれの定義、判定手順、目標値・損切りの型を体系化します。上位足での方向認識、ブレイク方向の予測、ネックラインや保ち合い上限・下限を使った損切り・目標値の設計に使い、ローソク足パターンや水平線(サポート・レジスタンス)と組み合わせるのが実践的です。
原型は Robert D. Edwards & John Magee Technical Analysis of Stock Trends(1948)、体系化は Thomas Bulkowski Encyclopedia of Chart Patterns(2005)にあります。
前提
反転(reversal)と継続(continuation)
| 分類 | 出現位置 | 典型例 |
|---|---|---|
| 反転 | トレンドの終端 | ダブルトップ/ボトム、H&S、逆 H&S、ウェッジ(逆方向)、三尊 |
| 継続 | トレンドの途中 | フラッグ、ペナント、レクタングル(継続版)、三角保ち合い、カップ&ハンドル |
両義的なパターン(三角保ち合い・レクタングル)は、出現位置と抜け方向で反転・継続の判定が変わります。パターン名だけで反転/継続を決めてはいけません。
ネックライン/ブレイクの定義
- 多くのパターンで「決定的な水平線(ネックライン)」を持つ。ネックラインを終値ベースで抜けた時点で「パターン成立」とする
- 終値ブレイク:対象時間足の終値がネックラインを越えたか
- リテスト(retest / pullback):ブレイク後に一度ネックラインへ戻ってから走る挙動。エントリー機会はブレイク時とリテスト時の 2 回ある
- ダマシ(false breakout):一度抜けたが同じ足内で戻る、または次足で戻る挙動。反対方向の勢いが強い場合はダマシ後に逆走する
目標値の型
- 測定移動(measured move):パターンの高さ(top と bottom の差)をネックラインから同距離延ばした位置
- フィボナッチ拡張(fib extension):1.272 / 1.618 の外挿を使う流派もある
- 目標値は「そこで反転する」ではなく「最低ここまでは伸びる期待値」として使う
反転パターン

模式図(理想化した形状)。実際は綺麗に出ないことも多い。
ダブルトップ/ダブルボトム
ダブルトップ(bearish reversal):
- 上昇トレンドの終盤、直近高値付近で 2 回目の高値をつける
- 2 つの高値の間にネックライン(中間安値)が存在
- 2 つの高値がほぼ同水準、または 2 番目がわずかに低い
- ネックライン(中間安値)を終値で下抜けた時点で成立
判定条件:
- 2 つの高値の水準差:平均レンジの 1% 以内が一般的
- ネックラインまでの下落幅(パターン高さ):直近ボラの 2 倍以上が望ましい
- 2 つの高値間の期間:短すぎる(数本)と信頼度が低い
目標値・損切り:
- 目標値:パターン高さをネックラインから下方向に投影
- 損切り:2 番目の高値の少し上
ダブルボトム(bullish reversal) は逆の対称形です。定義・目標値の型は同じです。
トリプルトップ/トリプルボトム:
- 3 回同水準で反転する変形
- ダブルトップより信頼度が高いとされる(Bulkowski の統計でも成功率が上)
- 3 回目の反転を待つと出遅れになりやすい。2 回目でエントリー、3 回目失敗を損切りとする戦術もある
ヘッド&ショルダー(三尊)/逆 H&S(逆三尊)
ヘッド&ショルダー(bearish reversal、H&S top):
- 左肩(left shoulder):直近高値
- 頭(head):左肩より高い高値
- 右肩(right shoulder):頭より低く、左肩と同水準の高値
- ネックライン:左肩と頭の間の安値、頭と右肩の間の安値を結んだ線
判定条件:
- 左肩と右肩の水準差:平均レンジの 3% 以内
- 頭は左右肩の両方より明確に高い
- ネックラインは水平が原型だが、上昇・下降斜線も許容(斜めネックライン)
- 右肩形成中の出来高(FX では tick 数)が減少しているのが原型
成立と目標値:
- ネックライン終値割れで成立
- 目標値:頭からネックラインまでの垂直距離を、ネックラインから下方向に投影
- 損切り:右肩の高値の上
逆 H&S(bullish reversal、H&S bottom) は上下を反転した対称形です。安値圏の底打ちパターンです。
変形:
- 複合 H&S(complex H&S):左右に肩が 2 つ以上ある。判定が主観的になる
- なだらかな H&S:肩と頭の高低差が小さい。ダマシに近い
ラウンドトップ/ラウンドボトム(お椀型)
特徴:
- 数十本〜数百本にわたるゆるやかな円弧
- 明確なネックラインは持たない
- 天井(ラウンドトップ)/底(ラウンドボトム)を「気づいた時には形成済み」のパターン
判定:
- 移動平均線(100 SMA、200 SMA)との曲線一致
- ボリンジャーバンドの中央線の傾きが 0 から反対方向へ
使いどころ:
- 上位足(日足・週足)専用。下位足では認識不能
- FX スポットではドル円の月足で数年単位の天底として現れることがある
- エントリー精度は低いが、ポジション方向のバイアスとして有効
ウェッジ(Rising / Falling Wedge、反転版)
継続版とは別枠で扱います(継続系の項を参照)。反転ウェッジは上位トレンドと逆方向の傾きを持つウェッジです。
- 反転上昇ウェッジ(rising wedge in uptrend):上昇トレンド末端、傾きが徐々に緩む上向きウェッジ。下方向へブレイクで反転
- 反転下降ウェッジ(falling wedge in downtrend):下降トレンド末端、傾きが緩む下向きウェッジ。上方向へブレイクで反転
判定は「高値の切り上げ幅が縮小 + 安値の切り上げ幅がそれ以上に縮小」(ウェッジ収束)と、上下のトレンドラインが交差する未来点の存在によります。
ダイヤモンドトップ/ボトム
特徴:
- パターン前半が拡大三角、後半が縮小三角の複合形
- 出現頻度は低いが、天底の指標として引用される
- ネックラインは後半三角の下辺(ダイヤモンドトップの場合)
FX スポットでは稀です。認識と判定が主観的になりやすく、実運用の優先度は低いです。
継続パターン

模式図(理想化した形状)。
フラッグ(Flag)/ペナント(Pennant)
共通:
- 強いトレンド(旗竿 / flagpole)の後の「小さな休息」
- 期間は数本〜数十本(数時間〜数日)の短期
- 旗竿の高さがそのまま目標値の高さになる(measured move)
フラッグ:
- 旗竿の後、平行な傾きを持つ小さなレンジ(平行四辺形)
- 上昇トレンドでは下向きに傾いた並行チャネル(bull flag)
- 下降トレンドでは上向きに傾いた並行チャネル(bear flag)
ペナント:
- 旗竿の後、収束する小さな三角形
- 対称三角形の縮小版
判定条件:
- 旗竿(flagpole):直近ボラの 3 倍以上の一方向動き
- フラッグ/ペナント本体:旗竿の 1/3 以下の値幅
- 期間:フラッグは 1〜3 週間、ペナントはさらに短い
目標値・損切り:
- 目標値:旗竿の高さを、ブレイク点から同方向に投影
- 損切り:フラッグ/ペナントの反対側の端
三角保ち合い(Triangles)
対称三角形(symmetrical triangle):
- 高値切り下げ + 安値切り上げの収束形
- 上下どちらにも抜ける可能性がある(神話的には「70% は既存トレンド方向」だが FDR で有意な確認はない)
- 収束点付近まで持ち込むとブレイクの勢いが減衰しやすい(原型は 2/3〜3/4 で抜ける)
上昇三角形(ascending triangle、bullish):
- 水平の抵抗線 + 上昇するトレンドライン(安値切り上げ)
- レンジの上限で複数回抵抗されつつ、押し目が浅くなる形
- 上方向へのブレイクが典型(継続か反転かは出現位置で決まる)
下降三角形(descending triangle、bearish):
- 水平の支持線 + 下降するトレンドライン(高値切り下げ)
- 上昇三角の対称形。下方向ブレイクが典型
目標値:
- 三角形の「始点」(最初の高値と安値の垂直距離)を、ブレイク点から同方向に投影
- 保ち合いが長引いた場合、目標値の到達確率が下がる
判定の実務:
- トレンドラインは最低 2 点、望ましくは 3 点以上のタッチで引く
- 収束点(トレンドラインの交点)より前(2/3 手前)の抜けが理想
- 収束点を過ぎたブレイクは「だまし後の反転」になりやすい
レクタングル(Rectangle)/ボックス
定義:
- 水平な支持と抵抗で挟まれた矩形レンジ
- 継続(トレンド中の休息)と反転(トップ or ボトム形成)の両方に化ける
判定:
- 上限と下限にそれぞれ 2 回以上のタッチ
- 上限と下限の水平度:平均レンジの 3% 以内
目標値・損切り:
- 目標値:レンジ幅をブレイク点から同方向に投影
- 損切り:レンジの反対側(再エントリー可能ならレンジ内側)
使いどころ:
- 上位足のダブル/トリプルトップ・ボトムの前段として認識される
- 下位足のブレイクとリテストが機能しやすい
カップ&ハンドル(Cup and Handle)
William O’Neil(CANSLIM)系の株式パターンです。FX では少ないが、日足・週足で稀に出ます。
特徴:
- カップ(お椀型のラウンドボトム、期間 1 か月〜数か月)
- ハンドル(右側の小さな下方向の押し、数日〜数週間)
- カップ左端の水準(レジスタンス)を上抜けて成立
目標値:
- カップの深さをブレイク点から上方向に投影
FX では USD/JPY 日足で年単位のリバーサル局面に稀に現れます。個別通貨の中央銀行スタンス変化と重なると認識されやすいです。
継続 vs 反転の判定が難しいパターン
ウェッジ(継続版)
- 継続下降ウェッジ(falling wedge in uptrend の押し目):上昇トレンド中の押し目としてのウェッジ。下方向の収束、上方向へのブレイクで元のトレンド継続
- 継続上昇ウェッジ(rising wedge in downtrend の戻り):下降トレンド中の戻りとしてのウェッジ
反転版との違いは出現位置です。既存トレンドの方向と「反対」に向くウェッジは、既存トレンドの継続(押し目・戻り)を示唆します。同じ形でも文脈で意味が変わる典型例です。
拡大型フォーメーション(Broadening / Megaphone)
- 三角保ち合いの逆で、高値切り上げ + 安値切り下げの発散形
- ボラティリティ拡大局面、ニュース続きの相場で出やすい
- ダマシが多く、明確な戦術に落としにくい
- 上位足での認識に留め、下位足のトリガーで入る
USD/JPY での使いどころ
- 日足のダブルボトム/ダブルトップ:中央銀行スタンスの転換(Fed / BoJ)と重なる。介入直前の直近高値付近でダブルトップが出ることがある
- 4H のヘッド&ショルダー:NY 時間の高値・安値で形成されやすい。ネックラインは東京仲値やロンドンフィックスの水準と重なることがある
- 1H の三角保ち合い:経済指標発表前の値幅縮小で頻出。指標時刻の少し前にブレイクが起きるパターンと、指標発表と同時にブレイクするパターンがある
- 15分・5分のフラッグ/ペナント:ロンドンオープン後の第 1 波の後、NY オープン前の第 2 波の助走で頻出。旗竿の高さをそのまま目標値にすると、東京〜NY の 3 セッション内で消化されやすい
- 週足のカップ&ハンドル/ラウンドボトム:数か月〜1 年単位の底打ち。個別のトレンド判断より、リスクリワードのバイアス設定に使う
落とし穴
- パターンを「見つけたい」気持ちで見ない:存在しないパターンを主観で読む「パレイドリア」が起きる。3 点タッチ以上の客観条件を先に決めておく
- ネックラインの引き方を後付けにしない:1 度ネックラインを引いたら、ブレイク判定までは引き直さない。ダマシ回避と引き直しは別問題
- 時間足を混ぜない:4H のダブルトップと 15分のダブルトップは別物。上位足を「環境」に、下位足を「トリガー」に固定する
- ブレイクの終値確認を省略しない:髭のブレイクだけで動くとダマシの餌食になる。少なくとも該当時間足の終値ベースで確認する
- 測定移動を絶対視しない:パターン高さを投影した目標値は「統計的に到達しやすい水準」であり、そこで反転する保証はない。手前の直近水平線を優先する
- 出来高(tick 数)の代替を諦める:FX スポットは真の出来高が取得できない。tick 数は取れるが、時間帯によるバイアスが大きい。株式教科書の「出来高収縮」の厳密適用は難しい
- 反転 vs 継続の判定を機械化しすぎない:三角保ち合いの抜け方向、ウェッジの反転か継続かは出現位置と上位足トレンドで決まる。パターン単独では方向が定まらない
- 統計的 edge を仮定しない:Bulkowski の統計(成功率 60-70% 帯)は米国株での結果。FX スポットでの検証は限定的で、FDR 補正後の生存率は未確認
Python 実装スケッチ
チャートパターン検出は主観性が高いため、「3 点以上のトレンドラインタッチ + ネックライン水平 + 終値ブレイク」などの厳密条件を数値化するのが定石です。以下はダブルトップ検出の骨格例です。
import pandas as pdimport numpy as npfrom scipy.signal import argrelextrema
def find_swing_points(df: pd.DataFrame, order: int = 5) -> tuple[np.ndarray, np.ndarray]: highs = argrelextrema(df["high"].values, np.greater, order=order)[0] lows = argrelextrema(df["low"].values, np.less, order=order)[0] return highs, lows
def detect_double_top(df: pd.DataFrame, order: int = 5, level_tol: float = 0.003, min_gap: int = 10) -> list[dict]: highs, lows = find_swing_points(df, order=order) patterns = []
for i in range(len(highs) - 1): idx1, idx2 = highs[i], highs[i + 1]
if idx2 - idx1 < min_gap: continue
h1, h2 = df["high"].iloc[idx1], df["high"].iloc[idx2] avg = (h1 + h2) / 2
if abs(h1 - h2) / avg > level_tol: continue
neckline_lows = df["low"].iloc[idx1:idx2] neckline = neckline_lows.min()
patterns.append({ "peak1_idx": idx1, "peak2_idx": idx2, "peak_level": avg, "neckline": neckline, "height": avg - neckline, "target": neckline - (avg - neckline), })
return patternsargrelextremaはorder本の窓で局所極値を返す。order=5は「前後 5 本より高い/低い」山谷level_tolは 2 つの高値の許容差(相対値)。0.003 = 0.3%min_gapは 2 つの高値の最小間隔。近すぎるノイズを除外- ネックラインは 2 つの高値の間の最安値。原型的なダブルトップの定義
- ブレイク判定(
df["close"] < neckline)は別関数で実施し、成立後にtargetを評価する - H&S、三角保ち合い、フラッグの検出は同様に「swing 点の並び + 線形回帰でトレンドラインを引く + 収束点を計算」の構造で書ける
参考
- Robert D. Edwards & John Magee, Technical Analysis of Stock Trends, 1948(最新は 11th ed., 2018)
- Thomas N. Bulkowski, Encyclopedia of Chart Patterns, 3rd ed., John Wiley & Sons, 2021
- John J. Murphy, Technical Analysis of the Financial Markets, ch. 5–7(Basic Concepts of Trend, Major Reversal Patterns, Continuation Patterns)
- Martin J. Pring, Technical Analysis Explained, 5th ed., McGraw-Hill, 2014
- William O’Neil, How to Make Money in Stocks, 4th ed., McGraw-Hill, 2009 — カップ&ハンドルの原典