Dca策略 类马丁
温馨提示:本文最后更新于2021年12月22日 21:12,若内容或图片失效,请在下方留言或联系博主。
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 = seting
self.i = 1
#参数i为第几条网格线
def step(self, i):
pd = self.seting['wangge_price']
ss = self.seting['wangge_price_scale']
if i == 1:
return pd
if i == 2:
return pd + pd * ss
if i == 3:
return pd + (pd + pd * ss) * ss
if i == 4:
return pd + (pd + (pd + pd * ss) * ss) * ss
if i == 5:
return pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss
if i == 6:
return pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss
if i == 7:
return pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss
if i == 8:
return pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss
if i == 9:
return pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss
if i == 10:
return pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss
return 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交叉后使用类似马丁的方法加仓,提高胜率