テクニカル指標の一覧
ここではドル円の動きを見ることで、オシレーター指標について解説します。OANDAの解説記事を参考にしてPythonで実装することで、挙動を確認しています。
https://www.oanda.jp/lab-education/technical_analysis/
サイコロジカルライン
サイコロジカルライン=100 * 終値上昇日数 / n期間
一定期間において、終値が上昇した「日数」がどれくらいあるかを見る指標です。デフォルトでは12を用いるようです。つまり、上昇日が9日ならば75%になります。
def psychological_line(data, period=12):
delta = data.close.diff()
rule = delta.apply(lambda d: 1 if d > 0 else 0)
return rule.rolling(window=period).mean() * 100
Relative Strength Index, RSI
RSIの記事はこちら
モメンタム
現在の終値とn日前の終値を比較して、その差がどれくらいあるかを表すオシレータです。
モメンタム = 現在の終値 - n日前の終値
Rate of Change, ROC:
モメンタムがn期間前との差を表すのに対して、ROCは比率を表します。
ROC = 100 * 現在の終値 / n日前の終値
一目均衡表の遅行スパンは、モメンタムと似た考え方で、26日前に遡って表示するものになっています。
Commodity Channel Index, CCI
一定期間の平均価格の移動平均から、現在値がどれくらい乖離しているか。
平均価格からの乖離を表す。相場の過熱感(買われ過ぎ/売られ過ぎ)から逆張りに用いるというよりは、相場の方向性を判断してトレンドフォローに用いることを得意とします。
-100, 100%にレベルラインが引かれる
$$ CCI = \frac{1}{0.015}\frac{p_t-SMA(p_t)}{MD(p_t)}, $$
ここで、
$$p_t=\frac{p_{high}+p_{low}+p_{close}}{3}$$
となります。Typical priceと言われています。SMAは単純移動平均で、MDはmean absolute deviationです。絶対値偏差の総和平均です。
def calculate_cci(data, period, const=0.015):
"""Commodity Channel Index"""
pt = (data.close + data.low + data.high) / 3
sma_pt = pt.rolling(window=period).mean()
md_pt = (pt - pt.mean()).abs().sum() / len(pt)
cci = (pt - sma_pt) / (const * md_pt)
return cci
Williams’ %R
一定期間の最高値と最安値の範囲を基準に、直近の終値が相対的にどの水準にあるかを表します。
ウィリアムズ%Rは-100(下限)~0%(上限)の範囲で表されます(チャートソフトによっては数値の範囲が異なる場合があります。MT4/MT5では-100~0%です)。
%R=(当日終値-過去n日間の最高値)÷(過去n日間の最高値-過去n日間の最安値)×100
ウィリアムズ%Rでは、-80%以下が売られ過ぎ、-20%以上が買われ過ぎと判断します(より厳密に、-90%と-10%を基準にする考え方もあります)
def williams_r(data, r=3):
# 最高値と最低値の範囲でk期間
lowest_low = data.low.rolling(window=r).min()
highest_high = data.high.rolling(window=r).max()
# ウィリアムズ %R 計算
percent_r = 100 * (data.close - highest_high) / (highest_high - lowest_low)
return percent_r
以下に示すストキャスティクスとほぼ同じです。どちらからを使えば良いでしょう。
ストキャスティクス
ストキャスティクスの基本となる%Kは、
%K="一定期間の最安値から最高値の値幅に対して、現在値がその安値から何パーセントに位置しているか"
を意味します。式で書くと以下のようになります。
%K=(当日終値-過去n日間の最安値)÷(過去n日間の最高値-過去n日間の最安値)×100
また、ストキャスティクスでは、%Kに対してさらに移動平均をとってきます。
- %Kを移動平均したものが%D、
- %Dを移動平均したものがスロー%D
ストキャスティクスを見る場合、20%以下は売られ過ぎ、80%以上は買われ過ぎと判断します。そして動きが速い方(ファスト:%K、スロー:%D)に着目し、ゾーンを抜け出すとき(ゾーン・エグジット)を逆張りが有効なタイミングと考えます。
def calucate_stochastics(data, k=3, d=3):
# 最高値と最低値の範囲でk期間
lowest_low = data.low.rolling(window=k).min()
highest_high = data.high.rolling(window=k).max()
# ストキャスティクス %K 計算
percent_k = 100 * (data.close - lowest_low) / (highest_high - lowest_low)
# ストキャスティクス %D 計算(%K の d期間のSMA)
percent_d = percent_k.rolling(window=d).mean()
slow_percent_d = percent_d.rolling(window=d).mean()
return {"k": percent_k, "d": percent_d, "slow_d": slow_percent_d}
ダイバージェンス
ダイバージェンス(乖離)とは、「価格のトレンドライン」と「テクニカル指標のライン」が逆の動きをしている状況を表します。 すなわち、価格のトレンドラインとモメンタム指標またはオシレーター(RSI、MACDなど)との間に生じる不一致を指します。
ダイバージェンスの種類には3つあります。
- ブリッシュ(Bullish)ダイバージェンス
- ベアリッシュ(Bearish)ダイバージェンス
- ヒドゥン(Hidden)ダイバージェンス
ブリッシュ・ダイバージェンス
価格が新たな低値をつけている間に、モメンタム指標がそれに対応して新たな低値をつけない状況を指します。これは、下降トレンドの弱体化と、可能性としては反転(上昇)を示していると解釈されます。
以下の図ではドル円が価格が下落しているにもかかわらず、RSIのラインが上昇をし始めています。このような状況はブリッシュ・ダイバージェンスと呼ばれ、上昇のサインとなります。

引用元: How to Spot Bullish and Bearish Divergence Patterns
ベアリッシュ・ダイバージェンス
格が新たな高値をつけている間に、モメンタム指標がそれに対応して新たな高値をつけない状況を指します。これは、上昇トレンドの弱体化と、可能性としては反転(下降)を示していると解釈されます。
ブリッシュとは逆の状況です。
ヒドゥン・ダイバージェンス:
既存のトレンドの継続を示すシグナルとして解釈されます。これは、相場が一時的な反動を示しているが、主要なトレンドが続く可能性が高いことを示唆します。ヒドゥン・ダイバージェンスは、主にトレンドフォローの戦略で利用されます。ヒドゥン・ダイバージェンスには、強気と弱気の2種類があります強気と弱気の2種類があります。
- ヒドゥン強気ダイバージェンス(Hidden Bullish Divergence):これは、価格が高値を更新する(上昇トレンド中)一方で、モメンタム指標が前回の高値よりも低い値を示す状況を指します。これは、一時的な価格の下落(反落)があったにもかかわらず、上昇トレンドが続く可能性が高いことを示しています。
- ヒドゥン弱気ダイバージェンス(Hidden Bearish Divergence):これは、価格が低値を更新する(下降トレンド中)一方で、モメンタム指標が前回の低値よりも高い値を示す状況を指します。これは、一時的な価格の上昇(反発)があったにもかかわらず、下降トレンドが続く可能性が高いことを示しています。
参考記事:
https://www.ig.com/jp/trading-strategies/how-to-trade-bullish-and-bearish-divergences-210407
Average Directional Movement Index, ADX
ADXの記事はこちら
TA-Lib
テクニカル指標を計算するためのライブラリです。非常に多くの種類があるので、ローソク足のパターン認識手法についても載せていきます。
https://github.com/TA-Lib/ta-lib-python
TA-Lib is widely used by trading software developers requiring to perform technical analysis of financial market data.
- Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands, etc.
- Candlestick pattern recognition
- Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET
Pattern Recognition
ローソク足の形からエントリーを行う時に利用できる関数一覧です。
CDL2CROWS Two Crows
CDL3BLACKCROWS Three Black Crows
CDL3INSIDE Three Inside Up/Down
CDL3LINESTRIKE Three-Line Strike
CDL3OUTSIDE Three Outside Up/Down
CDL3STARSINSOUTH Three Stars In The South
CDL3WHITESOLDIERS Three Advancing White Soldiers
CDLABANDONEDBABY Abandoned Baby
CDLADVANCEBLOCK Advance Block
CDLBELTHOLD Belt-hold
CDLBREAKAWAY Breakaway
CDLCLOSINGMARUBOZU Closing Marubozu
CDLCONCEALBABYSWALL Concealing Baby Swallow
CDLCOUNTERATTACK Counterattack
CDLDARKCLOUDCOVER Dark Cloud Cover
CDLDOJI Doji
CDLDOJISTAR Doji Star
CDLDRAGONFLYDOJI Dragonfly Doji
CDLENGULFING Engulfing Pattern
CDLEVENINGDOJISTAR Evening Doji Star
CDLEVENINGSTAR Evening Star
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
CDLGRAVESTONEDOJI Gravestone Doji
CDLHAMMER Hammer
CDLHANGINGMAN Hanging Man
CDLHARAMI Harami Pattern
CDLHARAMICROSS Harami Cross Pattern
CDLHIGHWAVE High-Wave Candle
CDLHIKKAKE Hikkake Pattern
CDLHIKKAKEMOD Modified Hikkake Pattern
CDLHOMINGPIGEON Homing Pigeon
CDLIDENTICAL3CROWS Identical Three Crows
CDLINNECK In-Neck Pattern
CDLINVERTEDHAMMER Inverted Hammer
CDLKICKING Kicking
CDLKICKINGBYLENGTH Kicking - bull/bear determined by the longer marubozu
CDLLADDERBOTTOM Ladder Bottom
CDLLONGLEGGEDDOJI Long Legged Doji
CDLLONGLINE Long Line Candle
CDLMARUBOZU Marubozu
CDLMATCHINGLOW Matching Low
CDLMATHOLD Mat Hold
CDLMORNINGDOJISTAR Morning Doji Star
CDLMORNINGSTAR Morning Star
CDLONNECK On-Neck Pattern
CDLPIERCING Piercing Pattern
CDLRICKSHAWMAN Rickshaw Man
CDLRISEFALL3METHODS Rising/Falling Three Methods
CDLSEPARATINGLINES Separating Lines
CDLSHOOTINGSTAR Shooting Star
CDLSHORTLINE Short Line Candle
CDLSPINNINGTOP Spinning Top
CDLSTALLEDPATTERN Stalled Pattern
CDLSTICKSANDWICH Stick Sandwich
CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow)
CDLTASUKIGAP Tasuki Gap
CDLTHRUSTING Thrusting Pattern
CDLTRISTAR Tristar Pattern
CDLUNIQUE3RIVER Unique 3 River
CDLUPSIDEGAP2CROWS Upside Gap Two Crows
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods
Two Crows(二羽烏(にわがらす))
通常、強い上昇トレンドの後に発生し、逆転を示すベアリッシュ(下降)パターンです。

Black Three Crows (三羽烏(さんばがらす))
陰線が3本続いた状態です。











