Python

【コード解説】Pythonで株式投資に必要なテクニカル分析を計算する

2020年12月30日

こんにちは。TATです。

今日のテーマは「Pythonでテクニカル分析を計算する」です。

 

株価データを使って各種テクニカル分析をPythonを用いて計算してみます。

もちろんコードもすべて公開していきます。

様々なテクニカル分析がありますが、ここでは僕が普段使っている移動平均線、MACD、RSIに絞りました。

また、ここで紹介しているコードはあくまで一例にすぎないので、ご自由にパクリつつ、適宜改善していっちゃってください!

そしてミス等ありましたら教えていただけると嬉しいです。

 

また、Pythonで株価データを扱う記事については記事が散在しているのでこちらにまとめました!

株価データの取得方法や可視化についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

【コード解説】Pythonで株式投資に必要なテクニカル分析を計算する

(おさらい)株価データを取得する

まずはおさらいとして、計算に必要な株価データを取得します。

ここは過去に記事でも解説しているので詳細は割愛します。

 

今回はpandas_datareaderを使ってトヨタ(7203)の株価データを取得します。

 

このコードで取得した株価データはこんな感じです。

このままだとデータ数が多いので、直近50日のデータに絞ります。

このデータを使っていくつかのテクニカル分析を計算していきます。

 

Pythonで株価データを取得する方法についてはこちらの記事で解説しているので参考にしてください。

関連記事
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】
関連記事
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

続きを見る

 

移動平均線

まずはテクニカル分析で最も基本となる移動平均線です。

移動平均線の使い方についてはこちらの記事で解説しているのでよろしければご覧ください。

関連記事
【シンプルだけど奥深い!】「移動平均線」について 徹底解説します!

 

コードを公開

移動平均線は、pandasのrolling関数を使えば一瞬で計算できます。

コードもシンプルなので一目でわかるかと思います。

ここでは5日移動平均線・25日移動平均線を計算しています。

 

ご覧の通りです。

終値で計算するので、Close列を指定してrolling関数を適用します。

そして引数のwindowで期間を指定します。

最後に平均値を指定するmean()をつければおしまいです。

ここをmax()とかmin()にすると、その期間のおける最高値あるいは最安値を計算することもできます。

 

計算結果を確認

計算結果はこんな感じです。

きちんと計算されていることがわかりますね。

期間が不十分の場合はNaNとなっています。

この辺のいい感じに計算してくれちゃうのがPythonの素晴らしいところです。

 

グラフに描く

算出した移動平均線をグラフ化するときちんと計算できていることが確認できます。

 

ちなみにこちらのグラフを描いたコードはこちらです。

 

このチャートを書くためにindexというコラムを追加しています。

これは単純に1行目から0から順にカウントしているだけで、一列目に追加しています。

 

グラフの書き方についてはこちらの記事で詳しく解説しています。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

 

MACD

次にMACDをご紹介します。

MACDは2種類の指数平滑移動平均(通常は12と26)の差分を計算して、さらにその差分の移動平均(通常は9)を求めることで算出できます。

MACDはトレンド系とオシレーター系の両方の特徴を併せ持つ人気のテクニカル分析手法です。

過去記事でも紹介しており、僕も愛用しています。

関連記事
【最も人気なツールの1つ】 「MACD」について徹底解説!

 

コードを公開

それではコードをどうぞ。今回はMACDを計算する関数を作ってみました。

 

関数内でMACDに使う変数を自由に設定できるようにしました。

期間を変えたい場合はこれらの変数を弄ればOKです。

ewa関数を使うと指数平滑移動平均を一瞬で計算できるので便利です。

 

計算結果を確認

計算結果を確認します。

こんな感じできちんと計算できています。

 

グラフに描く

計算したMACDをグラフで確認します。

 

こちらのグラフのソースコードがこちらです。

 

subplots関数を使うとグラフを分割して複数の種類のグラフをまとめて表示することが可能になります。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

 

RSI

最後にRSIを見ていきます。

RSIはオシレーター系の代表的なテクニカル分析手法で、株価の上がりすぎや下がりすぎを判断するために使われます。

一般的に期間は14が用いられ、この期間で平均上がり幅と平均値下がり幅の比で算出されます。

0〜100の数値で示され、50を超えると上昇平均の方が大きいことを意味します。

一般的に70で買われすぎ、30で売られすぎと判断され、逆張りに利用されることが多いです。

過去の記事では僕独自の使い方もすべて公開しているので是非ともご覧いただけると嬉しいです。

関連記事
【オシレーター系の定番!】RSIについて徹底解説!【僕の独自活用法も公開】

 

コードを公開

それではRSIを計算するPythonコードをどうぞ。

ちょっと長いです。

もっとコンパクトに書ける方法があれば教えていただけると嬉しいです。

 

ちょっとややこしいので解説しておくと、まずは前日との差分を計算してdf_diffに格納します。

これをcopyしてdf_upとdf_downを定義します。

それぞれ、値上がりと値下がりの平均を計算するために使います。

df_upはマイナス値を0に変換、df_downはプラス値を0に変換します。

さらにその後はdf_downの数値の正負を反転するために-1をかけます。

あとは平均値を計算して比を算出すれば完成です。

 

計算結果を確認

計算結果を確認します。

 

RSIの使い方についてはこちらの記事をどうぞ。僕独自の活用法も公開しています。

関連記事
【オシレーター系の定番!】RSIについて徹底解説!【僕の独自活用法も公開】

 

グラフに描く

最後に算出したRSIをグラフで確認します。

 

このチャートを描くためのソースコードがこちらです。

 

こちらもMACDの時の同様にグラフを分割してRSIを表示しています。

このあたりのカスタマイズはmatplotlibを使うと柔軟にできるので、使いこなせるととても便利です。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

 

データ分析にはPythonが最適です

ここまで紹介してきたコードは、全てPythonを使って書かれています。

 

Pythonを使えば、短いコードで複雑な処理を実装することができます。

データ分析やスクレイピングなどを得意とするプログラミング言語で、さらにAI関連のライブラリーが豊富なので、昨今のAIブームで需要が爆発しています。

おすすめ
【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
おすすめ
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】

 

また、Pythonは、僕自身も独学で習得できたくらい学びやすい言語なので、スキルを身に付けたい方などにもオススメです。

僕の場合は社会人になってから独学でPythonを習得して転職にも成功しました。Pythonをきっかけに人生が大きく変わりました。

おすすめ
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。

続きを見る

 

僕自身の独学の経験をベースに、Python独学ロードマップをまとめたので、もしご興味があればご覧ください。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

続きを見る

 

僕自身はUdemyでPythonを独学しました。

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

 

 

まとめ

いかがでしたでしょうか。

今回は「Pythonで株価データから各種テクニカル分析を計算する」というテーマで、移動平均線・MACD・RSIの計算方法について紹介しました。

 

これらは僕が普段の株式投資でよく利用しているものです。

Pythonはデータ分析に最適な言語で、株価データの分析も容易に実装できます。

本記事でご紹介したコードを活用して、株式投資に役立てていただけたら嬉しいです。

 

また、Pythonで株価データを扱う記事については記事が散在しているのでこちらにまとめました!

株価データの取得方法や可視化についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

ここまで読んでくださってありがとうございました。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

続きを見る

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

データ販売を始めました


オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータの販売を始めました。

あらゆるデータを集約して、誰でも簡単にスクリーニングできるようにCSV形式でデータを提供します。

オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータを販売します!

続きを見る




Pythonの独学ならUdemyがオススメ!


Udemyなら、セール中だと90%オフとかで買えるのでコスパ最強です。

僕はUdemyでPython独学に成功しました。

関連
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

続きを見る



関連
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】

続きを見る



Udemyを詳しく見る!



プログラミングスクールもオススメ!



プログラミングスクールもオススメの選択肢です。

初心者をしっかりサポートしてくれるシステムが整っているので、挫折する可能性が一気に下がります。

効率よく最速で学ぶならプログラミングスクールが最適です。

関連
【まとめ】Pythonが学べるおすすめプログラミングスクール

続きを見る



関連
プログラミング学習は独学とプログラミングスクールどちらにすべきか?【結論、全部試すべし!】

続きを見る



関連
高額なプログラミングスクールを利用する価値はあるのか?【結論、人それぞれですw】

続きを見る




TechAcademy (テックアカデミー)


オンラインに特化したプログラミングスクールで、プログラミングの他に動画編集などの豊富なコースが用意されています。







TechAcademyを詳しく見る!



TECH::CAMP (テックキャンプ)


いつでも講師に質問できるチャットシステムが最強です!







TECH::CAMPを詳しく見る!



 

CodeCamp (コードキャンプ)


講師とのマンツーマンレッスンで挫折しない!







CodeCampを詳しく見る!


-Python
-, , , ,

© 2021 気ままなブログ