Pythonでテクニカル分析 ~Netflixの株価を分析しよう~



Pythonでテクニカル分析をしてみたいけど、どうすればできるのかな?

この記事では、Python初心者でもできるよう簡単に、テクニカル分析につかわれる「RSI」というオシレーターの描画をしていきます。

この記事を読みおわるころには、テクニカル分析とはなにかを知ることができ、投資判断をする上で意思決定のひとつの手法として活用することができるようになります!

記事にでてくるコードは配布しております。下記LINE@からダウンロードください。

メッセージにて、「テクニカル分析」とお送りいただければダウンロードができます。

友だち追加

この記事を読むとわかること

  • テクニカル分析とはなにか理解する
  • Pythonをつかいテクニカル分析のひとつであるRSIを触ってみる

今回は、Pythonをもちいてテクニカル分析をおこなう方法を学んでいきます!

    テクニカル分析は過去の株価変化の規則性を分析する方法です。

    テクニカル分析はアカデミックには研究されていませんが、伝統的な証券分析の方法として広く利用されています!

    ぜひ今回のレクチャーで株式意思決定のひとつとして活用できるようにしましょう!

    それでは一緒にまなんでいきましょう!

    テクニカル分析とはなにか理解しよう

    モニター 株価

    まずは、テクニカル分析とはどのようなものなのか解説していきます!

    テクニカル分析とは

    テクニカル分析とは

    過去の株価変化をチャートに記録し、規則性を見つけ出す方法。

    テクニカル分析では、過去のチャート(株価を記録したもの)から規則性を見つけ出します。

    この規則性から将来の株価変化を予測し、投資の意思決定をすることができます!

    テクニカル分析の大きくわけた2種類の分析方法

    テクニカル分析では大きく2種類の分析の方法があります。

    それは

    • トレンド分析
    • パターン分析

    の2つです!

    まずは「トレンド分析」からみていきましょう!

    トレンド分析とは

    株価が上昇から下降へ、または下降から上昇へのトレンドの転換を重視した分析方法。

    トレンド分析とは、株価が上昇から下降へ、または下降から上昇へといった、株価変化を分析する手法です!

    比較的長期の株価変化を対象とした分析です!

    具体的な分析手法として「ダウ理論」や「移動平均線」などが挙げられられます!

    今回は説明を割愛しますが、下記の画像のように株価を分析するための波線を描き、その波線と株価の関係から「買い」や「売り」といった意思決定をおこないます!

    引用:入門証券論第3版(p.167)

    続いて「パターン分析」です!

    パターン分析とは

    経験的な株価変動のパターンを分析する方法。

    パターン分析とは、株価を経験則に基づいた型に当てはめて、それ以降の株価の上昇・下落を判断する分析です

    比較的短期の株価変化を対象とした分析になります!

    具体的な分析手法として「保合い(もちあい)圏のパターン」などが挙げられられます!

    今回は説明を割愛しますが、下記の画像のように株価を分析するために2つの線(抵抗線と支持線)を描き、その2線で株価が反発したり突き抜けたりする関係から「買い」や「売り」といった意思決定をおこないます!

    引用:入門証券論第3版(p.163)

    このようにテクニカル分析は広く投資家やトレーダーに用いられています!

    このテクニカル分析をPythonをもちいて実装していきましょう!



      Pythonをもちいて株価のリターンを求めよう!

      テクニカル分析についてなんとなく理解したところで、実際にPythonで触れてみましょう!

      今回はテクニカル分析のトレンド分析につかわれる「RSI」というものをつかってNetflix(ネットフリックス)の株価の予想をしていきます!

      RSIとは

      金融市場の分析で使用される、株式が買われ過ぎか売られ過ぎかを判断するための指標

      RSIを利用し例えば、株が売り過ぎの場合購入するのに良い時期を示し、株が買い過ぎの場合売りの良い時期を示します。

      アナリストはこういったRSIの高値と安値を使用して勢いの変化を判断します。

      それでは実際にPythonでレクチャーしていきましょう!

      Jupyter Notebook(ジュピター・ノートブック)を使う

      今回、Pythonでイベントスタディをおこなうに当たって、Jupyter Notebook(ジュピター・ノートブック)を開発環境として分析を行います。

      ジュピター・ノートブックとは

      ブラウザ上で動作するプログラム実行ツールです。

      教育機関や研究機関でも広く使われており、Pythonデータ分析を行うには欠かせないツールとなっています。

      why
      why
      環境構築は下記記事をご参考にしてみてね。
      pc mac

      【Anaconda】 Pythonの環境構築 |mac編|

      pc mac

      【Anaconda】 Pythonの環境構築 |Windows編|

      計算をおこなうデータを読みこむ

      ジュピターノートブックが準備できたら、下記LINE@から「Pythonでテクニカル分析①」のファイルをダウンロードします。

      メッセージにて、「テクニカル分析」とお送りいただければダウンロードができます。

      友だち追加

      その後ジュピターノートブックをもちいて「Pythonでテクニカル分析①」を開きます。

      直近1年間の株価を取得する

      その後、「pip install ~」ができていないライブラリは逐次インストールし、

      ライブラリのインポートの実行をします!

      そして、今回分析対象であるネットフリックス(以降NFLXと表記)を指定します。

      そして、ヤフーファイナンスを経由してNFLXの直近1年間の株価を取得します!

      株価を描画する

      その後下記のように株価を描画し、株価の変化を表示します。

      下記の画像のように株価を描画させることができました!

      RSIを計算し描画する

      その後、株価を利用しRSIを計算し描画させます!

      尚、RSIの計算は「RSI = 100-(100 /(1 + RS))」になりますが、ここではRSIの計算方法というよりテクニカル分析をしていく流れをなんとなくみていく形で大丈夫です!

      今回は14日期間でRSIを計算しました。(←RSIを知らない方はスルーしていいです)

      そしてRSIを描画させます!

      縦のラベルがRSI(相対力指数)を示しています!

      RSIは、0〜100のスケールで値を返し、高レベル値と低レベル値は(70と30)、(80と20)、および(90と10)でマークされます!

      高水準が高く、低水準が低いほど、価格の勢いの変化が強いことを示します。

      たとえば、RSIは70を超えると買われ過ぎ、30を下回ると売られ過ぎと見なされます。

      RSI値が50の場合、中立状態を表します。

      このように時期によって勢いにRSI値が違うことがみてとれます!

      まとめて描画して比較する

      そしてまとめて描画し、株価とRSIの関係を比較していきます!

      描画させます!

      上記をみるに2020年の2月頃にRSI値が80を上回っています。

      これは、株式が買われすぎたことを示しており、投資家に売却の機会を提供します。

      その後、3月頃にかけて株価が下落していることがわかります。

      このとき、2月頃時点で空売りをしていた場合にかなりの利益を得ることができたのではと思います!

      このように株式の投資判断にRSIを利用することができます!

      注意:この記事は純粋に証券知識を教育するためのモノであり、投資判断のアドバイスとして捉えるべきものではないです。投資されたい場合は自己責任でお願いします。



      まとめ

      今回は、

          • テクニカル分析とはなにか理解する
          • Pythonをつかいテクニカル分析のひとつであるRSIを触ってみる

          という流れをサンプルコードとともに解説をしました!

          この記事を通し、テクニカル分析を活用できるようにしましょう!

          記事にでてくるコードはLINE@にて配布をしております!
          LINEのメッセージ欄に「テクニカル分析」とお送りいただければ、ダウンロードリンクを送付いたします!

          コード配布はLINE@にて!

          友だち追加

          コメントを残す

          メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

          CAPTCHA