2024-08-10

【備忘録】モメンタムとボリンジャーバンド

今週の日経平均株価は、週初めの 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)
)

 

今後も、役に立ちそうな分析方法を、備忘録として紹介していく予定です。

参考サイト

  1. 初心者でもわかる!Pythonでのモメンタム指標の活用方法 - メカタナブログ [2023-04-29]
  2. 【ボリンジャーバンド】Pythonでの実装方法とコードを紹介 - メカタナブログ [2023-03-06]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: