社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python量化策略:基于拉普拉斯滤波的趋势交易策略

灵度智能 • 7 月前 • 346 次点击  

免责声明:本文所有内容‬仅用于交流学习‬,不构成任何投资建议!投资有风险,入市需谨慎!

策略介绍


一、核心原理:从拉普拉斯变换到趋势滤波


拉普拉斯变换将时域价格信号转为复频域,便于设计低通滤波器以保留趋势、滤除噪声。其离散化后得到拉普拉斯趋势滤波器(LLT),本质是一阶低通滤波,与 EWMA 数学等价,但推导自连续时间系统,理论更清晰。


基于拉普拉斯变换的趋势交易策略,核心在于利用拉普拉斯趋势滤波器从价格序列中提取平滑、低延迟的趋势信号。相较于传统移动平均,该方法从连续时间信号处理理论出发,通过指数衰减加权实现更精准的趋势估计。


实现步骤


滤波器设计


拉普拉斯趋势滤波器可视为一阶低通滤波器的离散化表达。其连续时间传递函数为 



其中 λ 决定截止频率,控制对价格变化的敏感度。离散化后,趋势值 τ_t 满足递推公式:




其中 p_t 为当前价格,Δt 为采样间隔。这与指数加权移动平均(EWMA)形式一致,但其参数 λ 直接源于连续系统,便于通过信号带宽进行理论设计。


参数选择


λ 是关键参数,通常根据市场周期设定。例如,若交易标的呈现 20 日周期,则可设 λ=2π/20≈0.314,使滤波器有效滤除高频噪声,保留主要趋势。实践中常结合价格波动率或通过优化回测确定。


交易信号生成


使用滤波器输出 τ_t 作为趋势方向。常见策略包括:


  • 交叉法:当价格 p_t 上穿 τ_t 时做多,下穿时做空。

  • 偏离法:计算价格与趋势的偏离度 d_t=(p_t−τ_t)/τ_t,当偏离超过历史阈值(如±2%)时入场,回归时出场。

  • 趋势跟随:直接依据 τ_t 的斜率方向持仓。


优势与注意事项


拉普拉斯滤波器因指数衰减权重,对近期价格反应灵敏,且理论框架明确,便于结合频谱分析自适应调整 λ。但需注意:在震荡市中易产生虚假信号,建议叠加波动率过滤(如ATR阈值)或仅用于高趋势性品种。参数 λ 过大会引入噪声,过小则滞后显著,需通过样本外验证权衡。


通过将信号处理理论与交易实践结合,该方法为趋势跟踪提供了兼具数学严谨性和实用性的工具,尤其适合算法交易中的实时趋势识别。


策略实现


【 扫描文末二维码加入星球获取完整源码 】


源码


拉普拉斯价格滤波函数



构建交易策略



回测评估



绩效指标计算



策略参数


场景
推荐 s 值
特点
短周期交易(数周到数月)
0.05 ~ 0.1
响应较快,能捕捉中短期趋势
长周期投资(数年)
0.005 ~ 0.01
响应缓慢,强平滑,过滤大部分噪声
样本外测试
需在训练集上优化
可使用网格搜索或贝叶斯优化


回测效果


中短周期


指标
拉普拉斯策略
买入持有
总收益
136.42%
29.78%
年化收益率
355.53%
58.31%
年化波动率
32.07%
45.25%
夏普比率
11.09
1.29
最大回撤
-9.40%
-25.26%


长周期


指标
拉普拉斯策略
买入持有
总收益
2970.49%
625.72%
年化收益率
97.29%
48.18%
夏普比率
1.83
0.71
最大回撤
-40.61%
-84.62%



▌关于我们

我们致力于人工智能、量化交易领域前沿研究,分享前沿论文、模型代码、策略实现。如有相关需求,请私信与我们联系。

▌商务合作

请加微信“LingDuTech163”,或公众号后台私信“联系方式”。


关注【灵度智能】公众号,获取更多AI资讯。




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/194544