本文尝试在backtrader上实现R-break,并对该策略的逻辑进行一定的优化,然后在螺纹钢5分钟后复权的连续合约上进行参数优化,分析参数优化后的结果。
策略逻辑
经典的策略逻辑在网上随便一找就一大把,我们梳理下本文使用的优化后的R-break的逻辑。
-
使用前一天的最高价、最低价、收盘价三个价格的平均值作为均价-pivot
-
使用前一天的最高价与最低价的差值作为带宽-price_range
-
设置两个参数,k1和k2(k1<k2)
-
计算四个轨道,突破开多价格:r3 = pivot+k2*price_range;跌破平多开空价格:r1 = pivot+k1*price_range;跌破开空价格:s3 = pivot-k2*price_range;升破平空开多价格:s1 = pivot-k1*price_range;
-
如果没有仓位,当价格突破r3,开多;如果持有多头,当价格跌破r1,平多开空;
如果没有仓位,当价格跌破s3,开空;如果持有空头,当价格升破s1,平空开多;
-
交易在5分钟的后复权的连续合约上;
-
默认手续费万分之3可以覆盖真实的交易成本(手续费与滑点