株価の移動平均の意味と抽出方法 python初心者(Ep28)
こんにちわ。スミラです。
前回は、米国国債とS&P500の関連性を調べることができましたね。
いつもスキ❤️を押していただいている皆さん、本当にありがとうございます!励みになります☆
それでは、本日のテーマは、
移動平均の抽出
について実施したいと思います。宜しくお願い致します。
~~~~~~~~~~~【注意文章】~~~~~~~~~~~
株に手を出すことに伴って、損得の感情が発生してしまいますが、あくまでこれは コードの学習 において記載している内容です。一切の不利益が発生したとしても何も保証できません。また、個人の見解であり、投資を行う場合は、ご自身の判断で行うようお願い致します。
ご理解の上、読んで頂けますと幸いです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
移動平均を抽出する理由とは
そもそも移動平均によって表現される線の意味としては、
トレンドの方向感
売買のタイミング
について知ることができます。そして、その移動平均を抽出する日数によって異なる意味合いが出来るようです。
上記の様に、簡単な事例ではありますが、その値から売買の判断を促すことが想定できることが分かりました。
ゴールデンクロス・デッドクロス
移動平均の話を行う上では、買うタイミング・売りタイミングをつかみたい想いがありますね。そこがどこか。ついて有名なのが、この方法です。(マネックス証券様ありがとうございます!)
また、「グランビルの法則」といった部分もありますので、移動平均線を抽出後にこの方法を実際のpythonで実装したいと思います。
移動平均乖離率
株価と移動平均値の大幅な乖離は、利喰い売り・買戻しによって修正される傾向があります。その傾向度合いを知る一つの方法となります。
しかし、注意が必要なのが、変動性が銘柄によって異なる点です。
こちらもいづれは、pythonで実装したいと思います。(大和証券様ありがとうございます!)
移動平均の抽出
それでは、実際にコードを記載してみましょう。なお、今回は、投資の神様じっちゃまが教えてくれている
50日移動平均(SMA50)と200日移動平均(SMA200)
を用いりたいと思います。その理由はこの動画にあります。一緒に勉強しましょう!(じっちゃま感謝です!1:39ぐらいからの部分で述べています)
それでは実際に作成したコードはこちらになります。
# 初期設定
import matplotlib.pyplot as plt
import yfinance as yf
import numpy as np
import datetime as dt
import pandas as pd
#取得した銘柄をリスト化
symbol_list_kai =['^TNX','^GSPC','AAPL']
#取得の開始したい日付を設定 YYYY-MM-DD
get_start = '1985-01-01'
#取得の終了日付を設定 YYYY-MM-DD
#本日までのデータの場合
get_end = dt.datetime.today().strftime('%Y-%m-%d')
#取得のタイミング 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
get_interval = "1d"
#リスト(配列)から文字列に変換
symbol_list_str = ",".join(symbol_list_kai)
#データの取得
df = yf.download(symbol_list_str, start=get_start, end=get_end, interval = get_interval)
#抽出データの選択
select_data = df['Adj Close']
#変化率をデータフレームに追加
SMA_param1 = 50
SMA_param2 = 200
#50日移動平均(SMA50)
for i in range(len(symbol_list_kai)):
df['SMA50',symbol_list_kai[i]] = select_data[symbol_list_kai[i]].rolling(window=SMA_param1).mean()
#200日移動平均(SMA200)
for i in range(len(symbol_list_kai)):
df['SMA200',symbol_list_kai[i]] = select_data[symbol_list_kai[i]].rolling(window=SMA_param2).mean()
display(df)
きれいに算出ができていますね。今回は、銘柄を一つ入れています。アップルの株価を入れてみました。実際にグラフ化して傾向を確認したいと思います。
移動平均の表示
上記の抽出ができた状態で行うコード内容です。
#基準となるオープン価格を表示
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(20, 15))
#シンボルの数を確認
symbol_list_count=len(symbol_list_kai)
#シンボルの数分だけプロットを実施
for i in range(symbol_list_count):
name='ax'+str(i+1)
name= fig.add_subplot(2,2,i+1)
name.plot(df['Adj Close',symbol_list_kai[i]],color='blue')
name.plot(df['SMA50',symbol_list_kai[i]],color='red')
name.plot(df['SMA200',symbol_list_kai[i]],color='green')
plt.show()
しっかりとプロットができていることが わかりますね。
また、ゴールデンクロス・デットクロスのポイントが数点確認ができますね。これについては、次回実施しましょう。
次回は、
特徴点をさらに抽出
を実施してみたいと思います。宜しくお願い致します。
ここから先は
¥ 100
よろしければサポート頂けると幸いです!子供へのパパ時間提供の御礼(お菓子)に活用させて頂きます☆