さくら VPS Python 豪ドル/円 4時間足予測
予測最終日時取得関数まとめ
ここまでで、予測最終日取得関数の説明が完了しました。
この関数をまとめると以下のようになります。
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
予測最終日時取得関数使用
予測最終日時取得関数を使用して、
manep_4h/mane_chart_go_4h.csv デ-タの中の日時のラスト
Datea[-1]
から4時間足6本後の予測最終日時を求めます。
関数 addBusinessDays_4h(current_date, business_days_to_add_h)
に渡す引数は datetime 型である必要があります。
Datea[-1] は文字型ですので、これを datetime 型に変換します。
文字列を datetime に変換するのが strptime() 関数です。
書式は
datetime.datetime.strptime(文字列, 書式指定文字列)
です。
Datea[-1] は
2022/04/15 00:00:00
のように年月日と時分秒が記述されていますので
tstr = Datea[-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] に対応する予測値は
p_pand = np.round(p(Idx6),3)
Numpy polyfit 関数で豪ドル/円4時間足予測 参照、となっており、ここに4時間足6本分のデ-タがあります。
この二つの配列 予測日時 lastday[0]と 予測値 p_pand とを一緒にして CSV ファイルにすることができれば
「予測日時/予測値 一覧」
にすることができます。 - 予測日/予測値の配列を合体
2つの配列を pandas concat 関数を使用して横(列)方向へ連結することにします。
まずは、それぞれの配列を DataFrame 型に変換します。
これで、pandas で操作することが可能になりました。
import pandas as pd
lastday_pd = pd.DataFrame(lastday[0])
p_pand_pd = pd.DataFrame(p_pand)
この2つを pandas concat 関数で横(列)方向へ連結します。
横(列)方向指定 axis = 1 を忘れないでください。
df_concat = pd.concat([lastday_pd, p_pand_pd], axis = 1)
これを csv ファイルとして保存します。
保存するファイルフォルダ名は絶対パスで指定します。
今回は解析した結果を入れておく
/home/yamada/public_html/manep-img/
フォルダに保存することにします。
そして、header=False, index=False としてヘッダとインデックスは保存なしとします。
df_concat.to_csv(
'/home/yamada/public_html/manep-img/mane_chart_go_4h.csv', header=False, index=False)
ここまで、長々と予測グラフを表示するための準備をしてきました。
引き続き、豪ドル/円ロ-ソク4時間足と予測値を表示していきます。