Python FFT & IFFT
豪ドル/円チャ-トロ-ソク足表示
ここまでで、豪ドル/円 CSV ダウンロ-ドデ-タ FFT 解析 プログラムの確認が終わりました。
引き続き、豪ドル/円チャ-トをロ-ソク足表示し、ロ-パス処理後の IFFT 結果と重ね合わせて
表示できるようにします。
豪ドル/円チャ-トロ-ソク足表示に関しては、
ロ-ソク足本体の表示
豪ドル/円 CSV ダウンロ-ドデ-タ グラフ化ファイルまとめ
に詳細を記述していますので、参照してください。
必要なファイル内容を以下に抜粋しました。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
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
import pandas as pd
import numpy as np
from datetime import datetime as dt
import matplotlib.pyplot as plt
from mplfinance.original_flavor import candlestick_ohlc
xl_df = pd.read_csv("/home/yasuhiro/public_html/manep/mane_chart_go.csv", encoding="cp932")
Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
Date = xl_df["日付"].values
Idx = xl_df.index
tstr = Date[-1]
tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
# 文字列をdatetimeに変換するのがstrptime()関数
# datetime.datetime.strptime(文字列, 書式指定文字列)
lastday = addBusinessDays(tdatetime, 5)
xDate = []
xD = []
for i, key in enumerate(Date):
if(i % 10 == 0):
e4 = str(key)[4:10]
e6 = e4.replace("/0", "/")
e8 = e6.lstrip("/")
xDate.append(e8)
xD.append(i)
xDate.append(lastday[1][4])
xD.append(i + 5)
Close0 = xl_df["終値(売り)"].values
# FFT解析計算はここに挿入
ohlc = zip(
Idx, Open, High, Low, Close0)
fig = plt.figure(
figsize=(8.34, 5.56)) #③
# python スクリプトと Jupyter とでは、
# matplotlib の図のサイズが違うので注意
ax = fig.add_subplot(1,1,1) #④
ax.grid()
# FFT解析結果表示はここに挿入
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.show()
# plt.savefig(
# '/home/yamada/public_html/manep-img/mane_chart_go-fil.png')
本内容を TeraPad 等で作成したら、ファイル名を適当に
si_fft_filter-go-01.py
として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の 共有フォルダ c:\vb_public_html にして、
ブラウザでアクセスできるようにします。
なお、
c:\vb_public_html
はゲスト OS Ubuntu のなかの
/home/yamada/public_html
とリンクしていて共有フォルダの関係にあります。
詳細は
ユ-ザ-ごとの公開ディレクトリを用意する
を読んでみてください。
si_fft_filter-go-01.py ファイル動作確認
それでは s_fft_ifft-go-01.py ファイルを実行してみましょう。
Ubuntu ディスクトップにある □>_ アイコンから端末画面を開き、
public_html ディレクトリに移動します。
yamada@ubuntu-20:~$ cd public_html
私の Virtual Ubuntu も 20.04LTS にアップグレ-ドしてしまいました。
yamada@ubuntu-20:~/public_html$ python3 si_fft_filter-go-01.py
として確認します。
Matplotlib の表示画面が出現し、上図のようなロ-ソク足表示が見えれば OK です。
ここまでで、豪ドル/円チャ-トロ-ソク足表示 プログラムの確認が終わりました。
引き続き、このロ-ソク足表示にロ-パス処理後の IFFT 結果を重ねて表示します。