さくら VPS Python 豪ドル/円 4時間足予測

FFT 解析 豪ドル/円4時間足予測ファイルまとめ

ここまで、FFT 解析 豪ドル/円4時間足予測ファイルについていろいろと説明してきました。
まとめると以下のようになります。
豪ドル/円ロ-ソク4時間足予測多項式フィティングファイル
sc_sele_mane_poly-tako_4h.py
からの変更点については赤字で表示しています。


  #!/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]
 
  cent = np.average(Close1)
  Close2 = Close1 - cent
  f = np.fft.fft(Close2) # フーリエ変換(FFT)
  fc = 10          # cut off freq.
  f[fc:] = 0       # low pass filter
  f_ifft = np.fft.ifft(f*2)
  f_real = f_ifft.real   # 実数部のみにする

  f_ifft_sht = f_real + cent
  p_pand = np.round(f_ifft_sht[-6:],3)
  f_ifft_sht_pd = pd.DataFrame(p_pand)
  
  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, f_ifft_sht_pd], axis = 1)
  df_concat.to_csv(
   '/home/yamada/public_html/manep-img/mane_chart_go-fil_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, f_ifft_sht[:-6],
   Idx6, f_ifft_sht[-6:],'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-fil_4h.png')#⑧
   

FFT 解析 豪ドル/円4時間足予測ファイル作成

まとめたファイルは動作確認のため TeraPad 等で作成したら、ファイル名をそれぞれ
si_fft_filter-go-02-4h.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にしました。

SFTP で si_fft_filter-go-02-4h.py をアップロード

作成した
si_fft_filter-go-02-4h.py
ファイルをユ-ザ-ディレクトリ
/home/yamada/public_html
にアップロ-ドします。
やり方がよく分からない方は
ユ-ザ-ごとの公開ディレクトリを用意する
の「SFTP でファイル アップロード」
を読んでください。

ここまでで、FFT 解析 豪ドル/円4時間足予測ファイルがまとまりました。
引き続きこのファイルの動作確認をしていきます。


  • FFT 解析 豪ドル/円4時間足予測ファイル動作確認 に進む
  • FFT 解析 豪ドル/円 4時間足予測 に戻る
  • 70VPS に戻る