将快速傅立叶变换应用于股票

问题描述

我尝试使用此代码找到股票的周期性模式。但是,我对我刚刚所做的事情有疑问。有人能告诉我这是否属实,因为我对傅立叶变换概念还很陌生。

谢谢

import numpy as np
from scipy.fftpack import fft
import matplotlib.pyplot as plt
import pandas as pd 
from pandas_datareader import data as wb

T=['SPY']
d= pd.DataFrame()
for t in T:
    d[T]=wb.DataReader(T,data_source='yahoo',start='2000-01-01')['Adj Close']
    
#--------
z = d.rolling(200).mean()
z.columns = ['SMA200']
RM = d.join(z)
RM['Residuals'] = RM['SPY']-RM.iloc[:,-1]
#--------

y = RM['Residuals'].dropna().values
N = int(y.size) # Number of sample points
T = 1/(3600*24) #One value per day
yf = fft(y)
xf = 1/(N*T)*np.arange(N//2) #We only take non negative freqs
plt.figure(figsize=(15,5))
plt.plot(xf,1/N*np.abs(yf[0:N//2])) 
plt.xlabel('Days Cycles')
plt.ylabel('Frequencies')
plt.grid()
plt.show()

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)