该策略是商品期货交易软件TB(TradeBlazer)内置的策略。现在根据原版思想,改为DC通道版。算力充足的同学也可以按原版的来,效果可能比较好。
本帖只演示了DC通道版,感兴趣的同学可以自行魔改为布林版,均线版,各种各样的版……
策略说明:
1.系统将当前价格和MA之差定义为DRD
2.计算RDV: N天DRD的加和除以DRD绝对值的加和
入场条件:
1.设置ETLong为入市阈值,如果RDV>ETLong,则入场做多
2.设置ETShort为入市阈值,如果RDV<ETShort,则入场做空
出场条件:
1.如果RDV下穿0, 多头平仓
2.如果RDV上穿0, 空头平仓
根据原版的说明可知:
DRD = close - ma
RDV = sum(DRD,N) / sum(abs(DRD),N)
进出场需要阈值
为了改成参数少的DC版,我们需要对RDV改造:
1.DRD = close - ma
2.RDV = sum(DRD,N)
3.UPPER = max(RDV,N)
4.LOWER = min(RDV,N)
5.MEDIAN = mean(RDV,N)
至此,我们的改造就完成了。通过观察可以发现,该策略跟均线收缩策略极为类似,但更加灵敏,闹大洞开的同学可以进一步魔改迭代。下面是代码,不再另做注释。适用周期:挺广的。5分钟到1H吧。
import stop
import talib as ta
def signal_rdv(df,para=[90,10]):
n = int(para[0]) #时间周期
stop_loss_pct = para[1] #止损
df['atr'] = ta.ATR(df.high,df.low,df.close,n) #计算atr值
df['ma'

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



