Python で 豪ドル/円チャ-ト を探求
豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルまとめ
ここまでで、豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルが完成しました。
引き続き、作成したファイル内容をまとめて表示します。
import datetime def addBusinessDays(from_date, add_days): cur_date8 = [] # 21/03/30 cur_date4 = [] # 3/30 business_days_to_add = add_days current_date = from_date while business_days_to_add > 0: current_date += datetime.timedelta(days=1) weekday = current_date.weekday() if weekday >= 5: # sunday = 6 continue #土日は以下はスキップ # 年/月/日として文字列にする #例 21/03/30 e11 = current_date.strftime("%y/%m/%d") e22 = e11.replace("/0", "/") e33 = e22[3:] # 21/ 削除 cur_date8.append(e22) cur_date4.append(e33) business_days_to_add -= 1 return cur_date8, cur_date4 import pandas as pd import numpy as np from datetime import datetime as dt import matplotlib.pyplot as plt #① # import mplfinance as mpf from mplfinance.original_flavor import candlestick_ohlc xl_df = pd.read_csv( "/home/yamada/public_html/manep/mane_chart_go.csv", encoding="cp932") # print(xl_df) Close = xl_df["終値(売り)"].values Idx = xl_df.index # print(Idx) # Idx は 0 スタ-ト Idx5 = Idx[-5:] + 5 # print(Idx5) z = np.polyfit(Idx, Close, 9) p = np.poly1d(z) print("予測値=最終日+1~+5日") p_pand = np.round(p(Idx5),3) # print(p_pand) # ここから結果表示 Open = xl_df["始値(売り)"].values High = xl_df["高値(売り)"].values Low = xl_df["安値(売り)"].values # Closea = xl_df["終値(売り)"].values Date = xl_df["日付"].values Idx = xl_df.index tstr = Date[-1] tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S') # 文字列をdatetimeに変換するのがstrptime()関数 # datetime.datetime.strptime(文字列, 書式指定文字列) lastday = addBusinessDays(tdatetime, 5) # print(lastday) # pandas concat 関数で横(列)方向へ連結する、axis=1 を忘れないこと lastday_pd = pd.DataFrame(lastday[0]) p_pand_pd = pd.DataFrame(p_pand) df_concat = pd.concat([lastday_pd, p_pand_pd], axis = 1) print(df_concat) df_concat.to_csv( '/home/yamada/public_html/manep-img/mane_chart_go.csv', header=False, index=False) xDate = [] xD = [] for i, key in enumerate(Date): if(i % 10 == 0): e4 = str(key)[4:10] e6 = e4.replace("/0", "/") e8 = e6.lstrip("/") xDate.append(e8) xD.append(i) xDate.append(lastday[1][4]) xD.append(i + 5) ohlc = zip( Idx, Open, High, Low, Close) #② fig = plt.figure( figsize=(8.34, 5.56)) #③ # python スクリプトと Jupyter とでは、 # matplotlib の図のサイズが違うので注意 ax = fig.add_subplot(1,1,1) #④ ax.grid() plt.plot( Idx, p(Idx), Idx5, p(Idx5),'bo') candlestick_ohlc( ax, ohlc, width=0.5, alpha = 1, colorup='r', colordown='g') #⑤ plt.xticks(xD, xDate) #⑥ plt.title('AUS$ / JPY chart')#⑦ plt.xlabel('Date') plt.ylabel('Yen') plt.savefig( '/home/yamada/public_html/manep-img/mane_chart_go.png') #⑧
上記ファイルは動作確認のため TeraPad 等で作成したら、ファイル名を適当に
mane_polyfit-7.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイル動作確認
豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイル
mane_polyfit-7.py
の動作確認をしていきます。
このファイルを動作させるには
pandas, pyplot(matplotlib), Numpy, mplfinance
の各パッケ-ジが必要です。
まだの方は豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化
を読んで、Ubuntu に必要パッケ-ジをインスト-ルしてください。
インスト-ル済みの方はこれはパスします。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
yamada@ubuntu-20:~$ mkdir public_html/manep-img
として新規ディレクトリを作成しておきます。
/home/yamada/public_html/manep-img
が作成できました。
作成済みの方はこれはパスします。
次に、mane_polyfit-7.py を実行します。
$ python3 public_html/mane_polyfit-7.py
として確認します。
実行が完了したら
yamada@ubuntu-20:~$ ls -l public_html/manep-img
で作成した png ファイル
/home/yamada/public_html/manep/mane_chart_go.png
を確認します。
下記の様な画像ができていれば OK です。
ダウンロ-ドデ-タグラフ化動作確認補足
Matplotlib created a temporary config/cache directory
at /tmp/matplotlib-qe2mmfev
because the default path
(/home/yamada/.cache/matplotlib)
is not a writable directory;
it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory,
in particular to speed up the import of Matplotlib
and to better support multiprocessing.
和訳:
デフォルト パス
(/home/yamada/.cache/matplotlib)
は書き込み可能なディレクトリではないため、
Matplotlib は一時的な config/cache ディレクトリを
/tmp/matplotlib-qe2mmfev に作成しました。
MPLCONFIGDIR 環境変数を書き込み可能なディレクトリに設定することをお勧めします。
特に、Matplotlib のインポートを高速化し、
マルチプロセッシングをより適切にサポートするためです。
なる警告が出る時がありますが無視します。
pipenv をインストールして仮想環境を作成し、
ここに、matplotlib を入れるとこの警告はなくなるようです。
私の場合、システムを一人で専有して使用しているので、
システムの python 実行環境と分離する必要が今のところはないので
あえて仮想環境を構築してはいません。
この先必要かも?・・・・
ここまでで、豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイル動作確認
を行なうことができました。
引き続き、ここまでやってきた 豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化 の結果がどう見えるのか確認します。