Python

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

2020年12月30日

こんにちは。TATです。

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

過去の記事では、Pythonで株価データを取得する方法について解説しました。

【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

 

今回は、ここで取得した株価データを使って、各種テクニカル分析をPythonを用いて計算してみます。

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

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

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

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

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

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

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

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

 

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

 

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

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

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

 

コードの内容を詳しく知りたい方は、こちらの記事で解説しているので参考にしてください。

【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

 

移動平均線

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

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

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

 

コードを公開

移動平均線は、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を使っています。

Pythonはデータ分析や可視化などを得意としており、比較的学びやすい点からも人気が集まっている言語です。

僕自身も社会人になってから独学で習得できてしまったくらい初心者にも学びやすい言語なのでオススメです。

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

 

Pythonの学習法としては個人的にはUdemyがおすすめです。

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

Udemyで講座を探す

 

まとめ

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

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

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

この他にもボリンジャーバンドやストキャスティクスなど数多くのテクニカル分析があります。

投資で勝つには自分の投資手法に合わせて適切な武器を選択することです。

正しい武器を使いこなすことができれば投資で良い成績を上げることができるようになります。

僕の投資手法については過去の記事でも紹介しているので合わせてご覧ください。

【プログラムで一部自動化!】僕が株を購入するまでの流れを大公開します
【僕のこれまでの迷走を公開】投資に正解はありません。自分に合うものを見つけよう!

 

是非ともこちらの記事でご紹介したPythonコードをご参考にしていただけたら嬉しく思います。

【コード解説】Pythonで株価データを取得する!【3つの方法を解説】
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

Pythonは世界中で人気急上昇中の言語です


需要が上昇しています


ここ最近、Pythoの需要が上昇しています。

特にAIやデータ分析を得意としているので、データサイエンス分野では需要が爆発しています。

【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】

【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】

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


初心者にも学びやすい


さらにPythonは初心者にも学びやすいのが特徴です。

僕自身も社会人になってからPythonを独学しました。

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

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


転職の武器になる!


Pythonは転職する際の武器にもなります。

僕はPythonを独学して転職に成功しました。

おかげさまで年収も大きく上がりました。

【副業は神です】2度の転職において副業が内定の決め手になったお話。

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


おすすめのプログラミング学習方法


Udemy


圧倒的な安さ(セール時)で上質な動画学習素材が手に入る!



Udemyで講座を探す

 

TECH::CAMP


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



TECH::CAMPで無料体験講座を受けてみる

 

CodeCamp


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



CodeCampで無料体験講座を受けてみる

 

-Python
-, , , ,

© 2021 気ままなブログ