两条均线的三种交易方法
当均线金叉(短期大于长期均线)时候买进,死叉(短期小于长期)时卖出。
当价格上穿两条均线时买入,但价格下穿其中一条均线时卖出。
当两条均线都处于向上方向时买入,当两条均线都处于下跌方向时卖出。
策略参数
fastWindow = 20 # 快速均线参数
slowWindow = 55 # 慢速均线参数
指标计算
fastMa = ta.SMA(am60.close, self.fastWindow)
slowMa = ta.SMA(am60.close, self.slowWindow)
现象条件
crossOver = (fastMa[-1] > slowMa[-1]) and (fastMa[-2] <= slowMa[-2])
crossBelow = (fastMa[-1] < slowMa[-1]) and (fastMa[-2] >= slowMa[-2])
需要避免同时持有多空头寸
金叉, 多头无头寸,准备买入进场
if (crossOver) and (self.posDict[symbol + “_LONG”] == 0):
# 检查空头头寸,为0直接买入进场
if self.posDict[symbol + “_SHORT”] == 0:
self.buy(symbol, bar.close1.02, self.lots)
# 空头有持仓,先买平再买入进出
elif self.posDict[symbol + “_SHORT”] > 0:
self.cover(symbol, bar.close1.02, self.posDict[symbol + “_SHORT”])
self.buy(symbol, bar.close*1.02, self.lots)
死叉, 空头无头寸,准备卖空进场
elif (crossBelow) and (self.posDict[symbol + “_SHORT”] == 0):
# 检查多头头寸,为0直接卖出进场
if self.posDict[symbol + “_LONG”] == 0:
self.short(symbol, bar.close0.98, self.lots)
# 多头有持仓,先卖平,再卖出进场
elif self.posDict[symbol + “_LONG”] > 0:
self.sell(symbol, bar.close0.98, self.posDict[symbol + “_LONG”])
self.short(symbol, bar.close*0.98, self.lots)