Python 投資

Pythonでストキャスティクスを使ったテクニカル分析

2023年3月21日

Pythonでストキャスティクス

こんな悩みはありませんか?

『ストキャスティクスってよく聞くけどどんな指標かわからない。』
または『Pythonでストキャスティクスってどうプログラムするの?』

そこで、ストキャスティクスについて詳しい解説と
Pythonを使ったストキャスティクスを計算するコードを紹介していきます。

ストキャスティクスとは?

ストキャスティクスとは?

簡単に説明すると、
ストキャスティクスは株式市場やFX市場などの金融市場で広く使われているテクニカル指標の
ひとつで、ジョーン・レーンという方が開発しました。
相場の過剰買い・過剰売り状態を把握するための指標で、
トレンド転換の兆しを察知するために使われます。

『%k』、『%D』、『Slow%D』の3つの指標を組み合わせて売買タイミングを判断します。

ただし、ストキャスティクスは単体で使用すると偽のシグナルを出すことがあるので、他の指標と併用することが重要です。

次からは実際にどのように使っていくか解説します。

ストキャスティクスの使い方

ストキャスティクスの使い方

ストキャスティクスはエントリーポイントを探すために使用されます。
ストキャスティクスが高い値を示しているときは市場は買われすぎの状態なので、
反転の可能性が高くなります。
逆に低い値を示しているとき、市場は売られすぎの状態で反転の可能性が高くなります。

ストキャスティクスは価格の反転の可能性を示すために使用される指標で、
トレンド転換のタイミングを捉えるための重要なツールです。

次からはもう少し詳しく以下の内容で解説します。

ストキャスティクスの使い方

  • ストキャスティクスの種類
  • エントリーポイントの探し方
  • 買いシグナルの判断方法
  • 売りシグナルの判断方法
  • 注意点

ストキャスティクスの種類

ストキャスティクスは以下の2種類あります。

  • ファスト・ストキャスティクス
  • スロー・ストキャスティクス

ファスト・ストキャスティクス

ファスト・ストキャスティクスは、『%k』、『%D』の2つのラインから構成され、
その名の通り、チャートの変化に敏感に反応します。

なので短期間のトレードに向いており、日中取引などでよく利用されます。

ロー・ストキャスティクス

対してスロー・ストキャスティクスは『%D』と『Slow%D』を使用します。

スロー・ストキャスティクスは、ファスト・ストキャスティクスに比べてより滑らかなラインで表示されるので、よりトレンドを明確に示すことができます。

また、ファーストストキャスティクスと比較して、より遅延が発生するので、
より長期的なトレンドを捉えることができる特徴があります。

エントリーポイントの探し方

ストキャスティクス(『%k』、『%D』、『Slow%D』)が80%以上、
または20%以下になったときに、
相場が反転する可能性がある個所がエントリーポイントと考えられます。

ただし、この方法だけでトレードするのは危険です。エントリーポイントを探すためには、他のテクニカル指標や基本的な分析も併せて行うことが大切です。

買いシグナルの判断方法

ストキャスティクス(『%k』、『%D』、『Slow%D』)が20を下回った後に再び上昇し始め、
%K線が%D線を上抜けした場合、買いシグナルと判断することができます。

このシグナルは、市場が下落トレンドから回復し、買いが優勢となっていることを示しています。また、ストキャスティクスの数値が50以上にある場合、より強い買いシグナルとなります。

売りシグナルの判断方法

ストキャスティクス(『%k』、『%D』、『Slow%D』)が80を超えた後に再び下落し始め、
%K線が%D線を下抜けした場合、売りシグナルと判断することができます。

このシグナルは、市場が上昇トレンドから転換し、売りが優勢を示しています。
また、ストキャスティクスの数値が50以下にある場合、より強い売りシグナルとなります。

これらの買いシグナルと売りシグナルを組み合わせ、ストキャスティクスの数値やトレンドと合わせて分析することで、より正確なトレードの判断が可能になります。

ただし、ストキャスティクスは過去の価格変動に基づいて計算されるため、
リアルタイムでの市場の急激な変動に対応することができない場合があります。

なので、トレードにおいては他の指標と併用することや、リスクマネジメントを行うことが重要です。

注意点

ストキャスティクスは市場の動きに追従する指標で、過去のデータに基づいて分析します。
なので、市場が急激に変動した場合はストキャスティクスが
正確なシグナルを出せない場合があります。

また、ストキャスティクスを使用する場合はリスク管理を徹底し、
損失を最小限に抑えることが重要です。

ストキャスティクスの算出式

ストキャスティクスを計算

ストキャスティクスは価格が一定期間内にどれだけ動いたかを示す指標で、
主にエントリーポイントの探索に利用されます。

この指標を用いてトレードをするためには、まずストキャスティクスの計算方法を理解することが必要です。

ストキャスティクスは、以下の式で計算されます。

\begin{align} %K = \frac{現在の終値 - 過去n期間中の最安値}{過去n期間中の最高値 - 過去n期間中の最安値}\times100 \end{align}

※nは一般的に9日間に設定することが多いです。

\begin{align} %D = 過去m期間中の%Kの単純移動平均 \end{align}

※mは一般的に3日間に設定することが多いです。

\begin{align} Slow%D = %Dの3日間の単純移動平均 \end{align}

単純移動平均は過去の記事を参考にして下さい。

あわせて読みたい
移動平均
テクニカル分析に役立つ!Pythonで移動平均計算と実装方法

時系列データの分析には移動平均が不可欠です。 また、移動平均には複数の種類があり、それぞれに特徴があるのでどれを使うかはデータの性質によって異なります。 Pythonを使えば簡単に移動平均を計算し、デ ...

続きを見る

Pythonでストキャスティクスの実装方法

ストキャスティクス計算プログラム

まずは下記にコード全体を紹介します。
※サブプロット1にファスト・ストキャスティクス
 サブプロット2にスロー・ストキャスティクスをプロットしています。

import mplfinance as mpf
import datetime
import pandas_datareader.data as pdr
import yfinance as yf
yf.pdr_override()

# 期間
start="2022-10-01"
end = datetime.datetime.today()

# 銘柄(トヨタ自動車)
ticker="7203" + ".T"

# データ取得
df=pdr.get_data_yahoo(ticker,start,end)
df.sort_index(ascending=True,inplace=True)

#ストキャスティクス日足
term=9
df['%K'] = ((df['Close'] - df['Low'].rolling(term).min()) \
            / (df['High'].rolling(term).max() - df['Low'].rolling(term).min())) * 100
df['%D'] = df['%K'].rolling(3).mean()
df['%SD'] = df['%D'].rolling(3).mean()
df['UL'] = 80
df['DL'] = 20

apd_oscilator  = [
mpf.make_addplot((df[['%K']]),  color='r',panel=1,width=1),
mpf.make_addplot((df[['%D']]),  color='b',panel=1,width=1),
mpf.make_addplot((df['UL']), color='black', panel=1,width=0.5),
mpf.make_addplot((df['DL']), color='black', panel=1,width=0.5),
mpf.make_addplot((df[['%D']]),  color='b',panel=2,width=1),
mpf.make_addplot((df[['%SD']]),  color='green',panel=2,width=1),
mpf.make_addplot((df['UL']), color='black', panel=2,width=0.5),
mpf.make_addplot((df['DL']), color='black', panel=2,width=0.5),
]  

# チャート描写
mpf.plot(df, type='candle',style='yahoo',tight_layout=True,title=str(7203),
         addplot=apd_oscilator,figsize=(6,3))
ストキャスティクスプロット

問題なく実行できれば、上のような図が出力されると思います。

ファスト・ストキャスティクスとスロー・ストキャスティクスを比較すると
ファスト・ストキャスティクスは敏感に反応して小刻みな波形を出力し、
スロー・ストキャスティクスは緩やかな波形を確認できると思います。

銘柄や設定期間で波形が異なるので、いろいろ試すと発見があるかもしれませんね!

過去に出来高・移動平均・ボリンジャーバンド・MACDの記事を書いたので、
そちらを参考にすればプログラムは理解できると思います。

あわせて読みたい
パイソン-出来高
Pythonで出来高チェック!買い時・売り時を見極めよう!

以前にPythonを使った株価のローソク足チャートを描く方法を紹介しました。 Pythonを使って株価の出来高を分析し、買い時・売り時を見極める方法について紹介します。 以前にPythonを使った株価 ...

続きを見る

あわせて読みたい
移動平均
テクニカル分析に役立つ!Pythonで移動平均計算と実装方法

時系列データの分析には移動平均が不可欠です。 また、移動平均には複数の種類があり、それぞれに特徴があるのでどれを使うかはデータの性質によって異なります。 Pythonを使えば簡単に移動平均を計算し、デ ...

続きを見る

あわせて読みたい
ボリンジャーバンド
【ボリンジャーバンド】Pythonでの実装方法とコードを紹介

ボリンジャーバンドという名前を聞いたことがありますか? ボリンジャーバンドはトレンドの強さやトレンドやボラティリティを分析するためのテクニカル指標で相場の変動幅に応じて上下に動くバンドで表され、相場の ...

続きを見る

あわせて読みたい
Pythonで学ぶMACDの使い方
Pythonで学ぶMACDの使い方

『MACDって聞いたことはあるが、どう使えばいいかわからない。』こんな悩みはありませんか? MACDとは何か?さらにPythonを使って基本的な使い方を初心者でもわかりやすく解説します。 毎日、日経平 ...

続きを見る

おすすめのテクニカル分析とPython関連の書籍も紹介しておきます。

今回は以上です。

  • この記事を書いた人

メカタナ

副業ブロガー【経歴】関西出身▶︎理系国立大学院▶︎東証プライム上場企業メーカー開発職▶︎妻と息子1人と暮らしています。▶︎メカタナブログを開設⇒仕事や日常で役立つPythonプログラムを紹介していきます!

-Python, 投資