Python Colaboratory Ⅲ
RNN 豪ドル/円4時間足予測最終日時取得
4時間足予測をすると予測最終日時がいつなのか知りたくなります。
そのためにはある日時 current_date から4時間ずつ延長する回数 business_days_to_add_h 後の日時
cur_date8 書式例:21/03/30 12~
を求める必要があります。
これにより24時間先までの予測日時6本のそれぞれの日時を知ることができます。
これを求める関数
addBusinessDays_4h(current_date, business_days_to_add_h)
の作成方法については
X 軸日付予測4時間足最終日時取得
予測最終日時取得関数まとめ
のなかで詳しく説明していますので参照してください。
関数 addBusinessDays_4h( )
をまとめると次のようになります。
import datetime def addBusinessDays_4h(current_date, business_days_to_add_h): # current_date : 処理する初日の日時 例) 2022-02-03 00:00:00 # business_days_to_add_h : 4時間ずつ延長する回数 cur_date8 = [] # 21/03/30 12~ cur_date4 = [] # 3/30 man_f = 1 #月曜フラグ 0 or 1 doyo_f = 0 #土曜フラグ 0 or 1 current_date0 = current_date weekday0 = current_date0.weekday() if(weekday0 == 0): #月 man_f = 0 while business_days_to_add_h > 0: current_date += datetime.timedelta(hours=4) weekday = current_date.weekday() hour_doyo = current_date.hour if weekday == 6: # sunday = 6 continue if((weekday == 5) and (hour_doyo == 8)): #土 doyo_f = 1 if((weekday == 5) and (doyo_f == 1)): #土 continue if((weekday == 0) and (man_f == 1)): #月 man_f = 0 continue # 年/月/日 時刻として文字列にする処理 # 例 22/03/30 12~ e11 = current_date.strftime("%y/%m/%d %H") e22 = e11.replace("/0", "/") e22 = e22 + "~" e33 = e22[3:] # 22/ 削除 cur_date8.append(e22) cur_date4.append(e33) business_days_to_add_h -= 1 return cur_date8, cur_date4
予測最終日時取得関数使用
予測最終日時取得関数
addBusinessDays_4h( )
を使用して、
colab_mane_chart_go_4h.csv デ-タの中の日時のラスト
Date[-1]
から4時間足6本後の予測最終日時を求めます。
関数 addBusinessDays_4h(current_date, business_days_to_add_h)
に渡す引数は datetime 型である必要があります。
Date[-1] は文字型ですので、これを datetime 型に変換します。
文字列を datetime に変換するのが strptime() 関数です。
書式は
datetime.datetime.strptime(文字列, 書式指定文字列)
です。
Date[-1] は
2022/04/15 00:00:00
のように年月日と時分秒が記述されていますので
tstr = Date[-1]
tdatetime = datetime.datetime.strptime(tstr, '%Y/%m/%d %H:%M:%S')
とすると日時のラストは datetime 型の日時に変換されます。
後は、予測最終日時取得関数を呼び出すだけで予測最終日時 lastday を求めることができます。
lastday = addBusinessDays_4h(tdatetime, 6)
答えは
lastday[1] に予測最終日までの4時間足6本が 月/日 時の文字列型で入っています。
予測最終日時は lastday[1][5] (cur_date4) に入っています。
ちなみに lastday[0] (cur_date8) には予測最終日時までの6本が 年/月/日 時の文字列型で入っています。
予測日時/予測値の一覧表作成
予測日時とその予測値の一覧表をつくるための CSV ファイルを作成します。
予測日時 lastday[0] に対応する予測値を f_result ととすると
この二つの配列 予測日時 lastday[0]と 予測値 f_result とを一緒にして CSV ファイルにすることができれば
「予測日時/予測値 一覧」
にすることができます。
取り敢えず
app = Close[-1:]
f_result = np.hstack((app, app, app, app, app, app))
とします。
予測日/予測値の配列を合体
2つの配列を pandas concat 関数を使用して横(列)方向へ連結することにします。
まずは、それぞれの配列を DataFrame 型に変換します。
これで、pandas で操作することが可能になりました。
import pandas as pd
lastday_pd = pd.DataFrame(lastday[0])
f_result_pd = pd.DataFrame(f_result)
この2つを pandas concat 関数で横(列)方向へ連結します。
横(列)方向指定 axis = 1 を忘れないでください。
df_concat = pd.concat([lastday_pd, f_result_pd], axis = 1)
これを csv ファイルとして保存します。
df_concat.to_csv(
'colab_mane_chart_go_keras_4h.csv',
header=False, index=False)
そして、header=False, index=False としてヘッダとインデックスは保存なしとしました。
ここまでで RNN 豪ドル/円4時間足予測最終日時取得説明が完了しました。
引き続き、これをファイルにまとめます。