本策略的核心思想是利用快速移动平均线和慢速移动平均线的金叉死叉来判断行情趋势,实现低风险交易。当快速移动平均线上穿慢速移动平均线时,表示行情可能进入上涨趋势,此时做多;当快速移动平均线下穿慢速移动平均线时,表示行情可能进入下跌趋势,此时做空。
本策略使用的是价格的指数移动平均线。移动平均线是一种趋势分析指标,它平滑价格数据来判断价格走势。快速移动平均线参数较小,能更快速地响应价格变化;慢速移动平均线参数较大,响应价格变化较为缓慢。当快速移动平均线上穿慢速移动平均线时,表示行情可能进入多头市场,应该建立多头头寸;当快速移动平均线下穿慢速移动平均线时,表示行情可能进入空头市场,应该建立空头头寸。
具体来说,本策略中定义了两个指数移动平均线,快速移动平均线周期为21,慢速移动平均线周期为55。策略通过判断两条移动平均线的金叉死叉来决定入场出场。当快速移动平均线上穿慢速移动平均线时,做多;当快速移动平均线下穿慢速移动平均线时,做空。
此外,本策略还利用ATR这个波动率指标来设置止损和止盈。ATR可以有效地评估市场波动程度。止损设置为价格离ATR 1.5倍距离;止盈设置为价格接近ATR 1倍距离。
本策略具有以下优势:
本策略也存在一定的风险:
针对以上风险,我们可以从以下几个方面进行优化:
本策略可以从以下几个方面进行深入优化:
利用机器学习方法自动优化移动平均线参数,使策略更具自适应性。
增加基本面因素作为过滤条件,避免在重要利空消息到来时依然盲目做多做空。例如美联储利率决议、重要宏观数据发布等。
设定波动率的上下限,当ATR过大或过小时,暂停交易,避免极端市场环境下的亏损。
结合股票基本面指标,如PE市盈率、成交量放大效应等,设定动态的止损止盈幅度。
增加仓位管理机制,当利润率达到一定水平时,逐步减少仓位;当出现较大亏损时,暂停交易一段时间等。
本策略整体运行思路清晰简单,通过双移动平均线交叉来判断行情趋势,属于一种典型的趋势跟踪策略。同时,策略还很好地控制了风险,利用ATR指标来动态设定止损止盈位。通过进一步的优化,可以使策略在回撤控制和顺势操盘方面都得到提升,从而获得更稳定的投资业绩。
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="No-Nonsense Strategy Template [WM]", overlay = true) price = close // // ATR stuff // atrLength = input(14, "ATR Length") slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP1") atr = atr(atrLength) // // Strategy under test. MA crossover // fastInput = input(21) slowInput = input(55) fast = ema(price, fastInput) slow = ema(price, slowInput) plot(fast, color = red) plot(slow, color = blue) goLong = crossover(fast, slow) goShort = crossunder(fast, slow) if (goLong) sl = price - atr * slMultiplier tp = price + atr * tpMultiplier strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop = sl, limit = tp) if (goShort) sl = price + atr * slMultiplier tp = price - atr * tpMultiplier strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop = sl, limit = tp)