こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- 株式投資に興味がある。
- Pythonを用いて移動平均線を算出し、株価のテクニカル分析を実践したい。
【株式投資】移動平均線とは
- 単純移動平均(SMA)
- 指数移動平均(EMA)
単純移動平均(SMA)
単純移動平均線は、単に移動平均線とも呼ばれ、当日から遡ったある一定期間の価格平均値を1日(または分・時間・週間)ずつずらし、グラフ化した曲線です。
指数平滑移動平均(EMA)
指数平滑移動平均線は、個々の価格データに対する加重を「指数関数的」に減少させて、平均値を計算した曲線です。
【参考】厳選した株式投資におすすめの証券口座一覧
株式投資を始めたい方向けに使い勝手の良いおすすめ証券口座を紹介します。
証券口座 | 概要 | 使い勝手 | 手数料 | 投信 | NISA | 米株 | IPO | 信用取引 |
---|---|---|---|---|---|---|---|---|
マネックス証券 | 取引に役立つ豊富な情報や操作性に優れたツールを提供。 株初心者にはおすすめ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ |
GMOクリック証券 | 「NTTコム オンラインNPSRベンチマーク調査 2020」において 家族・友人におすすめしたいネット証券No.1に選出 | ⭕️ | ⭕️ | △ | ⭕️ | ⭕️ | △ | ⭕️ |
au株コム証券 | KDDI x MUFG MUFGグループという信頼感ある証券会社 | ⭕️ | ⭕️ | ⭕️ | ⭕️ | ⭕️ | △ | ⭕️ |
【事前準備】Python環境の構築
Pythonテクニカル分析に際して、Pythonライブラリをインストールが必要です。
Ta-Lib
Ta-Libはテクニカル分析に役立つライブラリです。以下の手順に従いインストールしましょう。
共通
最も簡単な方法はAnaconda
をインストールしてTa-Libを使用する方法です。
① Anacondaをインストール
② Anacondaプロンプトを開き、以下を実行
conda install -c conda-forge ta-lib
Mac OSの方はこちら
①Ta-Lib本体をインストール
brew install ta-lib
②Ta-Lib Pythonパッケージをインストール
pip install TA-Lib
pandas_datareader
株価データ取得に際してpandas_datareader
というライブラリを用います。
pip install pandas_datareader
Pythonによる移動平均線算出・株価チャート分析
Pythonで移動平均線を算出し、株価チャートを分析する方法について解説します。
株価データ取得
はじめに、株価データを取得します。
コード
meigara_cd
に好みの銘柄コードを指定します。続いて、from_date
とto_date
にデータ取得期間を設定し、以下コードを実行しましょう。
import datetime
import pandas_datareader.data as web
# ========================================================================
# 株価設定情報(こちらを自由に修正)
# ========================================================================
meigara_cd = "7203" # 銘柄コード
from_date = "2022-01-01" # 株価取得期間(開始日)
to_date = "2023-08-15" # 株価取得期間(終了日)
# ========================================================================
# 株価データを取得
# ========================================================================
data = web.DataReader(name = meigara_cd + ".jp", # 銘柄コード
data_source = 'stooq', # 株価データソース
start = from_date, # 株価取得期間(開始日)
end = to_date, # 株価取得期間(終了日)
)
出力イメージ
上記コードを実行すると、次のような出力結果が得られます。
# 出力
print(data.head())
# 出力イメージ
# Open High Low Close Volume
# Date
# 2023-08-15 2433.0 2438.0 2414.5 2419.0 12578800
# 2023-08-14 2439.5 2459.5 2403.0 2408.0 17152200
# 2023-08-10 2406.5 2432.5 2395.0 2429.0 19458600
# 2023-08-09 2423.0 2427.0 2384.0 2395.5 19106300
# 2023-08-08 2463.5 2476.0 2420.5 2423.5 22190700
移動平均線の算出
続いて、上記で取得した株価データを用いて移動平均線を算出します。
単純移動平均線
と指数平滑移動平均線
の例を示します。どちらかのコードを実行しましょう。
単純移動平均線
10日
と25日
の単純移動平均線(SMA)
を算出した例を示します。
import talib
# ========================================================================
# 設定情報
# ========================================================================
# 10日と25日移動平均線を算出
period_list = [10, 25]
# ========================================================================
# 移動平均線算出(単純移動平均線)
# ========================================================================
# 単純移動平均線
ma_near = talib.SMA(data['Close'], # データ取得元
period_list[0]) # 移動平均線の期間
ma_far = talib.SMA(data['Close'], # データ取得元
period_list[1]) # 移動平均線の期間
指数平滑移動平均線
10日
と25日
の指数平滑移動平均線(EMA)
を算出した例を示します。
import talib
# ========================================================================
# 設定情報
# ========================================================================
# 10日と25日移動平均線を算出
period_list = [10, 25]
# ========================================================================
# 移動平均線算出(指数平滑移動平均線)
# ========================================================================
# 単純移動平均線
ma_near = talib.EMA(data['Close'], # データ取得元
period_list[0]) # 移動平均線の期間
ma_far = talib.EMA(data['Close'], # データ取得元
period_list[1]) # 移動平均線の期間
株価チャート可視化
最後に上図のような移動平均線を用いたグラフを描画します。以下コードを実行しましょう。
import plotly.graph_objs as go
# グラフインスタンス
fig = go.Figure()
# ========================================================================
# グラフ(ローソク足)
# ========================================================================
fig.add_trace(go.Candlestick(
x = data.index, # 日付
open = data['Open'], # 始値
high = data['High'], # 高値
low = data['Low'], # 安値
close = data['Close'], # 終値
name = meigara_cd), # グラフラベル
)
# ========================================================================
# グラフ(移動平均線)
# ========================================================================
fig.add_trace(go.Scatter(x = ma_near.index, # 日付
y = ma_near, # 移動平均
name = f"{period_list[0]}-days MA", # グラフラベル
mode = "lines", # 折線グラフ
))
# 25日移動平均線
fig.add_trace(go.Scatter(x = ma_far.index, # X軸
y = ma_far, # Y軸
name = f"{period_list[1]}-days MA", # グラフラベル
mode = "lines", # 折線グラフ
))
# ========================================================================
# 書式設定
# ========================================================================
# グラフタイトル
fig.update_layout(title= f'Stock: {meigara_cd}')
#Show
fig.show()
【参考】株式投資の自動化|Pythonによるシステムトレード
本記事ではPythonを用いた株式投資のシステムトレーディング手法を多数配信しています。
株式の関連記事一覧
株式投資の「自動売買」「システムトレード」に興味がある方向けの記事を多数配信しています。
人気記事一覧
# | 記事タイトル |
---|---|
1 | 【Python】日本株銘柄の株価・財務データの取得方法 |
2 | 【Python】日本株銘柄のファンダメンタルズ分析 |
3 | 【Python】日本株価データを用いたテクニカル分析 |
4 | 【Python】米国株銘柄の株価・財務データの取得方法 |
全ての関連記事を見る
【有料版】株式投資のシステムトレード
株式投資のシステムトレード実現に際して、中・上級者向け応用情報も配信しております。
【参考】仮想通貨・ビットコイン|金融投資情報
当サイトでは仮想通貨・ビットコインにおける多様な分析および自動売買手法を配信しています。ビットコイン投資にも興味がある方は是非こちらもご覧下さい。
仮想通貨・ビットコイン|情報一覧
自動売買ツールとは|超具体的実装方法
【仮想通貨】自動売買ツールの自作方法とおすすめ暗号資産取引所|無料で実践できるビットコイン自動取引の仕組みも徹底解説
「仮想通貨(暗号資産)の自動売買ツール作成に興味がある」「自動売買の仕組み・作り方を知りたい」「どこの仮想通貨取引所がおすすめなのか知りたい」本記事ではこのような要望にお応えします。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら