分享一个持续新高的CTA策略:基于KDJ的顶底背离+动态区间策略

松鼠Quant
2025-04-15


图片
量化策略开发,高质量社群,交易思路分享等相关内容

工具推荐

· 参数筛选工具

· Ai帮你编写策略

· 订单流图表

· 加入2025俱乐部

· Ai投研助手课程

『正文』

ˇ

SF08策略最早发布于2019年《【SF08】:经典KD指标另类使用有奇效,股指商品双版本策略》,因软件更新迭代,SF08经历过两次代码更新以适应新的软件版本,分别是2022年8月、2024年8月。自更新日起参数固定,经过2-3年的样本外跟踪,此策略表现稳定。

2022年8月定版的:股指版本
图片
2024年8月定版的:全品种版本
策略原理:
策略逻辑并不复杂,主要计算动态区间+顶底背离+移动出场

1.使用变量将KDJ的快慢均线交叉点记录,然后获取上次交叉到本次交叉之间的周期数。

2.当KDJ出现顶底背离时,开多开空;

核心计算:   1.KDJ交叉状态记录

                    2.构建周期内的高低点区间

                    3.描述背离状态,同时保存结果;

多头进场:

1.最近一个KDJ信号是金叉,突破周期内高点;

2. 出现底背离时,开多;

空头进场:

1.最近一个KDJ信号是死叉,突破周期内低点;

2.出现顶背离时,开空;

出场:移动出场;





















def calculate_KD():    HighestValue = HighestFC(High, Length)    LowestValue = LowestFC(Low, Length)    SumHLValue = SummationFC(HighestValue-LowestValue, SlowLength)    SumCLValue = SummationFC(Close - LowestValue, SlowLength)    if SumHLValue != 0:        KValue = SumCLValue/SumHLValue*100    else:        KValue = 0    DValue = AverageFC(KValue, SlowLength)    return KValue, DValue# 动态止损计算def calculate_dynamic_stop():    if MarketPosition > 0:        DliqPoint = LowerAfterEntry - (Open*TS/1000)*liQKA    elif MarketPosition < 0:        KliqPoint = HigherAfterEntry + (Open*TS/1000)*liQKA    # 止损系数衰减    if MarketPosition != 0:        liQKA = max(liQKA - 0.1, 0.5)
图片
图片
KDJ的动态区间可以形成小波段信号,设置较窄的止盈止损完成波段操作。
图片
保存上次交叉与本次交叉时形成的高低点,自适应调整区间周期参数。

绩效报告

图片
图片
图片
图片

总结

SF08_商品策略通过结合KD指标和价格突破,配合创新的动态止损机制,提供了一个完整的交易系统。策略的核心优势在于其自适应的风险管理机制,通过吊灯式移动止损和时间衰减来动态调整止损位置。建议交易者在实盘应用前,充分测试各项参数设置,特别是止损参数的敏感度,并根据不同品种的特性进行针对性调整。

2024更新版本:SF08_Re | 基于KDJ的动态区间策略

防迷路


           图片

微   信|小松鼠-松鼠Quant

微信号|viquant01

历史源码《SF08

加入2025量化俱乐部


分享