2021年9月17日にエヌシーノ(NCNO)に関する最新記事をアップしました。 続きを見る
【米国グロース株】銘柄を選ぶ時に絶対に守るべき鉄則
目安:この記事は3分で読めます
さて、前回の記事ではジェイが将来有望と考えているグロース株『エヌシーノ(NCNO)』のテクニカル分析チャートをPythonで作ってみました。
未読の方は、以下のリンク先からご覧ください。
-
【Pythonとテクニカルチャート】有望グロース株エヌシーノ(NCNO)の株価を移動平均線と出来高で分析してみよう!
続きを見る
今回は、前回の記事で紹介したPythonコードの解説編となります。
今回のテーマ
Pythonのコード書いて爆速で移動平均線と出来高チャートを作ってみよう!解説編
▼Pythonを学ぶならテックアカデミー▼
▶現役エンジニアのパーソナルメンターからマンツーマンで学べる
▶データサイエンスコース
▲独学が苦手な人におすすめ▲
この記事の対象となる人
こんな人におすすめ
- 米国株の投資に興味がある人
- Pythonを使って分析をしたい人
- Pythonを学びたいと思っている人
この記事でわかること
わかること
- Pythonでテクニカル分析のチャートを作成する方法
- 効率的にPythonを学ぶ方法
Pythonコードの解説
ぐだぐだするのは性に合わないので、早速コードの解説に入ります。
今回は4つのセクションに分けて、わかりやすく解説いたします。
コードの解説その1:ライブラリ
まずは、いつもどおり必要なライブラリのインポートからです。
Pythonによるすべての分析は、ここから始まります。
コードと解説
import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns sns.set() import yfinance import talib as tl
▷import pandas as pd
Python版のエクセルーPandasをインポート。pdで簡略。
▷import matplotlib.pyplot as plt
matplotlibは、データの可視化ライブラリ。pltで簡略。
▷import seaborn as sns
seabornは、matplotlibをカッコよくするためのライブラリ。snsで簡略。
sns.set()について
sns.set()は、チャートの色やスタイルを設定するコードです。
カッコ中に『style='darkgrid'』や『style='whitegrid'』と入れることで、チャートのスタイルを設定できます。
今回のように何も書かない場合は、バックグラウンドが紫っぽいチャートが出来上がります。
▷import yfinance
yfinanceでYahoo!finance USから価格データを取得するライブラリ。
まぁ上から4つは、どれもPythonで株価の分析をする時に必要なライブラリです。
なので、コードを書いていくうちに指が覚えていきます。
新たなライブラリ『talib』が登場!
今回、新しく登場したライブラリがあります。それが一番最後にあるー
重要!
talib
というライブラリです。
talibは、Pythonでテクニカル分析のチャートを作成する際に必ず必要となるライブラリです。
talibのインストール方法
・Homebrew で 『ta-lib』 をインストール
command
brew install ta-lib
・anacondaで『ta-lib』 をインストール
command
conda install ta-lib
・pipまたはpip3で『 TA-Lib』 をインストール
command
pip install TA-Lib
pip3 install TA-Lib
この記事を機会にインストールしておくことをおすすめします!
コードの解説その2:データの取得
ライブラリのインポートが終わったら、次はYahoo!finance USから株価のデータを取得しましょう。
コードと解説
start = '2021-01-01' end='2021-12-31' df = yfinance.download(tickers='ncno', start=start, end=end, interval='1d', auto_adjust=True) df
データの取得日は以下のように設定しました。ここはお好みの期間を設定してください。
▷start = '2021-01-01'
最初のデータ取得日
▷end='2021-12-31'
最後のデータ取得日
▷df = yfinance.download(ーーーーー)
『yfinance.download』が、価格データを取得するコードとなります。
カッコ中の『引数』で細かい設定ができます。
yf.downloadの引数について
・tickers
ここにティッカーコードを入れます。
エヌシーノの場合は『NCNO』です。
・start / end
ここで最初と最後のデータ取得日を設定します。
今回は、あらかじめ上で設定した日付の変数(start / end)を=の後に入れるだけのスタイルにしました。
・interval
ここでデータの時間軸を設定します。
今回は1日分のデータを取得するので『1d』とします。
・auto_adjust=True
ここを『True』に設定すると、調整済みの終値が表示されます。
基本的にここは『True』で設定します。
▷df
ちゃんとデータが取得できていれば、『df』と書くだけで、以下のようにデータフレーム形式の価格データが表示されます。
コードの解説その3:移動平均線の設定
テクニカル分析のチャートを作成する前に、2つの準備が必要です。
これらをしておかないと、移動平均線をチャート上に描画することができませんので、必ず前もってコードを書いておきましょう。
コードと解説
date = df.index price = df['Close'] #移動平均線の設定 span01=20 span02=50 span03=75 df['sma_20days']=price.rolling(window=span01).mean() df['sma_50days']=price.rolling(window=span02).mean() df['sma_75days']=price.rolling(window=span03).mean()
▷date = df.index
日付をインデックスとして設定します。
これをすることで、X軸に日付のデータを描画することができます。
▷price = df['Close']
今回使う値は『終値』のみです。
変数名['表示したいカラム名']とすることで、任意のデータのみをピックアップすることができます。
▷span01=20 / span02=50 / span03=75
ここで移動平均線の期間を設定します。
『=』の後の数字が期間となります。
今回は、20日、50日そして75日の期間を設定しました。
移動平均線の設定
▷df['sma_〇〇days']=price.rolling(window=span〇〇).mean()
このコードが、今回の記事で一番大事なところです!
重要!
移動平均線の変数名.rolling(window=設定した期間の変数名).mean()
と書くことで、期間の変数名に合わせて移動平均線が設定されます。
ポイントは、単純移動平均線を設定する『rolling』と『mean』です。
この2つを組み合わせることで、期間別の移動平均線を設定できます。
設定した移動平均線のコード情報を、期間ごとに作成した変数に入れます。
今回は3つの移動平均線を作成しますので、3つの期間別の変数を用意しました。
コードの解説 最後:チャートの描画
最後は、いよいよテクニカル分析チャートを描画します。
コードと解説
plt.rcParams['figure.figsize']=15,10 plt.subplot(2,1,1) plt.plot(date,price,label='NCNO',color='black') plt.plot(date,df['sma_20days'],label='20SMA',color='blue') plt.plot(date,df['sma_50days'],label='50SMA',color='green') plt.plot(date,df['sma_75days'],label='75SMA',color='red') plt.legend() plt.subplot(2,1,2) plt.bar(date,df['Volume'],color='skyblue', edgecolor = 'black', label='Volume') plt.legend()
▷plt.rcParams['figure.figsize']=15,10
rcParams['figure.figsize']は、チャートのサイズを設定するコードです。
今回は横15、縦10で設定しました。
▷plt.subplot(2,1,1)
subplotはー
・いくつチャートを表示するのか?
・どこにチャートを表示するのか?
を設定するコードです。
カッコの『2,1,1』とは、『2つの行、1つの列、1番目のインデックス』という意味です。
つまり、横に2列 / 縦に1列の形式でチャートを表示します。
1番目のインデックスは、『価格チャートは1番目に表示します』という意味です。
▷plt.plot(date,price,label='NCNO',color='black')
エヌシーノ(NCNO)の価格チャートを表示するコードです。
カッコの中の『date』は、前準備の段階で設定したインデックスです。
表示したいデータは、これまた前準備で設定しておいた『price』です。
『label』を設定すれば、チャート上に設定した文字が表示されます。
『color』で、ラインチャートの色を黒(black)に設定しました。
▷plt.plot(date,df['sma_20days'],label='20SMA',color='blue')
▷plt.plot(date,df['sma_50days'],label='50SMA',color='green')
▷plt.plot(date,df['sma_75days'],label='75SMA',color='red')
3つの移動平均線をチャート上に描画するコードです。
ここでもlabelやcolorの引数を設定しています。
▷plt.legend()
『legend()』は、labelで設定した文字をチャート上に描画するコードです。
▷plt.subplot(2,1,2)
カッコの『2,1,2』とは、『2つの行、1つの列、2番目のインデックス』という意味です。
つまり、横に2列 / 縦に1列の形式でチャートを表示します。
2番目のインデックスは、『出来高(ボリューム)チャートは2番目に表示します』という意味です。
▷plt.bar(date,df['Volume'],color='skyblue', edgecolor = 'black', label='Volume')
ここも今回の記事のキーポイントです。
yf.downloadの引数について
・bar()
棒グラフを描画するコードです。
・df['Volume']
Volumeのみを書くことで、Volumeのみのデータをチャートに描画することになります。
終値のみをピックアップする時もそうでしたがー
変数名['取得したいデータのカラム名']
という書き方は、必要なデータだけを表示したい(=余計なデータを表示したくない)ときによく使われる書き方です。
最後に、ここまで書いてきたコードを実行すると、以下のチャートが描画されます。
エヌシーノ(NCNO)のテクニカル分析チャート
次回の記事では、Pythonで別のテクニカル分析チャートを作ってみます。
乞うご期待!
▼ Udemyおすすめの講座 ▼
▶現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
▶【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
Pythonを学びたい方へ
今やPythonは、あらゆる分野で使われているプログラミング言語です。
Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。
『私もPythonを学んでみたい!』
という人は以下のリンク先をご覧ください。
▼ 本気でPythonを学びたいなら ▼
Pythonを学ぼう
なぜプログラミングを学ぶ必要があるのか?その理由がわかります。
そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。
この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。