Pythonコード集

【Python】Plotlyでチャートに移動平均線を描画してみよう 前編

目安:この記事は3分で読めます

『Pythonとチャート』シリーズの第1弾は、前編で可視化ライブラリの”Plotly” を使ってナスダック100のローソク足チャートを作成しました。

そして後編では、Pythonコードの解説をしました。

 

関連記事:前編
Pythonなら"爆速" でチャートやグラフをつくれる:ローソク足編

続きを見る

関連記事:後編
Pythonなら"爆速" でチャートやグラフをつくれる:解説編

続きを見る

 

今回は『Pythonとチャート』シリーズの第2弾となります。

前編では、Plotlyでテクカルチャートを作ってみようと思います。

今回チャートに描画(びょうが)するテクニカルは、多くの投資家が使う”移動平均線”です。

そして採用する銘柄は、ジェイが実際に投資をしている米大手銀行の”ウェルズ・ファーゴ(WFC)”を取り上げることにしました。

 

そして後編では、今回紹介するPythonコードの詳しい解説をします。

 

今回のテーマ

"Plotly" でテクニカルチャートを作ってみよう!


▼ Pythonを効率的に学ぶなら ▼

Pythonを学ぼう

 

この記事の対象となる人

こんな人におすすめ

  • Pythonに興味がある人
  • Pythonを学びたいと思っている人
  • Pythonを使って株価の分析をしたい人

 

結論からいいます

結論

  • 可視化ライブラリのPlotlyを使えば "テクニカルチャート"だって爆速でつくれる

 

今回作るチャートについて

まずは、今回作るチャートをお見せします。

採用する銘柄はなんでも良かったのですが、せっかくですのでジェイが投資をしている”ウェルズ・ファーゴ(WFC)”のテクカルチャートを作ってみたいと思います。

チャートサマリー

・銘柄:ウェルズ・ファーゴ(WFC)
・期間:2019年以降
・テクニカル:移動平均線

ウェルズ・ファーゴのテクニカルチャート

日足(2019年以降)

 

Pythonコードの紹介

さて、ここからPythonコードの紹介となります。まずは全体像を確認してみましょう。

コードの全体像

import pandas as pd
import yfinance as yf
import plotly.graph_objs as go
import datetime


df = yf.download('wfc',
                 start='2019-01-01',
                 end=datetime.date.today() ,
                 auto_adjust='1d')


df['ma50'] = df['Close'].rolling(50).mean().shift()
df['ma200'] = df['Close'].ewm(200).mean().shift()



fig = go.Figure()

fig.add_trace(go.Scatter(x=df.index, 
                         y=df.sma50, 
                         name='SMA50'))
fig.add_trace(go.Scatter(x=df.index, 
                         y=df.sma200, 
                         name='EMA200'))

fig.add_trace(go.Candlestick(x=df.index,
                             open=df.Open,
                             high=df.High, 
                             low=df.Low,
                             close=df.Close,
                             name='WFC'))

fig.update(layout_xaxis_rangeslider_visible = False)

 

次に4つのカテゴリーに簡単に分けて、コードの概要をみてみましょう。

コード1:まずはライブラリのインポートから

import pandas as pd
import yfinance as yf
import plotly.graph_objs as go
import datetime

 

コード2:次に価格データを取得する

df = yf.download('wfc',
                 start='2019-01-01',
                 end=datetime.date.today() ,
                 auto_adjust='1d')

 

価格データが取得できているかどうかを確認してみましょう。

df.head(), df.tail()

最初から5つの価格データ

最後から5つの価格データ

 

コード3:次に移動平均線のコードを書く

今回は、多くの市場参加者がよく使う50日移動平均線と200日移動平均線を設定します。

なお、50日移動平均線は『単純移動平均線』となります。
200日移動平均線は『指数平滑移動平均線』となります。

移動平均線の詳細については、次回の記事をご覧ください。

df['ma50'] = df['Close'].rolling(50).mean().shift()
df['ma200'] = df['Close'].ewm(200).mean().shift()

 

コード4:最後に移動平均線をチャートに描画する

fig = go.Figure()

fig.add_trace(go.Scatter(x=df.index, 
                         y=df.ma50, 
                         name='SMA50'))
fig.add_trace(go.Scatter(x=df.index, 
                         y=df.ma200, 
                         name='EMA200'))

fig.add_trace(go.Candlestick(x=df.index,
                             open=df.Open,
                             high=df.High, 
                             low=df.Low,
                             close=df.Close,
                             name='WFC'))


fig.update(layout_xaxis_rangeslider_visible = True)

コードのカテゴリーを大枠に分けるだけで、どのコードがどんな意味を持つのか?ということがなんとなくイメージできると思います。

コードの詳しい解説については、次回の記事にて!

 

Plotlyなら”爆速”でテクニカルチャートもつくれる

前回のシリーズでは、爆速でローソク足のチャートを描画(びょうが)しました。

そして今回は、可視化ライブラリ『Plotly』を使えば、”テクニカルチャート”すら爆速で作れることを解説しました。

今回は、テクニカル分析でもっともポピュラーな移動平均線をチャートに描画しましたが、オシレーター系のRSIMACDだって、爆速で描画することができます。

これらのことについても『Pythonとチャート』シリーズで順次ご紹介していきます!

 

Pythonを学びたい方へ

今やPythonは、チャートの分析に限らず、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼

Pythonを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!

 

まとめ

・"Plotly" はデータを簡単に可視化してくれる便利なライブラリ
・"Plotly"を使えばテクニカルチャートだって”爆速”でつくれる


注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

-Pythonコード集