本文主要是介绍Dca策略 类马丁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.策略原理
Dca:Dollar cost averaging 美元平均成本
使用均线确定趋势
均线金叉后 买入初始 N% 量
然后确定十条网格线 (网格之间间距越来越大)
每个网格线买入点的量倍投
止盈:持仓成本固定 1.5%
止损:第十条网格价格线的 N%
于普通马丁和网格不同,带有止损不会被套和爆仓
网格线和加仓量计算代码:
seting = {'base_size': 5, #初始下单量 %'safety_size': 2, #马丁初始下单 %'max_trades': 9, #最大交易数'wangge_price': 0.4 * 0.01, #网格间距'wangge_price_scale': 1.19, #网格乘数'wangge_volume_scale': 1.8, #马丁乘数
}class DcaClass():def __init__(self, seting):self.close = 0 #初始开仓价格self.seting = setingself.i = 1#参数i为第几条网格线def step(self, i):pd = self.seting['wangge_price']ss = self.seting['wangge_price_scale']if i == 1:return pdif i == 2:return pd + pd * ssif i == 3:return pd + (pd + pd * ss) * ssif i == 4:return pd + (pd + (pd + pd * ss) * ss) * ssif i == 5:return pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ssif i == 6:return pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ssif i == 7:return pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ssif i == 8:return pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ssif i == 9:return pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ssif i == 10:return pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ssreturn pd"""网格价格计算"""def long_line(self, i, side):return self.close - self.close * self.step(i) if side == 'BUY' else self.close + self.close * self.step(i)"""倍投数量计算"""def safety_order_size(self, yuer, i, side):ok = yuer * self.seting['safety_size'] / 100 * math.pow(self.seting['wangge_volume_scale'], i-1) #次方根return ok if side == 'BUY' else -ok
总结:Ma交叉后使用类似马丁的方法加仓,提高胜率
2.回测结果
原文地址: Dca策略 类马丁 - 苏慕白的博客
这篇关于Dca策略 类马丁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!