Win11 WSL2 Ubuntu Python RNN

WSL2 Python RNN Keras 予測最終日取得

ここまでで予測値プロット表示のための X 軸日付処理が完了しました。
引き続き、予測最終日を取得して行きます。
予測最終日を取得するには
日付 from_date から 日数 add_days 後の日付 current_date を求める関数
addBusinessDays(from_date, add_days)
を利用すると求めることができます。
addBusinessDays 関数の作成方法については
Python で 豪ドル/円チャ-ト を探求-予測最終日取得
に説明がありますので参考にしてください。
予測最終日取得関数は以下のようになります。

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

予測最終日取得関数使用

具体的に予測最終日取得関数を使用します。
mane_chart_go_long.csv デ-タの中の日付のラスト
Date[-1]
から5平日後の予測最終日を求めます。
関数 addBusinessDays(from_date, add_days)
に渡す引数は datetime 型である必要があります。
Date[-1] は文字型ですので、これを datetime 型に変換します。
文字列を datetime に変換するのが strptime() 関数です。
書式は
datetime.datetime.strptime(文字列, 書式指定文字列)
です。
ライブラリを取り込む時に、
import datetime
from datetime import datetime as dt
と書くと
dt.strptime(文字列, 書式指定文字列)
と省略して書くことができます。
Date[-1] は
2020/04/15 10:00:00
のように年月日と時分秒が記述されていますので
tstr = Date[-1]
tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
とすると日付のラストは datetime 型の日付に変換されます。
後は、予測最終日取得関数を呼び出すだけで予測最終日 lastday を求めることができます。
lastday = addBusinessDays(tdatetime, 5)
答えは
lastday[1] に予測最終日までの5日間が 月/日 の文字列型で入っています。
予測最終日は lastday[1][4] に入っています。
ちなみに lastday[0] には予測最終日までの5日間が 年/月/日 の文字列型で入っています。
xData の X 軸の目盛り日付と
xD の日付表示位置に lastday を付け加えます。
xDate.append(lastday[1][4])
xD.append(i + 5)

WSL2 Python RNN Keras ロ-ソク足本体表示

ロ-ソク足表示を進めます。
そのスクリプトの説明は
Python Colaboratory--ロ-ソク足本体の表示
にあります。
また、ファイルとしてまとまったものが
Python Colaboratory--ロ-ソク足表示ファイルまとめ①
にありますのでこれらを流用します。
①との差分は赤字で表示しています。


import matplotlib.pyplot as plt
from mplfinance.original_flavor import candlestick_ohlc
xl_df = pd.read_csv(
  "/home/yamada/public_html/manep-w/mane_chart_go_long.csv", encoding="cp932")
)
Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
Close = xl_df["終値(売り)"].values
Date = xl_df["日付"].values
Idx = xl_df.index

raw_data0 = Close.copy()
raw_data = Close.copy()
Close1 = Close.copy()
Date_100 = Date[-100:]
xDate = []
xD = []
for i, key in enumerate(Date_100):
  if(i % 10 == 0):
    e4 = str(key)[4:10]
    e6 = e4.replace("/0", "/")
    e8 = e6.lstrip("/")   
    xDate.append(e8)
    xD.append(i)
    
Idx_100 = Idx[-100:] - Idx[-100]    
Close_100 = Close1[-100:]   
Open_100 = Open[-100:]
High_100 = High[-100:]
Low_100 = Low[-100:]   
ohlc = zip(
Idx_100, Open_100, High_100, Low_100, Close_100)
fig = plt.figure(
  figsize=(8.34, 5.56))
ax = fig.add_subplot(1,1,1)
ax.grid()
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_keras.png')
)

WSL2 Python RNN Keras 予測値の保存

予測値結果を保存します。
2つの配列(予測日と予測値)を pandas concat 関数を使用して横(列)方向へ連結することにします。
まずは、それぞれの配列を DataFrame 型に変換します。
これで、pandas で操作することが可能になりました。
import pandas as pd
print("予測値=最終日+1~+5日")
valhe = np.round(f_result, 3)#3桁まで表示
valhe_pd = pd.DataFrame(valhe)
lastday_pd = pd.DataFrame(lastday[0])
この2つを pandas concat 関数で横(列)方向へ連結します。
横(列)方向指定 axis = 1 を忘れないでください。
df_concat = pd.concat([lastday_pd, valhe_pd], axis = 1)
これを csv ファイルとして保存します。
保存するファイルフォルダ名は絶対パスで指定します。
そして、header=False, index=False
としてヘッダとインデックスは保存なしとします。
df_concat = pd.concat([lastday_pd, valhe_pd], axis = 1)
print(df_concat)
df_concat.to_csv(
'/home/yamada/public_html/manep-img/mane_chart_go_keras_long.csv',
header=False, index=False)

ここまで、WSL2 Python RNN 予測ファイルについて小出しにその詳細を説明してきました。 引き続き、これを一つのファイルにまとめます。


  • WSL2 Python RNN 予測ファイルまとめ に進む
  • WSL2 Python RNN Keras 予測値プロット に戻る
  • WSL2 Python RNN Keras モデルの構築 に戻る
  • WSL2 Python RNN 検証デ-タセット作成 に戻る
  • Win11 WSL2 Ubuntu Python RNN 概要 に戻る
  • 70VPS に戻る