第 04 課:技術指標の真の役割

重要な洞察: 指標は「買い/売りシグナル」ではない - それらは特徴量エンジニアリングである。


「ゴールデンクロスは上昇を意味する」という幻想

ある初心者トレーダーがオンラインで「確実勝利」ルールを学んだ:MACDゴールデンクロスで買い、デッドクロスで売る

彼は興奮してプログラムを書き、10年分のデータをバックテストした。結果:勝率52%、年率リターン-8%。

「どうしてこんなことに?ゴールデンクロスは明らかに強気シグナルだ!」

彼はRSI売られすぎ買い、Bollinger Band下限買い、移動平均強気配列買いを試した... すべての「古典的シグナル」を単独で使用すると、勝率は50%付近を推移し、手数料後すべて損失を出した。

何が間違っていたのか?

この初心者はよくある間違いを犯した:テクニカル指標を買い/売りシグナルとして扱った

真実は:

  1. 指標は遅行性がある: MACDゴールデンクロスの時には、価格はすでに上昇している
  2. 指標は単純化されている: 単一の数字では複雑な市場状態を捉えられない
  3. 指標は利用されている: 全員が同じシグナルを見ると、シグナルは効果を失う

では、テクニカル指標は実際に何に役立つのか?

答え:特徴量エンジニアリング。指標は直接取引のためではなく、市場状態を記述するためのもの。MACD、RSI、Bollinger Bandsなど数十の指標を機械学習モデルの入力特徴量として組み合わせると、真の価値を発揮できる。

このレッスンの目標:テクニカル指標の本質を理解し、正しく使用する方法を学ぶ支援をする。


4.1 指標の本質

指標 = 数学的変換

すべてのテクニカル指標は本質的に価格と出来高の数学的変換:

生データ変換方法結果指標
終値系列移動平均MA(移動平均)
終値系列指数加重平均EMA(指数移動平均)
価格変動系列相対強度計算RSI
価格系列平均 +/- 標準偏差Bollinger Bands
高値、安値、終値複数計算MACD

重要な洞察: 指標は新しい情報を作らない。既存の情報を異なる方法で提示するだけ。

遅行性は固有の特性

過去のデータから計算される指標は本質的に遅行性がある:

価格がすでに変化
        |
    指標を計算
        |
   指標がシグナル生成
        |
    あなたが行動
        |
  価格はすでに反転している可能性
指標典型的パラメータ遅行量
MA55日平均約2-3日
MA2020日平均約10日
MACD12, 26, 9約5-10日
RSI(14)14日約7日

要点: 指標が未来を「予測」することを期待しない。「今」と「過去」を記述できるだけ。

情報圧縮と損失

数百日の価格データを単一の数字(RSI=65など)に圧縮すると、必然的に重要な情報が失われる:

  • 価格の分布形状は? 失われる
  • 出来高変化パターンは? 失われる
  • 日中ボラティリティ特性は? 失われる

これが単一指標では効果的に取引を導けない理由 - 情報が少なすぎる。


4.2 トレンド指標

MA / EMA: 平滑化 vs 遅行性のトレードオフ

移動平均(MA): 過去N日の終値の単純平均。

MA(5) = (P1 + P2 + P3 + P4 + P5) / 5

指数移動平均(EMA): 最近の価格により高い重みを与える。

EMA = 今日の価格 x alpha + 昨日のEMA x (1-alpha)
ここで alpha = 2 / (N+1)
比較MA(単純移動平均)EMA(指数移動平均)
重み分布等しい最近のデータがより高い
新しいデータへの反応遅い速い
平滑性より滑らかより敏感
使用ケース長期トレンド短期トレンド

基本的なトレードオフ: パラメータが小さい -> より敏感 -> よりノイズが多い。パラメータが大きい -> より安定 -> より遅行性。

MACD: トレンドとモメンタム

MACDは最もよく使われるトレンド指標の一つで、3つの部分から構成:

DIFF(速線) = EMA12 - EMA26
DEA(シグナル線) = EMA9(DIFF)
ヒストグラム = 2 x (DIFF - DEA)

プラットフォーム注: 一部の取引プラットフォーム(特にアジア市場のTradingView中国版、同花順など)はヒストグラムを2倍するが、西洋プラットフォームは通常しない。MACD値を参照する際は、使用するプラットフォームの式を常に確認すること。

直感的理解:

  • DIFF: 短期と長期トレンドの差
  • DEA: DIFFの平滑化版
  • ヒストグラム: トレンド加速/減速の度合い
MACD状態意味市場解釈
DIFF > 0、ヒストグラム拡大上昇トレンド加速強気強い
DIFF > 0、ヒストグラム縮小上昇トレンド減速天井の可能性
DIFF < 0、ヒストグラム縮小下降トレンド減速底の可能性
DIFF < 0、ヒストグラム拡大下降トレンド加速弱気強い

ダイバージェンス分析

ダイバージェンスはテクニカル分析で最も重要な概念の一つ:

ダイバージェンスタイプ価格の動きMACDの動き意味
弱気ダイバージェンス新高値新高値なし上昇モメンタム枯渇、下落可能性
強気ダイバージェンス新安値新安値なし下降モメンタム枯渇、上昇可能性
弱気ダイバージェンス例:
価格:  100 -> 110 -> 120 -> 125 -> 130(新高値)
MACD:    10 ->  15 ->  18 ->  16 ->  14(新高値なし)
                              ^
                         モメンタム枯渇シグナル

重要な警告:

  • ダイバージェンスは「可能性」シグナルのみ、「確実」シグナルではない
  • ダイバージェンスのみで取引すると通常勝率55-60%のみ
  • 他の指標と市場構造からの確認が必要

4.3 オシレーター指標

RSI: 相対強度

RSIは最近の上昇と下落の相対強度を測定:

RS = 平均上昇 / 平均下落
RSI = 100 - 100/(1+RS)

RSIは0-100の範囲:

RSI範囲伝統的解釈現実
> 70買われすぎ、売るべき強い市場は > 80に留まることができる
30-70通常範囲ほとんどの時間ここ
< 30売られすぎ、買うべき弱い市場は < 20に留まることができる

RSIの実際の使用法:

  • 70/30のみを買い/売りシグナルとして依存しない
  • RSIのトレンドがより重要:RSIが30から上昇 vs RSIが60-70で振動
  • RSIダイバージェンスも同様に有効:価格が新高値を作るがRSIは作らない = 弱気ダイバージェンス

Bollinger Bands

Bollinger Bandsは3本の線から構成:

中央バンド = MA20(20日移動平均)
上限バンド = MA20 + 2 sigma(平均 + 2標準偏差)
下限バンド = MA20 - 2 sigma(平均 - 2標準偏差)

統計的意味: 正規分布仮定下で、価格が上限と下限バンド間にある確率は95%。

Bollingerシグナル伝統的解釈適用シナリオ
上限バンドタッチ買われすぎ、反落可能性横ばい市場
下限バンドタッチ売られすぎ、反発可能性横ばい市場
上限バンド突破トレンド開始トレンド市場
バンド縮小ボラティリティ減少、ブレイクアウト来るすべての市場

重要な洞察: Bollinger Bandsは横ばい市場での「反転」シグナル、トレンド市場での「ブレイクアウト」シグナル - まず市場状態を識別する必要がある。


4.4 ボラティリティ指標

ヒストリカルボラティリティ

ヒストリカルボラティリティ = 過去N日のリターンの標準偏差 x sqrt(252)(年率換算)

計算例:
日次リターン標準偏差 = 2%
年率換算ボラティリティ = 2% x sqrt(252) ~ 31.7%
年率換算ボラティリティ典型的資産リスクレベル
10-15%債券、大型優良株
20-30%通常株式
40-60%小型株、暗号通貨
80%+アルトコイン、期限切れオプション極端

ATR(Average True Range)

ATRは「真のボラティリティ範囲」を測定し、ギャップを考慮:

True Range = max(
    今日の高値 - 今日の安値,
    |今日の高値 - 昨日の終値|,
    |今日の安値 - 昨日の終値|
)
ATR = True RangeのN日平均

ATRの実用的使用法:

  • 損切り設定: 損切り距離 = エントリー価格 +/- 2 x ATR
  • ポジションサイジング: ボラティリティが高い時はポジション削減、低い時は増加可能
  • ブレイクアウト確認: ブレイクアウト > 1 x ATR の方が本物の可能性が高い

4.5 戦略評価指標

これらの指標は戦略パフォーマンスを評価し、取引シグナルではない:

シャープレシオ

シャープレシオ = (Rp - Rf) / sigma_p

Rp = ポートフォリオリターン
Rf = リスクフリーレート(例:国債利回り)
sigma_p = リターンの標準偏差

直感的理解: リスク単位あたりの超過リターンはいくらか。

シャープレシオ評価
< 0損失、銀行預金より悪い
0-1平均、リスクに見合わない可能性
1-2良い
2-3優れている
> 3トップレベル(またはデータ問題)

その他のリスク指標

指標意味
Sortino比(Rp - Rf) / sigma_downside下方ボラティリティのみペナルティ、損失リスクに焦点
最大ドローダウン最大ピークからトラフへの下落最悪ケース損失
Calmar比年率リターン / 最大ドローダウンリターンとドローダウンのバランス
VaR(95%)95%信頼区間での最大損失通常条件下のリスク境界

:

  • 年間リターン20%、最大ドローダウン40%の戦略 -> Calmar = 0.5(平均)
  • 年間リターン15%、最大ドローダウン10%の戦略 -> Calmar = 1.5(優れている)

4.6 指標組み合わせ: シグナルから特徴量へ

なぜ単一指標が機能しないのか

実証研究によると、単一のテクニカル指標は予測力が非常に限られている:

戦略勝率年率リターン(手数料後)
MACDゴールデン/デッドクロス51%-5%から+3%
RSI買われすぎ/売られすぎ52%-3%から+5%
Bollinger Bandブレイクアウト50%-8%から+2%
二重移動平均クロス53%-2%から+8%

: これらの数字は例示/参考値。実際のパフォーマンスは市場、時間枠、パラメータ設定、コスト仮定(手数料、スリッページ、買値売値スプレッド)によって大きく異なる。常に自分のバックテストで検証すること。

理由:

  1. すべての市場参加者が同じシグナルを見る -> シグナルが早期に価格に織り込まれる
  2. 異なる市場状態は異なる解釈が必要 -> 単一ルールは適応できない
  3. 指標情報が不完全 -> 多次元検証が必要

指標の正しい使用法:特徴量として

伝統的使用法(間違い):
RSI < 30 -> 買い

正しい使用法(特徴量エンジニアリング):
特徴ベクトル = [
    RSI,
    RSI変化率,
    MACD_DIFF,
    MACDヒストグラム変化率,
    Bollinger Band位置(バンド内の価格の相対位置),
    ATR(ボラティリティ),
    出来高変化率,
    ...より多くの特徴量
]
-> MLモデルに入力 -> 出力: 買い/売り/保持 + 信頼度

マルチエージェントの視点:

  • Trend Agent: MACD、移動平均、ATRに焦点
  • Mean Reversion Agent: RSI、Bollinger Bands、偏差に焦点
  • Regime Agent: ボラティリティ変化、相関変化に焦点
  • Risk Agent: VaR、最大ドローダウン、Sharpe変化に焦点

コード実装(オプション)

実践したい場合、指標を計算するサンプルコードはこちら:

import pandas as pd
import numpy as np

def calculate_indicators(df):
    """
    一般的なテクニカル指標を計算
    dfには列が必要: open, high, low, close, volume
    """
    # EMA
    df['EMA12'] = df['close'].ewm(span=12).mean()
    df['EMA26'] = df['close'].ewm(span=26).mean()

    # MACD
    df['MACD_DIFF'] = df['EMA12'] - df['EMA26']
    df['MACD_DEA'] = df['MACD_DIFF'].ewm(span=9).mean()
    df['MACD_Histogram'] = 2 * (df['MACD_DIFF'] - df['MACD_DEA'])

    # RSI
    delta = df['close'].diff()
    gain = delta.where(delta > 0, 0).rolling(14).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(14).mean()
    # ゼロ除算を回避: loss=0(連続上昇)の場合、RSI=100
    rs = gain / loss.replace(0, np.nan)
    df['RSI'] = (100 - 100 / (1 + rs)).fillna(100)

    # Bollinger Bands
    df['BB_Middle'] = df['close'].rolling(20).mean()
    df['BB_Std'] = df['close'].rolling(20).std()
    df['BB_Upper'] = df['BB_Middle'] + 2 * df['BB_Std']
    df['BB_Lower'] = df['BB_Middle'] - 2 * df['BB_Std']
    df['BB_Position'] = (df['close'] - df['BB_Lower']) / (df['BB_Upper'] - df['BB_Lower'])

    # ATR
    high_low = df['high'] - df['low']
    high_close = (df['high'] - df['close'].shift()).abs()
    low_close = (df['low'] - df['close'].shift()).abs()
    tr = pd.concat([high_low, high_close, low_close], axis=1).max(axis=1)
    df['ATR'] = tr.rolling(14).mean()

    return df

def calculate_sharpe_ratio(returns, risk_free_rate=0.04, periods_per_year=252):
    """シャープレシオを計算"""
    excess_returns = returns - risk_free_rate / periods_per_year
    return np.sqrt(periods_per_year) * excess_returns.mean() / returns.std()

レッスンの成果物

このレッスンを完了すると、以下を持つことになる:

  1. テクニカル指標の正しい理解 - 指標は「特徴量」であり「シグナル」ではないことを知る
  2. 一般的な指標の計算方法 - MACD、RSI、Bollinger Bands、ATRの本質を理解する
  3. 戦略評価能力 - Sharpe、Sortino、Calmarなどの指標を使用して戦略を評価できる
  4. 多次元思考フレームワーク - 異なる市場状態とAgentにどの指標が適しているかを知る

主要なポイント

  • テクニカル指標の本質を理解する:価格/出来高の数学的変換、新しい情報は作られない
  • トレンド指標(MACD)とオシレーター指標(RSI、Bollinger Bands)の使用法を習得する
  • ダイバージェンス分析の原理と限界を理解する
  • シャープレシオなどの指標を使用して戦略パフォーマンスを評価することを学ぶ
  • 単一指標の限界を認識する。特徴量としての指標組み合わせの価値を理解する

拡張読書


次のレッスンプレビュー

レッスン 05: 古典的戦略パラダイム

トレンドフォロー、平均回帰、グリッド取引、ペア取引... これらの古典的戦略の特徴は何か?どの市場に適しているか?落とし穴は何か?次のレッスンで一つずつ分解する。

この章を引用する
Zhang, Wayland (2026). 第 04 課:テクニカル指標の真の役割. In AIクオンツ取引:ゼロからイチへ. https://waylandz.com/quant-book-ja/Lesson-04-The-Real-Role-of-Technical-Indicators
@incollection{zhang2026quant_Lesson_04_The_Real_Role_of_Technical_Indicators,
  author = {Zhang, Wayland},
  title = {第 04 課:テクニカル指標の真の役割},
  booktitle = {AIクオンツ取引:ゼロからイチへ},
  year = {2026},
  url = {https://waylandz.com/quant-book-ja/Lesson-04-The-Real-Role-of-Technical-Indicators}
}