Python で 豪ドル/円チャ-ト を探求

豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化

引き続きダウンロ-ドした mane_chart_go.csv デ-タをグラフ化していきます。
過去pandas を使う のなかで、
Anaconda3(64-bit) Jupyter Notebook
で pandas と pyplot を使って、エクセルファイルのグラフ化 について説明しました。
ここでは、VirtualBox Ubuntu Server のなかでの CSV ファイルのグラフ化について 説明していきたいと思います。
デ-タの集計と解析を行うためのライブラリは Python には多数そろっています。
その中でも CSV やエクセルとの連携が最も優れているのが pandas です。
これを使うと CSV ファイルを簡単に Python に取り込むことができます。
pandas は利用価値は沢山あるのですが、今回は CSV 連携について説明します。

pandas インスト-ル

pandas をインスト-ルします。
Ubuntu ディスクトップ画面から端末画面を開きます。
yamada@ubuntu-20:~$
sudo pip3 install pandas
Enter を押してインスト-ルを開始します。
しばらく黙りこくってからコメントが次々と出てきて完了します。
インスト-ル結果を見ます。
$ sudo pip3 show pandas
でインスト-ルを確認すると
/usr/local/lib/python3.8/dist-pacages
に入ったことがわかります。
pandas は CSV ファイルの読み込みのために使用します。
CSV ファイルのグラフ化では pyplot Numpy も使用しますが、これは Python/pyplot インスト-ル のなかですでにインスト-ル済みです。
まだの方は pyplot (matplotlib) もインスト-ルしてください。
おっと pip3 がない方もここを参照してください。

mplfinance インスト-ル

ロ-ソク足チャ-トを作成するためにもう一つ必要なパッケ-ジがあります。
この作成にはこの上記のライブラリの他に、 mplfinance をインストールする必要があります。
ローソク足チャートを含む金融関係のグラフ描画機能はもともと matplotlib.finance として Matplotlib に含まれていたが、Matplotlib バージョン2.0から mpl_finance という 別のパッケージとして切り出されました。
さらに mplfinance という新たなパッケージが作られ、2021年現在は mpl_finance は DEPRECATED(非推奨)となり mplfinance の使用が推奨されています。
mplfinance は Matplotlib とは別にインストールする必要があります。
pip3 を使います。
Ubuntu ディスクトップ画面から端末画面を開きます。
yamada@ubuntu-20:~$
sudo pip3 install mplfinance
Enter を押してインスト-ルを開始します。
しばらく黙りこくってからコメントが次々と出てきて完了します。
インスト-ル結果を見ます。
$ sudo pip3 show mplfinance
でインスト-ルを確認すると
/usr/local/lib/python3.8/dist-pacages
に入ったことがわかります。
もし間違って、mpl_finance を入れてしまった人は、これはアンインスト-ル しておきましょう。
yamada@ubuntu-20:~$
sudo pip3 uninstall mpl_finance
これで必要なパッケ-ジが揃いました。

豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイル作成

それでは、豪ドル/円 CSV ダウンロ-ドデ-タをグラフ化していきます。
その内容は、140日分の毎日の豪ドル/円の動きから
5日先までの予測値をグラフ表示
140日分の豪ドル/円の動きをロ-ソク足表示
します。

ライブラリ取り込み

取り込む必要があるライブラリは4つです。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# import mplfinance as mpf
from mplfinance.original_flavor import candlestick_ohlc
本当は、mplfinance を使用してロ-ソク足を表示したかったのですが、 予測値グラフとうまく重ね表示が私の力ではうまくできなかったので、 旧の candlestick_ohlc を使用しました。
mplfinance を使用するとロ-ソク足の日付表示処理等がやり易いのですが残念です。

ダウンロードファイル読込

/public_html/manep/mane_chart_go.csv ファイルを読み込みます。
このファイルの0行目のヘッダー情報は日本語で書かかれています。
単に読込むと文字化けしますので、文字コードを cp932 を指定すると文字化けしないようです。
CSV ファイルの保存場所は絶対パスで表記する必要があります。

  xl_df = pd.read_csv("/home/yamada/public_html/manep/mane_chart_go.csv", encoding="cp932")
  print(xl_df)

Python 多項式フィッティングで予測

気温や株式の価格のような連続したデ-タがある時、 これを数式で表現できると将来の値を予測するようなことができます。
多項式フィッティングを行うと、数値変化を関数化することができます。
例えば5次式で表すと仮定すると

  • 多項式
  • のように書くことができます。
    この時 a0~a5 の値を決めることができれば、数値変化を関数化することができます。
    これを実現してくれるのが、Numpy の中にある polyfit 関数です。
    この関数の使い方についてこれから順次説明していきます。

    Python 多項式フィッティング準備

    Python 多項式フィッティングを適用するデ-タは"終値(売り)"の値です。
    mane_chart_go.csv のなかから"終値(売り)"の列デ-タを抜き取ります。
    Close = xl_df["終値(売り)"].values
    y 軸値(Close)を呼出すための仮の x 軸値(Idx)が必要です。
    Idx は 0~デ-タ数分の各整数値が入った配列です。
    これは
    Idx = xl_df.index
    から取得することができます。
    次ぎに未来の x 軸値(Idx5)5日間を作成します。
    Idx[-5:]とすると
    ラストから5個の整数値を切り取ることができます。
    それに + 5日
    Idx5 = Idx[-5:] + 5
    すると
    Idx5 は ラストから +5 の5個の整数値となります。
    例えば Idx のラストが 98 とすると
    Idx5 は
    99,100,101,102,103
    となります。
    よって x 軸の 99~103 に5個の未来の予測値が表示されることになります。
    ちなみに
    print(Idx)
    とすると
    RangeIndex(start=0, stop=99, step=1)
    print(Idx5)
    とすると
    RangeIndex(start=99, stop=104, step=1)
    となり
    start=0 のindex 行にはデ-タがありますが、
    stop=99 または stop=104 の index 行にはデ-タはありません。
    ちなみに今回グラフ化するダウンロ-ドした mane_chart_go.csv デ-タの内容を下記に表示します。

      index   日付          通貨ペア 足種別 始値(売り) 高値(売り) 安値(売り) 終値(売り)・・・
      0  2020/10/20 00:00:00  AUD/JPY  日足 74.484    74.608     74.200     74.355  ・・・
      1  2020/10/21 00:00:00  AUD/JPY  日足 74.316    74.613     74.207     74.420  ・・・
      2  2020/10/22 00:00:00  AUD/JPY  日足 74.325    74.666     74.191     74.640  ・・・
      3  2020/10/23 00:00:00  AUD/JPY  日足 74.596    74.918     74.374     74.753  ・・・
      4  2020/10/26 00:00:00  AUD/JPY  日足 74.674    74.938     74.503     74.664  ・・・
      ..                ...     ...    ..     ...     ...        ...        ...     ...
     94  2021/03/02 00:00:00  AUD/JPY  日足 82.902    83.629     82.607     83.449  ・・・
     95  2021/03/03 00:00:00  AUD/JPY  日足 83.434    83.759     83.123     83.208  ・・・
     96  2021/03/04 00:00:00  AUD/JPY  日足 83.166    84.033     83.009     83.353  ・・・
     97  2021/03/05 00:00:00  AUD/JPY  日足 83.382    83.589     82.767     83.307  ・・・
     98  2021/03/08 00:00:00  AUD/JPY  日足 83.323    83.747     82.930     83.265  ・・・
    

    ここまでで Numpy polyfit 関数 Python 多項式フィッティング を実行する準備ができましたので引き続きこれを用いて豪ドル/円を予測するファイルを作成します。


  • Numpy polyfit 関数で豪ドル/円を予測 に進む
  • 豪ドル/円 CSV 改造ファイルまとめ に戻る
  • Python 豪ドル/円チャ-ト 概要 に戻る
  • 70VPS に戻る