专栏名称: Python中文社区
致力于成为国内最好的Python开发者学习交流平台,这里有关于Python的国内外最新消息,每日推送有趣有料的技术干货和社区动态。 官方网站:www.python-cn.com
目录
相关文章推荐
Python中文社区  ·  量化交易复盘:如何用这套简单的TSI+EMA ... ·  昨天  
Python爱好者社区  ·  碉堡了!用deepseek写了篇一区论文 ·  2 天前  
Python爱好者社区  ·  热议:为什么 DeepSeek ... ·  3 天前  
Python开发者  ·  年薪154W!真心建议大家冲一冲新兴领域,工 ... ·  4 天前  
Python开发者  ·  北京大学出的第三份 DeepSeek ... ·  2 天前  
51好读  ›  专栏  ›  Python中文社区

量化交易复盘:如何用这套简单的TSI+EMA策略获得2890%的超高回报?

Python中文社区  · 公众号  · Python  · 2025-03-06 08:46

正文

图片

大家好,我是橙哥!在现代投资市场中,量化交易凭借其依靠数据和算法来做出理性决策的优势,成为了越来越多投资者的核心工具。今天,我们将结合一个实际的量化交易策略,向你展示如何通过 真实强度指数(TSI) 指数移动平均线(EMA) 来构建一个有效的趋势跟踪策略,并通过回测结果来验证其可行性。

惊人的回测结果:策略回报爆炸性增长

在回测过程中,我们采用了从 2020年1月2日到2024年12月31日 的数据进行模拟交易。最初的投资金额为 100,000元 ,最终的资金达到了 2,990,064元 ,也就是赚取了 2890.06% 的回报! 请在文末获取本文完整源代码和回测结果。

不仅如此,策略的 最大回撤 37.53% ,虽然回撤在某些市场条件下较大,但回报的增长明显高于风险,展示了这个策略的强大盈利潜力。接下来,我们将逐步介绍如何通过代码构建这个策略,每一部分代码的功能和背后的逻辑。

一、数据预处理:保证数据质量

在构建量化交易策略时,数据质量至关重要。为了确保后续的分析不受数据错误或缺失的影响,我们需要先对数据进行清洗和处理。具体来说,我们需要确保数据是数值类型,且没有缺失值,日期格式也要符合要求。

这段代码首先将数据框中的 开盘价(Open) 最高价(High) 最低价(Low) 收盘价(Close) 成交量(Volume) 转换为数值型数据,确保在后续计算中不会因为数据类型不匹配导致出错。使用 errors='coerce' 选项,无法转换的值会被处理为缺失值(NaN),然后通过 dropna() 删除这些缺失值。最后,我们将数据的索引列转换为日期时间格式,以便后续的时间序列处理。

二、计算 TSI 和 EMA:核心技术指标的计算

在量化交易策略中,技术指标是帮助我们做出买卖决策的关键工具。在这个策略中,我们使用 真实强度指数(TSI) 指数移动平均线(EMA) 作为核心指标。TSI 用于衡量市场的动量,EMA 用于识别趋势。

在这段代码中,我们通过自定义的 calculate_tsi() 函数计算了 TSI 指标, long_period short_period 分别是 TSI 的长期周期和短期周期参数。然后,通过 calculate_ema() 函数计算 EMA 指标, ema_period 是 EMA 的周期参数。

  • TSI: 当 TSI 为正时,表示市场动量向上,适合买入;当 TSI 为负时,表示市场动量向下,适合卖出。
  • EMA: EMA 是一个加权的移动平均线,它能 够平滑价格数据,帮助我们判断价格是否处于上涨或下跌趋势。

三、生成买入和卖出信号:策略的核心逻辑

一旦我们计算出 TSI 和 EMA,就可以根据这两个指标来生成买入和卖出信号。具体规则如下:

  • 买入信号: 当 TSI 大于零且收盘价高于 EMA 时,市场存在上涨动能,发出买入信号。

  • 卖出信号: 当 TSI 小于零且收盘价低于 EMA 时,市场可能下跌,发出卖出信号。

在这里,我们根据 TSI 和 EMA 的值生成了入场和退出信号。具体而言,当 TSI 为正并且收盘价高于 EMA 时,策略发出买入信号;当 TSI 为负且收盘价低于 EMA 时,策略发出卖出信号。这种基于趋势的信号有助于我们在正确的时间进场并及时退出。

四、回测:验证策略的效果

在我们生成了交易信号后,接下来就是验证策略是否有效的关键步骤——回测。通过回测,我们能够看到这个策略在历史数据中的表现,判断它是否能够在真实市场中盈利。

在这段代码中,我们使用了网格搜索的方法,对 TSI EMA 的多个参数组合进行了测试。 tsi_long_range tsi_short_range ema_range 分别定义了 TSI 长期周期、短期周期和 EMA 周期的不同取值范围。通过遍历这些参数组合,我们可以找到表现最好的参数配置,从而优化策略的回报。

五、回测结果:评估策略表现

回测结果提供了策略在历史数据上的详细表现。最终的回测结果显示,通过采用 10 周期的 TSI 长期周期 5 周期的 TSI 短期周期 30 周期的 EMA 配置,策略在过去几年中实现了







请到「今天看啥」查看全文