さくら VPS Python 豪ドル/円 4時間足予測
豪ドル/円4時間足予測まとめ
ここまで、豪ドル/円ロ-ソク4時間足予測多項式フィティングファイルについていろいろと説明してきました。
まとめると以下のようになります。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #①
import datetime
from mplfinance.original_flavor import candlestick_ohlc
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=count / 1=nocount
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
# 日はスキップ
# 月は一回のみスキップ
# 年/月/日 時刻として文字列にする
# 例 21/03/30 12~ e22, cur_date8
e11 = current_date.strftime("%y/%m/%d %H")
e22 = e11.replace("/0", "/")
e22 = e22 + "~"
e33 = e22[3:] # 21/ 削除
cur_date8.append(e22)
cur_date4.append(e33)
business_days_to_add_h -= 1
return cur_date8, cur_date4
xl_df = pd.read_csv(
"/home/yamada/public_html/manep_4h/mane_chart_go_4h.csv",
encoding="cp932")
Close = xl_df["終値(売り)"].values
app = Close[-1:]
app1 = np.hstack((app, app, app, app, app, app))
Close1 = np.hstack((Close, app1))
Idx = xl_df.index
# Idx は 0 スタ-ト
Idx6 = Idx[-6:] + 6
Idxlg = np.r_[Idx, Idx6]
z = np.polyfit(Idxlg, Close1, 9)
p = np.poly1d(z)
# print("予測値=最終4時間足 +1~+6")
# print(np.round(p(Idx6),3))
p_pand = np.round(p(Idx6),3)
# ここから結果表示
Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
Date = xl_df["日付"].values
Idx = xl_df.index
tstr = Date[-1]
tdatetime = datetime.datetime.strptime(tstr, '%Y/%m/%d %H:%M:%S')
# 文字列をdatetimeに変換するのがstrptime()関数
# datetime.datetime.strptime(文字列, 書式指定文字列)
lastday = addBusinessDays_4h(tdatetime, 6)
# 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)
df_concat.to_csv(
'/home/yamada/public_html/manep-img/mane_chart_go_4h.csv',
header=False, index=False)
xDate = []
xD = []
dayf = 0
for i, key in enumerate(Date):
day00 = str(key)[11:19]
if((dayf == 1) and (day00 == '00:00:00')):
dayf = 0
else:
if((dayf == 0) and (day00 == '00:00:00')):
e4 = str(key)[4:10]
e6 = e4.replace("/0", "/")
e8 = e6.lstrip("/")
xDate.append(e8)
xD.append(i)
dayf = 1
if(dayf == 0):
e4l = tstr[7:14]
e6l = e4l.replace("/0", "/")
e8l = e6l.lstrip("/")
xDate.append(e8l)
xD.append(i)
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),
Idx6, p(Idx6),'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_4h.png')#⑧
豪ドル/円ロ-ソク4時間足予測多項式フィティングファイル作成
まとめたファイルは動作確認のため TeraPad 等で作成したら、ファイル名をそれぞれ
sc_sele_mane_poly-tako_4h.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。
SFTP で sc_sele_mane_poly-tako_4h.py をアップロード
作成した
sc_sele_mane_poly-tako_4h.py
ファイルをユ-ザ-ディレクトリ
/home/yamada/public_html
にアップロ-ドします。
やり方がよく分からない方は
ユ-ザ-ごとの公開ディレクトリを用意する
の「SFTP でファイル アップロード」
を読んでください。
ここまでで、豪ドル/円ロ-ソク4時間足予測多項式フィティングファイルがまとまりました。
引き続きこのファイルの動作確認をしていきます。