さくら VPS Python 豪ドル/円 4時間足予測

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

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

pandas インスト-ル

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

mplfinance インスト-ル

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

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

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

ライブラリ取り込み

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

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

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

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

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

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

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

      index   日付          通貨ペア 足種別 始値(売り) 高値(売り) 安値(売り) 終値(売り)・・
      0  2022/02/14 04:00:00 AUD/JPY 4時間足  82.146    82.317    82.128    82.292    ・・・
      1  2022/02/14 08:00:00 AUD/JPY 4時間足  82.292    82.642    82.141    82.218    ・・・
      2  2022/02/14 12:00:00 AUD/JPY 4時間足  82.218    82.31     82.108    82.186    ・・・
      3  2022/02/14 16:00:00 AUD/JPY 4時間足  82.186    82.316    81.552    81.76     ・・・
      4  2022/02/14 20:00:00 AUD/JPY 4時間足  81.76     82.375    81.658    82.338    ・・・
    
     ・・   ・・・       ・・・       ・・・      ・・・    ・・・       ・・・       ・・・       ・・・       ・・・
     
     96  2022/03/07 16:00:00 AUD/JPY 4時間足  85.387    85.461    85.071    85.177    ・・・
     97  2022/03/07 20:00:00 AUD/JPY 4時間足  85.178    85.408    84.747    84.764    ・・・
     98  2022/03/08 00:00:00 AUD/JPY 4時間足  84.764    84.853    84.338    84.489    ・・・
     99  2022/03/08 04:00:00 AUD/JPY 4時間足  84.489    84.539    84.249    84.338    ・・・
    100  2022/03/08 08:00:00 AUD/JPY 4時間足  84.338    84.833    84.286    84.482    ・・・
    

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


  • Numpy polyfit 関数で豪ドル/円4時間足予測 に進む
  • マネパ 4時間足 CSV ダウンロードファイル作成 に戻る
  • 4時間足ダウンロ-ドファイル名変更 に戻る
  • Money Partners サイト 4時間足デ-タ取得 に戻る
  • 70VPS に戻る