ローソク足パターンと出来高分析
核心ポイント: ローソク足パターンと出来高-価格関係は伝統的テクニカル分析の基礎ですが、単独で使用した場合の予測力は限定的です。正しいアプローチは、これらを特徴量エンジニアリング入力として使用することであり、直接的な取引シグナルとしてではありません。
なぜこれらを理解する必要があるのか?
取引ソフトウェア(TradingView、Thinkorswim、Interactive Brokers)を使用したことがあれば、様々なローソク足パターンアノテーションと出来高バーチャートを見たことがあるでしょう。多くのトレーダーはこれらの視覚的パターンに基づいて意思決定を行います。
クオンツ実務者として、いくつかの理由でこれらの概念を理解する必要があります:
- コミュニケーション言語: トレーダーやアナリストと話す際の共通語彙
- 特徴量エンジニアリング: これらのパターンはMLモデルの入力特徴として定量化できる
- 戦略評価: 伝統的手法の限界を理解することで、より良いシステムを設計できる
- 市場心理: ローソク足パターンは買い手と売り手の戦いを反映
1. ローソク足の基礎
1.1 ローソク足コンポーネント
単一のローソク足には4つの価格ポイントが含まれます:
1.2 ローソク足の情報内容
| コンポーネント | 反映される情報 |
|---|---|
| 実体の長さ | 買い手/売り手の優位性の強さ |
| 上ヒゲ | 上からの売り圧力 |
| 下ヒゲ | 下からの買い支援 |
| 実体の位置 | 日中の買い手/売り手戦いの結果 |
2. 一般的な単一ローソク足パターン
2.1 Doji
│
─┼─ ← 始値 ≈ 終値
│
特徴: 非常に小さいまたは実体なし、上下のヒゲは長さが異なる可能性
| タイプ | 形状 | 意味 |
|---|---|---|
| 標準Doji | 類似した上下のヒゲ | 買い手/売り手の均衡、迷い |
| Dragonfly Doji | 長い下ヒゲ、上ヒゲなし | 下に強い支援 |
| Gravestone Doji | 長い上ヒゲ、下ヒゲなし | 上に強い抵抗 |
伝統的解釈: 潜在的トレンド反転のシグナル 実際の有効性: 単独使用時の予測精度は約50-55%
2.2 HammerとHanging Man
│
█ ← 上部の小さな実体
│
│ ← 長い下ヒゲ(実体の長さの少なくとも2倍)
違いは文脈にあります:
- Hammer: 下降トレンドの底に現れる → 潜在的上昇反転
- Hanging Man: 上昇トレンドの頂上に現れる → 潜在的下降反転
2.3 Shooting Star
│ ← 長い上ヒゲ
│
█ ← 下部の小さな実体
意味: 上昇トレンドの頂上に現れ、上に強い抵抗を示唆、可能性のある天井
2.4 大陽線と大陰線
| パターン | 特徴 | 意味 |
|---|---|---|
| 大陽線 | 長い実体、短いヒゲ | 強気が強くコントロール |
| 大陰線 | 長い実体、短いヒゲ | 弱気が強くコントロール |
定量的定義: 実体の長さ > 1.5× 最近のATR
3. 一般的な複数ローソク足パターン
3.1 Engulfingパターン
Bullish Engulfing(下降トレンドで): Bearish Engulfing(上昇トレンドで):
█ │
█ 最初の小さな陰線 ███ 最初の小さな陽線
┌─┐ ┌─┐
│ │ 2番目の大きな陽線 █ █ 2番目の大きな陰線
│ │ 最初を完全にカバー █ █ 最初を完全にカバー
└─┘ └─┘
条件:
- 2番目のローソク足の実体が最初を完全にカバー
- 2つのローソク足は反対色
- 明確なトレンドに現れる
3.2 Morning StarとEvening Star
Morning Star(底の反転):
█ ← 最初: 大きな陰線
█
█
┼ ← 2番目: 小さな実体(dojiまたは小さなローソク足)、ギャップダウン
┌┐
││ ← 3番目: 大きな陽線、最初のローソク足の実体内に終値
││
Evening Star: Morning Starのミラーイメージ、天井に現れる
3.3 Three Black CrowsとThree White Soldiers
| パターン | 構造 | 意味 |
|---|---|---|
| Three Black Crows | 3つの連続した大きな陰線、それぞれ低く始まり、低く終わる | 強く弱気 |
| Three White Soldiers | 3つの連続した大きな陽線、それぞれ高く始まり、高く終わる | 強く強気 |
4. 出来高分析の基礎
4.1 出来高の意味
出来高 = 買い手と売り手の間で取引された株式数
核心原則: 価格は方向、出来高は勢い
| 出来高-価格関係 | 意味 | 信頼性 |
|---|---|---|
| 価格上昇 + 出来高上昇 | 上昇トレンドに資本支援 | トレンド継続の可能性 |
| 価格上昇 + 出来高下降 | 上昇トレンドに勢いがない | トレンドが疲弊する可能性 |
| 価格下降 + 出来高上昇 | パニック売り | 下降加速または底近くの可能性 |
| 価格下降 + 出来高下降 | 下降トレンドの勢いが衰える | 安定化する可能性 |
4.2 主要な出来高-価格パターン
出来高ブレイクアウト
価格 ─────────┐
└──────── ブレイクアウト
出来高 ████████ ← 出来高が大幅に増加(>1.5× 平均)
意味: ブレイクアウトが資本によって確認され、高い信頼性
低出来高プルバック
価格 /\
/ \ ← プルバック
/
出来高 ██ █ ← プルバック中に出来高が縮小
意味: プルバックは正常な利益確定、トレンド反転ではない
出来高-価格ダイバージェンス
価格 /\ /\ /\ ← 価格が新高値を作る
/ \/ \/
出来高 ██ █ ▪ ← 出来高が減少
意味: 上昇トレンドの勢いが疲弊、可能性のある天井(MACDダイバージェンスと類似)
4.3 一般的な出来高指標
| 指標 | 式 | 目的 |
|---|---|---|
| Volume Ratio | 現在の出来高 / N日平均出来高 | 日次取引活動を測定 |
| Turnover Rate | 出来高 / 浮動株 | 株式回転率を測定 |
| OBV | 累積出来高(上昇日に加算、下降日に減算、横ばいで変化なし) | 資本フロー方向 |
| VWAP | Σ(価格 × 出来高) / Σ出来高 | 機関投資家の取引ベンチマーク |
5. パターン認識に関する実証研究
5.1 学術研究の結論
複数の学術研究がローソク足パターンの予測力をテストしました:
| 研究 | サンプル | 結論 |
|---|---|---|
| Lo, Mamaysky & Wang (2000) | 米国株1962-1996 | いくつかのパターンが統計的に有意だが、経済的意義は限定的 |
| Marshall, Young & Rose (2006) | 35市場 | ほとんどのパターンに予測力なし |
| Caginalp & Laurent (1998) | S&P 500構成銘柄 | 特定の条件下で特定のパターンが有効 |
まとめ:
- パターンのみの勝率は通常50-55%
- 取引コスト後、ほとんどのパターン戦略は利益を上げない
- パターンの有効性は時間とともに減衰する可能性(市場によって学習される)
5.2 なぜパターンが「機能するように見える」のか
- 確証バイアス: 人々は成功を覚え、失敗を忘れる
- 後知恵バイアス: 過去のチャートを見ると、常に「完璧な」パターンを見つけられる
- サバイバーシップバイアス: 成功したトレーダーのみが自分のストーリーを共有
- 曖昧な定義: 「標準的な」hammerとは何か? 正確な定義がない
5.3 パターンが有効である可能性がある場合
研究によると、パターンはこれらの条件下でより良いパフォーマンスを示します:
- 出来高と組み合わせ: 出来高確認を伴うパターンはより信頼できる
- 主要レベルで: サポート/レジスタンス近くに現れる
- 市場環境: 特定のボラティリティレジーム内
- 時間枠: より長い時間枠(日次、週次)は分足チャートより信頼できる
6. 定量的実装: 特徴としてのパターン
6.1 パターンの定量化における課題
伝統的パターン分析は「パターンマッチング」ですが、定義が曖昧です:
- 「長い下ヒゲ」 - どれくらい長いのか?
- 「小さな実体」 - どれくらい小さいのか?
- 「トレンド内」 - トレンドをどう定義するか?
解決策: パターンを離散シグナルではなく、連続特徴に変換
6.2 特徴量エンジニアリング例
def calculate_candlestick_features(df):
"""
ローソク足パターンを連続特徴に変換
dfには: open, high, low, close, volume列が必要
"""
# 基本計算
df['body'] = df['close'] - df['open']
df['body_abs'] = df['body'].abs()
df['upper_shadow'] = df['high'] - df[['open', 'close']].max(axis=1)
df['lower_shadow'] = df[['open', 'close']].min(axis=1) - df['low']
df['range'] = df['high'] - df['low']
# 特徴1: 実体比率(0=doji, 1=ヒゲなし)
df['body_ratio'] = df['body_abs'] / df['range'].replace(0, np.nan)
# 特徴2: 上ヒゲ比率
df['upper_shadow_ratio'] = df['upper_shadow'] / df['range'].replace(0, np.nan)
# 特徴3: 下ヒゲ比率
df['lower_shadow_ratio'] = df['lower_shadow'] / df['range'].replace(0, np.nan)
# 特徴4: 終値位置(終値が日次レンジのどこにあるか)
df['close_position'] = (df['close'] - df['low']) / df['range'].replace(0, np.nan)
# 特徴5: 相対実体サイズ(最近のATRと比較)
atr = calculate_atr(df, period=14)
df['relative_body'] = df['body_abs'] / atr
# 特徴6: Engulfing比率(現在の実体が前の実体をカバー)
df['engulfing_ratio'] = df['body_abs'] / df['body_abs'].shift(1)
return df
def calculate_volume_features(df, periods=[5, 20]):
"""
出来高関連特徴を計算
"""
for p in periods:
# Volume ratio
df[f'volume_ratio_{p}'] = df['volume'] / df['volume'].rolling(p).mean()
# OBV(On-Balance Volume)
df['obv'] = (np.sign(df['close'].diff()).fillna(0) * df['volume']).cumsum()
# OBVトレンド(OBV移動平均の傾き)
df['obv_slope'] = df['obv'].rolling(10).apply(
lambda x: np.polyfit(range(len(x)), x, 1)[0]
)
# 価格-出来高相関(最近の価格変化vs出来高相関)
df['price_volume_corr'] = df['close'].pct_change().rolling(20).corr(
df['volume'].pct_change()
)
return df
6.3 特徴使用推奨事項
| 特徴タイプ | 適したモデル | 注記 |
|---|---|---|
| 連続パターン特徴 | ツリーモデル、ニューラルネットワーク | 正規化が必要 |
| バイナリパターンラベル | ロジスティック回帰、ルールシステム | 定義は一貫している必要 |
| シーケンシャルパターン | LSTM、Transformer | 時間窓が必要 |
7. Multi-Agent視点
Multi-agentシステムでは、ローソク足パターンと出来高分析は以下のように配置できます:
| Agent | 使用方法 |
|---|---|
| Trend Agent | 大きなローソク足を使用してトレンドの強さを判断 |
| Mean Reversion Agent | doji、hammerを使用して潜在的反転ポイントを識別 |
| Regime Agent | 出来高-価格ダイバージェンスを市場レジーム変化の1つのシグナルとして |
| Risk Agent | 異常な出来高スパイクをリスク警告シグナルとして |
主要原則:
- パターン特徴は1つの入力であり、唯一の根拠ではない
- 他の特徴(MACD、RSI、ファンダメンタルズ)と組み合わせて総合判断
- Agentは確率を出力し、決定的シグナルではない
8. よくある誤解
誤解1: パターンは「秘密コード」
「ローソク足パターンの読み方を学べば、一貫した利益が保証される」
真実: パターンがそれほど効果的なら、より多くの人が使うほど、効果は低下する(再帰性)
誤解2: パターンはどこでも機能する
「hammerは常に底のシグナル」
真実: 同じパターンは市場環境や商品によって全く異なるパフォーマンスを示す可能性
誤解3: 出来高は常に意味がある
「高出来高は機関投資家の買いを意味する」
真実: 高出来高は個人投資家のパニック、アルゴリズム取引、インデックスリバランスなど、多くの理由がある可能性
誤解4: パターンは正確に予測できる
「evening starは明日確実に下落を意味する」
真実: パターンは確率的エッジ(もしあれば)を提供するのみで、決定的予測ではない
主要な要点
- ローソク足パターンは買い手-売り手戦いの視覚的表現
- パターンのみの予測力は限定的(50-55%勝率)
- 出来高確認はパターンの信頼性を向上させる
- 正しい使用方法はパターンをML特徴として定量化することであり、直接シグナルではない
- Multi-agentシステムでは、パターンは多くの入力の1つ
さらなる読み物
- Lesson 04: The Real Role of Technical Indicators - MACD、RSIなどの指標を説明
- Lesson 09: Supervised Learning in Quantitative Trading - MLモデルへの特徴入力方法
- Background: Feature Engineering Common Pitfalls - 特徴量エンジニアリングのミスを避ける
参考文献
- Nison, S. (1991). Japanese Candlestick Charting Techniques
- Lo, A., Mamaysky, H., & Wang, J. (2000). Foundations of Technical Analysis. Journal of Finance
- Murphy, J. (1999). Technical Analysis of the Financial Markets