基于Fast Fourier Transform算法的股票技术分析实践项目问询
基于FFT的股票价格技术分析小项目
我最近做了一个结合快速傅里叶变换(Fast Fourier Transform,简称FFT)的股票技术分析小项目,核心是通过FFT挖掘股票价格的周期性特征,整个项目需要完成这几个关键任务:
- 从数据源下载指定时间段的股票每日价格数据
- 剥离股票价格中的长期趋势成分
- 对去趋势后的价格序列做平滑处理
- 应用FFT算法进行信号分析
下面是项目的Python实现代码(注:代码片段中data = quo...为输入截断,完整代码需补全quotes_historical_yahoo的调用):
# Python代码:从Yahoo Finance下载每日股票价格 from matplotlib.finance import quotes_historical_yahoo from pylab import * import numpy as np import scipy.signal as sc import matplotlib.pyplot as plt import pandas as pd # 配置参数:股票代码、时间范围 ticker='AAPL' begdate=(2013,12,6) enddate=(2015,12,20) # 下载数据(原输入截断,完整调用应为 data = quotes_historical_yahoo(ticker, begdate, enddate)) data = quo...
后续关键逻辑补充(基于项目任务)
完成数据下载后,还需要实现以下核心步骤:
- 去趋势处理:可以用线性拟合去除趋势,比如通过
numpy.polyfit拟合价格的线性趋势,再用原始价格减去趋势值得到残差序列 - 平滑处理:使用
scipy.signal中的滤波函数(比如sc.savgol_filter)对去趋势后的序列做平滑,减少噪声干扰 - FFT应用:通过
numpy.fft.fft对处理后的序列进行傅里叶变换,再计算频谱分析周期性特征,最后可以用matplotlib可视化频谱结果
内容的提问来源于stack exchange,提问作者Johannes Bambang Wirawan




