Python データ分析

【Pythonで株式投資】株価データからボリンジャーバンドを計算して可視化する【コード解説】

2022年6月29日

こんにちは。TATです。

今日のテーマは「【Pythonで株式投資】株価データからボリンジャーバンドを計算して可視化する【コード解説】」です。

 

Pythonを使って株価データを取得して、テクニカル分析ツールの1つであるボリンジャーバンドを計算する方法について解説します。

さらに計算結果をPlotlyを使っていい感じにチャートで可視化していきます。

 

Pythonコードもなるべくわかりやすく解説していきます。

ここで紹介しているコードは自由にコピっていただいてOKです。

 

【Pythonで株式投資】株価データからボリンジャーバンドを計算して可視化する【コード解説】

株価データの準備

まずは、ボリンジャーバンドを計算するために必要な株価データを準備します。

ここでは、yahoo_finance_api2を使って日経平均株価を取得します。

 

日足過去3年分取得しました。

 

取得できたデータがこちらです。

 

yahoo_finance_api2を使った株価データの取得方法についてはこちらの記事で解説しています。

【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

続きを見る

 

ボリンジャーバンドを計算する

株価データの準備ができたので、Pythonでボリンジャーバンドを計算していきます。

 

ボリンジャーバンドとは?

計算をする前に、まずはボリンジャーバンドについて簡単に解説しておきます。

ボリンジャーバンドは、テクニカル分析手法の1つで、移動平均線標準偏差から構成されます。

ボリンジャーという名前は、考案者である米国の投資家ジョン・ボリンジャーから来ています。

 

移動平均線と、その上下に移動平均線と標準偏差から計算した値動きの幅を示す線を加えて、統計学に基づいて「ほとんどの確率で株価がこの上下の線の内部に収まる」ということを示します。

この上下の線が帯(英語でバンド, Band)のように見えることから、ボリンジャーバンドと呼ばれます。

 

この帯は、拡大したり収縮したりするので、この動きをうまく活用すると売買ポイントを見極めることができます。

順張りと逆張り、どちらに利用できるのも大きな特徴です。

 

ボリンジャーバンドの計算方法

正規分布の特徴を活かして、株価の移動平均線をm、標準偏差をσとすると、m±2σあるいはm+3σを計算して可視化したものがボリンジャーバンドです。

 

正規分布では、平均値標準偏差から全体のデータの割合を計算することができます。

正規分布のデータの割合

  • m±1σ: 68.27%
  • m±2σ: 95.45%
  • m±3σ: 99.73%

 

m±2σであれば、データ全体の95.45%が収まるという意味になります。

この特徴を活用すれば、株価がどの範囲で動くのかを予測することができるようになります。

 

よって、計算するには移動平均線と標準偏差を計算して、それらからm±2σなどを計算すればOKです。

多くのケースではm±2σが使われますが、m±3σが使われるケースもあります。

 

Pythonで実装する

Pythonでボリンジャーバンドは結構あっさり計算できます。

rolling関数を使えば、任意の期間の移動平均線と標準偏差が計算できます。

これを使ってをm±2σあるいはm±3σ計算すればOKです。

 

ここではどちらも計算してみます。

移動平均線の期間は25日としました。

 

 

とてもシンプルなコードですね。

これでボリンジャーバンドの計算はOKです。

 

ボリンジャーバンドをチャートで表示する

ボリンジャーバンドの計算が完了したので早速チャートで表示してみます。

今回はPlotlyを使ってチャートを作っていきます。

 

いろいろな表示法をお見せしていきます。

 

シンプルに線だけ表示する

まずは一番シンプルな方法です。

単純に線だけ表示します。

 

 

このコードで表示さえるチャートがこちらです。

線だけでとてもシンプルですね。

2σと3σどちらも表示しました。

また、これらの線は±で2本ありますが、色を統一することでいい感じになります。

線の太さも少し細めに設定しました。

 

バンド(帯)をつける

次に少しかっこ良く見せるためにをつけてみます。

 

 

表示されるチャートがこちらです。

赤い帯をつけたので、帯の収縮や拡張が一目でわかりますし、どこで帯からはみ出したのかもすぐにわかりますね。

ここではm+2σのみを表示しました。

 

39〜40行目で帯をつけています。

fill='tonexty'を使うと、直前にプロットした線との間を塗りつぶすことができます。

ここでは2upperと2lowerの間を塗りつぶすという意味になります。

 

2σと3σどちらも帯をつけて表示する

最後に、m+2σm+3σのどちらも帯をつけて表示してみます。

 

 

完成したチャートがこちらです。

 

なんと言いますか、配色のセンスのなさが浮き彫りになってしまっていますが、とりあえず思っていたチャートが描けたのでこれでよしとしますw

先ほどの赤い帯に加えて青い帯を追加しました。

fill='tonexty'を使って塗りつぶしています。

先ほどとのように3upperと3lowerの間を塗りつぶしてしまうと、2upperと2lowerで塗りつぶしている部分と重なってしまうので、2upperと3upper2lowerと3lowerの間を塗りつぶすようにしました。(52〜55行目)

 

Plotlyを使うと、このようにきれいなチャートを描くことができるのでおすすめです。

 

データの分析・可視化にはPythonが最適!

本記事で紹介したコードは、全てPythonを使って書いています。

 

Pythonデータの分析や可視化を得意とするプログラミング言語で、さらにAI関連のライブラリーも豊富で昨今のAIブームで需要が急拡大しています。

【いますぐ始められます】データ分析をするならPythonが最適です。

 

また、Python比較的学びやすい言語でもあります。

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

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

 

Python学習方法についてはいろいろな方法があります。

僕はUdemyを選びましたが、書籍プログラミングスクールも選択肢になります。

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

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

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

 

\30日返金保証/

Udemyを詳しく見る

セール中なら90%オフとかで購入可能です!

 

まとめ

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

ここでは「【Pythonで株式投資】株価データからボリンジャーバンドを計算して可視化する【コード解説】」というテーマで、Pythonでボリンジャーバンドを計算してチャートに表示する方法について解説しました。

 

Plotlyを使えば、綺麗なチャートをPythonで描くことができます。

帯をつけたり、いろいろなアレンジを加えることも可能です。

 

本記事で紹介しているコードはご自由にご利用ください。

そしてもしエラーとかあれば教えてください。

 

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

 

Pythonおすすめ学習法

Udemy

Udemyの特徴

  • 高品質の動画教材がリーズナブルに購入できる
  • セール中なら定価の90%オフなどの価格破壊が起こる
  • 講師に直接掲示板から質問ができ、疑問を解消しながらスムーズに学習できる
  • 動画はダウンロード可能で、隙間時間に効率的に学習できる
  •  30日間の返金保証、一度購入すれば視聴期限なく受講可能

\30日返金保証/

Udemy 公式サイトへ

セール中なら90%オフとかで購入可能です!

キカガク

キカガクの特徴

  • Pythonだけでなく、数学の基礎から、環境構築、AIアプリケーション開発まで一気通貫で学べる
  • 自走できるAI・DX人材を育成
  • オンデマンドの講義 + プロの講師に質問し放題、定期的なメンタリング付き
  • 今後増える動画コンテンツを含め、全ての動画コンテンツが一生見放題
  • 専門実践教育訓練給付金制度を利用すると最大で受講料の70%が還元される

\Pythonだけでなく、機械学習やAIの基礎から学べる/

キカガクを詳しく見る

企業の研修材料にも採用される実績と信頼のあるスクールです!

データミックス

データミックスの特徴

  • データサイエンティストが開発・監修した体系的かつ実践的に学べるカリキュラム
  • 「スキル」のみでなく、データサイエンスの本質である「理論」や「思考」が学べる
  • エンジニアに限らず、多様なキャリアを形成・構築できる
  • オンラインチャットツールによる質問対応やコミュニティなどの充実したフォロー体制
  • 専門実践教育訓練給付金の対象講座で授業料の最大70%還付

\データサイエンスとビジネスが学べる/

データミックス(datamix)を詳しく見る!

エンジニア転職だけでなく起業やフリーランスなど多様なキャリア形成・構築に繋がる

「Python」×「株式投資」

Pythonで株式データを扱う記事はこちらでまとめています。

収集・管理しているデータの販売もしています。

Pythonで株価データを扱う方法まとめ【データの取得・分析・可視化等、なんでもできます】

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


-Python, データ分析
-, , , ,

© 2022 気ままなブログ