今週の日経平均株価は、週初めの 8 月 5 日(月)は 4,451 円安と歴史的大暴落。この反動で翌 6 日(火)は 3,217 円高と、これまた歴代最大の上げ幅。その後も振れ幅が大きく不安定な値動きが続きました。
テクニカル分析というと、証券会社が提供するツールに依存していて、個別に分析したいテーマのみ、自分で計算(プログラミング)していました。
しかし、このような大きな変化を経験すると、自分でもひととおり、一般的なテクニカル分析というものをできるようにして、どんな変化が起きたのかを自分なりにレビューして、今後の戦略を立てるための一助にしたいと思うようになりました。
今回は、取引をしながら聞いているラジオ日経の「マーケットプレス」でよく紹介されているモメンタムおよびボリンジャーバンドをローソク足チャートに追加します。
今回のテーマ
- mplfinance で、日経平均株価の日足データのローソク足チャートを作成し、モメンタムおよびボリンジャーバンドを追加します。
算出方法は、参考サイト [1] [2] のほぼ丸写しになってしまっているので、備忘録ということで紹介させていただきます。
下記の OS 環境で動作確認をしています。
![]() |
RHEL 9.4 | x86_64 |
Python | 3.12.1 | |
jupyterlab | 4.2.4 | |
mplfinance | 0.12.10b0 | |
yfinance | 0.2.41 |
以下の作業は JupyterLab 上でおこなっています。
まず、必要なパッケージをインポートします。
import mplfinance as mpf import yfinance as yf |
日経平均株価の yf.Ticker インスタンスを生成します。
symbol = '^N225' ticker = yf.Ticker(symbol) |
過去6ヶ月の日足データを取得します。
df = ticker.history(period = '6mo' ) df |
ローソク足チャートと出来高、モメンタム
# モメンタムの計算 period = 20 df[ 'momentum' ] = df[ 'Close' ] - df[ 'Close' ].shift(period) apd_roscillator = [ mpf.make_addplot( df[ 'momentum' ], ylabel = 'Momentum' , color = 'b' , width = 0.75 , panel = 2 , ) ] mpf.plot( df, type = 'candle' , style = 'yahoo' , mav = ( 5 , 25 , 75 ), volume = True , addplot = apd_roscillator, title = symbol, figsize = ( 12 , 6 ), tight_layout = True , #savefig=dict(fname='n225_momentum.jpeg', dpi=100) ) |
ローソク足チャートとボリンジャーバンド
# ボリンジャーバンド period = 20 r = df[ 'Close' ].rolling(period) df[ 'upper3' ] = r.mean() + 3 * r.std() df[ 'upper2' ] = r.mean() + 2 * r.std() df[ 'upper1' ] = r.mean() + 1 * r.std() df[ 'mean' ] = r.mean() df[ 'lower1' ] = r.mean() - 1 * r.std() df[ 'lower2' ] = r.mean() - 2 * r.std() df[ 'lower3' ] = r.mean() - 3 * r.std() df_upper3_max = df[ 'upper3' ]. max () + 10 df_lower3_min = df[ 'lower3' ]. min () - 10 apd_oscilator = [ mpf.make_addplot(df[[ 'upper3' , 'upper2' , 'upper1' , 'mean' , 'lower1' , 'lower2' , 'lower3' ]], width = 0.75 ) ] mpf.plot( df, type = 'candle' , style = 'yahoo' , volume = True , title = symbol, addplot = apd_oscilator, ylim = (df_lower3_min, df_upper3_max), figsize = ( 12 , 5 ), tight_layout = True , #savefig=dict(fname='n225_bollinger-bands.jpeg', dpi=100) ) |
今後も、役に立ちそうな分析方法を、備忘録として紹介していく予定です。
参考サイト
- 初心者でもわかる!Pythonでのモメンタム指標の活用方法 - メカタナブログ [2023-04-29]
- 【ボリンジャーバンド】Pythonでの実装方法とコードを紹介 - メカタナブログ [2023-03-06]

にほんブログ村
#オープンソース

0 件のコメント:
コメントを投稿