CTA策略05_AtrRsiStrategy

本文探讨了一种基于RSI和ATR指标的量化交易策略,通过参数优化实现了收益最大化。研究发现,rsiLength和rsiEntry是关键参数,最优组合为rsiLength=25,rsiEntry=30,该策略在多数月份表现稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本思路

空仓并且atr>atrma:
    if rsiValue>rsiBuy:
        开多单
    elfi rsiValue<rsiSell:
        开空单
有多头持仓:
    if self.rsiValue < self.rsiSell:
        平多单,开空单
有空头持仓:
    if self.rsiValue > self.rsiBuy:
        平空单开多单

回测参数

    atrLength = 22          # 计算ATR指标的窗口数   
    atrMaLength = 10        # 计算ATR均线的窗口数
    rsiLength = 5           # 计算RSI的窗口数
    rsiEntry = 35           # RSI的开仓信号
    self.rsiBuy = 50 + self.rsiEntry
    self.rsiSell = 50 - self.rsiEntry

回测结果

参数优化

回测图中看到关键参数:
对于参数:

    atrLength = 22          # 计算ATR指标的窗口数  
    atrMaLength = 10        # 计算ATR均线的窗口数

二者只控制第一笔开仓交易时间/方向(类似择时,后续所有交易都非多即空).所以这2个参数可以暂时不理会。
较为重要的2个参数

    rsiLength = 5           # 计算RSI的窗口数
    rsiEntry = 35           # RSI的开仓信号

由于rsiLength控制rsi的计算周期,rsiEntry控制了买卖阈值,由于阈值对称的所以只使用一个变量就足够了,   参数优化

setting.addParameter('rsiLength', 5,55,10) 
setting.addParameter('rsiEntry', 15,35,5)

结果:

2019-04-16 17:04:39.688957	参数:{'rsiLength': 15, 'rsiEntry': 35},目标:1009033.0454
2019-04-16 17:04:39.688968	参数:{'rsiLength': 25, 'rsiEntry': 30},目标:1009033.0454
2019-04-16 17:04:39.688978	参数:{'rsiLength': 25, 'rsiEntry': 35},目标:1009033.0454
2019-04-16 17:04:39.688987	参数:{'rsiLength': 35, 'rsiEntry': 30},目标:1009033.0454
2019-04-16 17:04:39.688995	参数:{'rsiLength': 45, 'rsiEntry': 25},目标:1009033.0454
2019-04-16 17:04:39.689004	参数:{'rsiLength': 55, 'rsiEntry': 25},目标:1009033.0454
2019-04-16 17:04:39.689013	参数:{'rsiLength': 15, 'rsiEntry': 25},目标:1008501.46148
2019-04-16 17:04:39.689024	参数:{'rsiLength': 45, 'rsiEntry': 30},目标:1007747.00682
2019-04-16 17:04:39.689033	参数:{'rsiLength': 55, 'rsiEntry': 30},目标:1007747.00682
2019-04-16 17:04:39.689042	参数:{'rsiLength': 15, 'rsiEntry': 30},目标:1007084.02996
2019-04-16 17:04:39.689051	参数:{'rsiLength': 25, 'rsiEntry': 20},目标:1006781.83798
2019-04-16 17:04:39.689059	参数:{'rsiLength': 45, 'rsiEntry': 20},目标:1006625.14456
2019-04-16 17:04:39.689067	参数:{'rsiLength': 55, 'rsiEntry': 20},目标:1006625.14456
2019-04-16 17:04:39.689076	参数:{'rsiLength': 35, 'rsiEntry': 25},目标:1006493.14852
2019-04-16 17:04:39.689086	参数:{'rsiLength': 5, 'rsiEntry': 35},目标:1006110.091
2019-04-16 17:04:39.689096	参数:{'rsiLength': 35, 'rsiEntry': 15},目标:1005903.72738
2019-04-16 17:04:39.689105	参数:{'rsiLength': 45, 'rsiEntry': 15},目标:1005598.38058
2019-04-16 17:04:39.689114	参数:{'rsiLength': 25, 'rsiEntry': 25},目标:1005228.646
2019-04-16 17:04:39.689123	参数:{'rsiLength': 35, 'rsiEntry': 20},目标:1004246.28134
2019-04-16 17:04:39.689131	参数:{'rsiLength': 55, 'rsiEntry': 15},目标:1003646.62962
2019-04-16 17:04:39.689140	参数:{'rsiLength': 35, 'rsiEntry': 35},目标:1003168.86948
2019-04-16 17:04:39.689148	参数:{'rsiLength': 45, 'rsiEntry': 35},目标:1003168.86948
2019-04-16 17:04:39.689157	参数:{'rsiLength': 55, 'rsiEntry': 35},目标:1003168.86948
2019-04-16 17:04:39.689166	参数:{'rsiLength': 15, 'rsiEntry': 20},目标:1001145.649
2019-04-16 17:04:39.689174	参数:{'rsiLength': 25, 'rsiEntry': 15},目标:1000352.44112
2019-04-16 17:04:39.689183	参数:{'rsiLength': 15, 'rsiEntry': 15},目标:1000313.52388
2019-04-16 17:04:39.689192	参数:{'rsiLength': 5, 'rsiEntry': 30},目标:999301.5286
2019-04-16 17:04:39.689200	参数:{'rsiLength': 5, 'rsiEntry': 25},目标:994286.31328
2019-04-16 17:04:39.689209	参数:{'rsiLength': 5, 'rsiEntry': 20},目标:990900.77608
2019-04-16 17:04:39.689218	参数:{'rsiLength': 5, 'rsiEntry': 15},目标:989164.8178

最终选择参数: 'rsiLength': 25,'rsiEntry': 30,对应收益1009033.0454

参数稳定性测试

测试各个月份最优结果的下月表现

代码段 小部件

结论:参数组合'rsiLength': 25,'rsiEntry': 30,稳定性尚可02-03月份表现不佳,但是也是正收益
(实际还需要参考历史最大回撤,近20日最大回撤等,由于中间数据没保存下来,就不再重新跑了.)

回测图:

可见这个策略其实是有问题的,仅仅开仓一次,偶然因素很大,这也是回测时为何topn的收益等完全一样的原因.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值