Python で 豪ドル/円チャ-ト を探求
豪ドル/円予測改善ファイルまとめ
ここまでで、豪ドル/円のCSVデ-タ mane_chart_go.csv のダウンロ-ドファイルが完成しました。
引き続き 豪ドル/円予測改善ファイル をまとめます。
sc_sele_mane_poly-tako.py をまとめると次のようになります。
2023/4/25日追記
Windows10
Oracle VM VirtualBox7
ubuntu-2204-LTS
の環境で次のような警告がでるようになりました。
Matplotlib created a temporary config/cache directory at
/tmp/matplotlib-exerkpb3
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-exerkpb3
に作成しました。
MPLCONFIGDIR 環境変数を書き込み可能なディレクトリに設定することを強くお勧めします。
特に、Matplotlib のインポートを高速化し、
マルチプロセッシングをより適切にサポートするためです。
推奨内容にしたがって、最初の部分に
import os
os.environ['MPLCONFIGDIR'] = '/tmp/'
を追記します。
----まとめコ-ドはここから----
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import datetime
#230425 2行追加
import os
os.environ['MPLCONFIGDIR'] = '/tmp/'
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")
Close = xl_df["終値(売り)"].values
app = Close[-1:]
# print(app)
app1 = np.hstack((app, app, app, app, app))
# print(app1)
Close1 = np.hstack((Close, app1))
# print(Close1)
Idx = xl_df.index
# Idx は 0 スタ-ト
Idx5 = Idx[-5:] + 5
Idxlg = np.r_[Idx, Idx5]
# print(Idxlg)
z = np.polyfit(Idxlg, Close1, 9)
p = np.poly1d(z)
# print("予測値=最終日+1~+5日")
p_pand = np.round(p(Idx5),3)
Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
# Closea = xl_df["終値(売り)"].values
Date = xl_df["日付"].values
tstr = Date[-1]
tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
# 文字列をdatetimeに変換するのがstrptime()関数
# datetime.datetime.strptime(文字列, 書式指定文字列)
lastday = addBusinessDays(tdatetime, 5)
# 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))
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')
豪ドル/円予測ファイル改善ファイル作成
まとめた2つのファイルは動作確認のため TeraPad 等で作成したら、ファイル名をそれぞれ
sc_sele_mane_down.py
sc_sele_mane_poly-tako.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
豪ドル/円予測改善ファイル動作確認
まず、これらのファイルを動作させるには
Selenium が動作するように、Ubuntu に必要パッケ-ジ
Selenium, ChromeDriver, chromium-browser
をインスト-ルする必要があります。
まだの方はPython Selenium Web 自動操作概要
を読んで、Ubuntu に必要パッケ-ジをインスト-ルしてください。
2つ目のファイル sc_sele_mane_poly-tako.py を動作させるには
pandas, pyplot(matplotlib), Numpy, mplfinance
の各パッケ-ジも必要です。
まだの方は豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化
を読んで、Ubuntu に必要パッケ-ジをインスト-ルしてください。
インスト-ル済みの方はこれはパスします。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
yamada@ubuntu-20:~$ mkdir public_html/manep-img
として新規ディレクトリを作成しておきます。
/home/yamada/public_html/manep-img
が作成できました。
作成済みの方はこれはパスします。
また
/home/yamada/public_html/manep
のフォルダとその中に
mane_chart_go.csv
ファイルが必要です。
この辺のところは
豪ドル/円 CSV 改造ファイルまとめ
を読んでください。
ここまでで、豪ドル/円予測改善ファイル動作確認の前準備が完了しました。
引き続き、本ファイルを実行確認します。