Pythonで株価のデータ分析 |チャートに指標を追加してテクニカル分析【ビットコインや為替 (FX)にも応用できます】

オススメ

この動画では、MACD、RSI、ボリンジャーバンドのデータ取得方法と、それをグラフするの方法、つまりチャートに追加する方法について解説をします。
この動画紹介をするテクニカル分析は、ビットコインや為替FXにも活用できます。
そこで、ビットコインや為替FXの日足のデータ取得の方法について解説していきたいと思います。
このようなテクニカル指標を使う他に、ローソク足を使って売買の意思決定をしていらっしゃる方もいると思います。
可視化のライブラリが少し特殊なので、ローソク足については、簡単にではありますが紹介していきたいと思います。
証券会社が提供しているツールでやれることに限界を感じている方、プログラミングもついでに覚えたいという方にはぴったりの動画だと思います。
また、会社で売上や在庫などの予測の分析をしている方がいると思います。
金融のデータ分析は私は世界でもっとも難しいデータ分析の1つだと思っています。この題材を通してデータ分析や可視化を練習するのは、奥が深く学びが多いと思います。
金融のデータという興味深いテーマなので楽しみながら学んでいただければと思います。

▼目次
00:00 はじめに
02:48 Dockerを使った環境構築
06:36 前回の復習
08:23 MACDの作成
13:14 RSIの作成
15:40 ボリンジャーバンドの作成
18:33 ビットコイン データの作成
20:28 為替データの作成
22:37 ローソク足のデータ作成

▼関連動画
Pythonで株価のデータ分析

Pythonで株価のデータ分析|株価分析を通してPythonでのデータ分析を学びましょう

理屈はさておき、Dockerを使って、あっという間にPythonのデータ分析の環境構築をする

理屈はさておき、Dockerを使って、あっという間にPythonのデータ分析の環境構築をする|WindowsとMacの説明あり

【Python超入門コース】12.関数 |関数を料理ロボットに例えて説明しました

【Python超入門コース】12.関数 |関数を料理ロボットに例えて説明しました【プログラミング初心者向け入門講座】

Pandas入門|04.データフレーム (DataFrame) とは

Pandas入門|04.データフレーム (DataFrame) とは|データフレーム作成、インデックスやカラムの変更方法、データ操作【Python必須ライブラリPandasを初心者にわかりやすく解説】

▼人気の動画
Pythonで面倒なExcelの仕事を自動化しよう【第一弾】

Pythonで面倒なExcelの仕事を自動化しよう( 第一弾 )|一瞬で仕事がおわるプログラミング活用術

Pythonで面倒なExcelの仕事を自動化しよう【第二弾】

Pythonで面倒なExcelの仕事を自動化しよう( 第二弾 )|ExcelとPythonでのやり方を比較しながらわかりやすく解説

Pythonで面倒なExcelの仕事を自動化しよう【第三弾 】

Pythonで面倒なExcelの仕事を自動化しよう( 第三弾 )|「売上予測分析」や「グラフ付きレポート」を完全自動作成

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングのやり方をわかりやすく解説

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化などの開発 & コンサルティング)
前職:リクルート

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/
Website : https://kino-code.com/

▼文字書き起こし
前回の「Pythonで株価のデータ分析」はみていただけましたでしょうか?
前回の動画では、日経平均のデータをライブラリを使ってダウンロードをして、5日と25日、50日の移動平均を計算。
それらの指標をグラフにしました。
また、最後に個別銘柄の取得方法を説明しました。
ただし、株取引の経験者であればわかると思いますが、移動平均だけでは売買の意思決定をしている人は少ないと思われます。
つまり、移動平均の指標の他に、MACD、RSI、ボリンジャーバンドなどの指標を使っている人が多いのではないでしょうか。
そこでこの動画では、MACD、RSI、ボリンジャーバンドのデータ取得方法と、それをグラフするの方法、つまりチャートに追加する方法について解説をします。
また、これらのテクニカル分析は、ビットコインや為替FXにも活用できます。
そこで、ビットコインや為替FXの日足のデータ取得の方法について解説していきたいと思います。
このようなテクニカル指標を使う他に、ローソク足を使って売買の意思決定をしていらっしゃる方もいると思います。
可視化のライブラリが少し特殊なので、この動画では、簡単にではありますが紹介していきたいと思います。
証券会社が提供しているツールでやれることに限界を感じている方、プログラミングもついでに覚えたいという方にはぴったりの動画だと思います。
また、会社で売上や在庫などの予測の分析をしている方がいると思います。
金融のデータ分析は私は世界でもっとも難しいデータ分析の1つだと思っています。この題材を通してデータ分析や可視化を練習するのは非常に良いと考えています。
金融のデータという興味深いテーマなので楽しみながら学んでいただければと思います。
この動画で使うjupyterlabであったりPandasの使い方については、Pandas入門コースがあるのでそちらをご覧ください。
また、この動画の続編も出す予定なので、チャンネル登録がまだの方は、新しい動画が更新されたときに通知がいきますので、チャンネル登録をお願いします。
それではパソコン画面に切り替えてレッスンを進めていきます。
さて、この動画では、前回の「株のデータ分析」のレッスン動画と同様に、日経平均の日毎の株価をもとにデータ分析を進めていきます。
前回の動画では、5日と25日、50日の移動平均を計算。
移動平均を、出来高、つまり、株取引された量とともに可視化をしました。
今回は、他の指標であるMACDやRSI、ボリンジャーバンドを追加したいと思います。ただし、この指標の作成で問題になってくるのがライブラリです。MACDやRSIなどの指標のことをテクニカル指標といい、
Pythonでのテクニカル指標の追加は、Ta-Libというライブラリを使うと簡単できます。
しかし、このTa-libのインストールがクセモノです。
Anacondaのバージョンによってはインストールができなかったり、インストールができたとしてもインストール方法が複雑だったり、環境によってうまくいかないケースがあります。
そこで、この動画では、Dockerを使って株のデータ分析の環境構築をしていきたいと思います。
キノコードでは、「理屈はさておき、最速でDockerを使ってPythonのデータ分析の環境構築をする」という動画を作っています。
この動画のタイトルが長いので「DockerPython」と名付けると、
「DockerPython」の動画通りに進めていけば私と同じ環境構築ができるようになっています。

続きは文字書き起こしブログにて。

▼文字書き起こしブログ(ファイルの置き場所)
https://kino-code.com/python_automation_stock_analysis2/

#Python #Pythonとデータ分析 #Pythonで株価分析 #PythonとBitcoin #PythonとFX #Pythonとテクニカル分析

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. Yosuke Aida より:

    MACDやRSIのグラフを価格の折れ線グラフと共に描画しようとしたときにX軸の開始時期がそれぞれ2ヶ月、1ヶ月程度ずれてしまうのですが、どのように直せばいいですか。コードは細かくチェックしましたが全く同じように見えて、以下のエラーが出ました。
    ConversionError: Failed to convert value(s) to axis units: ‘2019-07-01’

  2. AKT AKT より:

    dockerの説明ちゃんとwindows用にもしてほしい

  3. マンエラー より:

    import warnings
    warnings.filterwarnings(‘ignore’)
    を入力して、動画と同様にMACDヒストグラムを作図したのですが、エラーが
    ValueError Traceback (most recent call last)
    C:anaconda3anacondalibsite-packagesmatplotlibaxis.py in convert_units(self, x)
    1519 try:
    -> 1520 ret = self.converter.convert(x, self.units, self)
    1521 except Exception as e:

    C:anaconda3anacondalibsite-packagesmatplotlibdates.py in convert(value, unit, axis)
    1905 “””
    -> 1906 return date2num(value)
    1907

    C:anaconda3anacondalibsite-packagesmatplotlibdates.py in date2num(d)
    443 return d
    –> 444 return _to_ordinalf_np_vectorized(d)
    445

    C:anaconda3anacondalibsite-packagesnumpylibfunction_base.py in __call__(self, *args, **kwargs)
    2107
    -> 2108 return self._vectorize_call(func=func, args=vargs)
    2109

    C:anaconda3anacondalibsite-packagesnumpylibfunction_base.py in _vectorize_call(self, func, args)
    2185 else:
    -> 2186 ufunc, otypes = self._get_ufunc_and_otypes(func=func, args=args)
    2187

    C:anaconda3anacondalibsite-packagesnumpylibfunction_base.py in _get_ufunc_and_otypes(self, func, args)
    2145 inputs = [arg.flat[0] for arg in args]
    -> 2146 outputs = func(*inputs)
    2147

    C:anaconda3anacondalibsite-packagesmatplotlibdates.py in _to_ordinalf(dt)
    298 dt = dt.replace(tzinfo=None)
    –> 299 dt64 = np.datetime64(dt)
    300 return _dt64_to_ordinalf(dt64)

    ValueError: Error parsing datetime string “2020-1-1” at position 5

    The above exception was the direct cause of the following exception:

    ConversionError Traceback (most recent call last)
    in
    13 #水平線はh(olizontal)lines,垂直線はv(erticval)lines
    14 #hlines(yの値(複数の時はリストで渡す)、線を引き始めるx、引き終わるy、色、千の種類)
    —> 15 plt.hlines(0,start,end,”gray”,linestyles=”dashed”)
    16 plt.legend()

    C:anaconda3anacondalibsite-packagesmatplotlibpyplot.py in hlines(y, xmin, xmax, colors, linestyles, label, data, **kwargs)
    2709 y, xmin, xmax, colors=None, linestyles=’solid’, label=”, *,
    2710 data=None, **kwargs):
    -> 2711 return gca().hlines(
    2712 y, xmin, xmax, colors=colors, linestyles=linestyles,
    2713 label=label, **({“data”: data} if data is not None else {}),

    C:anaconda3anacondalibsite-packagesmatplotlib__init__.py in inner(ax, data, *args, **kwargs)
    1436 def inner(ax, *args, data=None, **kwargs):
    1437 if data is None:
    -> 1438 return func(ax, *map(sanitize_sequence, args), **kwargs)
    1439
    1440 bound = new_sig.bind(ax, *args, **kwargs)

    C:anaconda3anacondalibsite-packagesmatplotlibaxes_axes.py in hlines(self, y, xmin, xmax, colors, linestyles, label, **kwargs)
    1155 self._process_unit_info([xmin, xmax], y, kwargs=kwargs)
    1156 y = self.convert_yunits(y)
    -> 1157 xmin = self.convert_xunits(xmin)
    1158 xmax = self.convert_xunits(xmax)
    1159

    C:anaconda3anacondalibsite-packagesmatplotlibartist.py in convert_xunits(self, x)
    173 if ax is None or ax.xaxis is None:
    と出てしまいます。グラフは正しく表示されるのですがエラーが消えなくてもどかしいです。
    どうすれば消えますかね?

タイトルとURLをコピーしました