【Python】移動平均線を用いた株価のテクニカル分析実践

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • 株式投資に興味がある。
  • Pythonを用いて移動平均線を算出し、株価のテクニカル分析を実践したい。
目次

【株式投資】移動平均線とは

移動平均線とは、ある一定期間の価格から平均値を算出し、その平均値を繋いだ曲線として表現したものを指します。現在と過去数日(または数週間・数ヶ月)分の価格を定期的に計算することで、平均値が表面上移動しているように見えることから、移動平均と呼ばれています。

移動平均線は、トレンドを察知する代表的なテクニカルインジケーターです。現在株価が「上昇・下降どちらのトレンドに位置のか?」を洞察できます。

移動平均線には以下2種類あります。

  • 単純移動平均(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_dateto_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】米国株銘柄の株価・財務データの取得方法

全ての関連記事を見る

【有料版】株式投資のシステムトレード

株式投資のシステムトレード実現に際して、中・上級者向け応用情報も配信しております。

【参考】仮想通貨・ビットコイン|金融投資情報

当サイトでは仮想通貨・ビットコインにおける多様な分析および自動売買手法を配信しています。ビットコイン投資にも興味がある方は是非こちらもご覧下さい。

仮想通貨・ビットコイン|情報一覧

自動売買ツールとは|超具体的実装方法

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次