Python で 豪ドル/円チャ-ト を探求
豪ドル/円予測ファイル改善
ここまでで、豪ドル/円予測ファイルとなる
豪ドル/円 CSV ダウンロ-ド,グラフ化合体ファイル
sc_sele_mane_poly.py
が完成しました。
しかしながら改善点も存在します。
Python 多項式フィッティング での大きな問題点としては
データがある部分のフィッティングにのみに引っ張られて
データがない予測したい部分はいい加減になってしまうことです。
要するにフィッティングさえできれば満足してしまうのです。
よって予測精度が落ちてしまいます。
そこで、シンプルな予測値をあらかじめ設定することによりこの問題を回避します。
今回採用したのは
N日足の終値は、次のN日足の終値に引き継がれる
と予測する考えです。
具体的に説明すると、最後の実績値、例えば 12/6日の終値 a は、
翌日 (b = 12/7)の予測終値であり
2日足の終値にもなっているので、
(b+1 = 12/8)日の予測終値にもなっています。
よって、N日足の終値になっている終値 a は、
b ~ (b+4)日の予測終値になります。
この予測終値 a を12/9~13日に仮に設定してフィッティングすることにより予測精度を高めます。
もっと具体的に書くと
12/6 実績終値 74.256円 とすると
12/9 予測終値 74.256円
= 12/6 1日足終値
12/10 予測終値 74.256円
= 12/5-6 2日足終値
12/11 予測終値 74.256円
= 12/4-6 3日足終値
12/12 予測終値 74.256円
= 12/3-6 4日足終値
12/13 予測終値 74.256円
= 12/2-6 5日足終値
とします。
予測終値のプログラム化
それではこの予測終値設定をプログラム化します。
修正するのは sc_sele_mane_poly.py です。
詳細は豪ドル/円 CSV ダウンロ-ド,グラフ化合体ファイル
を見てください。
最後から戻って65行目あたり
・・・・
xl_df = pd.read_csv(
"/home/yamada/public_html/manep/mane_chart_go.csv",
encoding="cp932")
Close = xl_df["終値(売り)"].values
Idx = xl_df.index
のあとに以下の内容を追加します。
Close = xl_df["終値(売り)"].values
app = Close[-1:]
app1 = np.hstack((app, app, app, app, app))
Close1 = np.hstack((Close, app1))
Idx = xl_df.index
# Idx は 0 スタ-ト
Idx5 = Idx[-5:] + 5
Idxlg = np.r_[Idx, Idx5]
z = np.polyfit(Idxlg, Close1, 9)
p = np.poly1d(z)
少し解説します。
配列 Close の最後に Close の最後の値 Close1[-1:] を5個追加します。
app = Close1[-1:]
app1 = np.hstack((app, app, app, app, app))
Close1 = np.hstack((Close, app1))
この Close1 を解析することによって未来5日間を予測します。
np.hstack((a, b)) は ndarray 配列 a と b を結合してくれます。
Idx は X 軸でデ-タの数だけあります。
Idx5 は未来5日間分の X 軸です。
Idxlg はデ-タ数+5となります。
np.r_[ ] で [ ] 内の2つの配列を結合してくれます。
ここまでで、豪ドル/円予測ファイル改善内容について説明してきました。
引き続き、豪ドル/円予測改善ファイルをまとめます。