本策略通过结合线性回归指标与双指数移动平均线,实现短线跟踪操作。策略基于价格突破上下轨时建仓做空,在价格重新突破时平仓。同时,该策略还利用双指数移动平均线判断价格趋势,作为建仓的辅助条件。
本策略主要通过线性回归指标来判断价格的突破。线性回归指标是根据一定周期内的最高价和最低价,采用线性回归法计算出的上下轨。当价格从上轨下穿或从下轨上穿时,我们认为是一个交易信号。
另外,该策略还引入双指数移动平均线判断中间趋势。双指数移动平均线可以更快响应价格变化。当价格从上轨下穿,如果此时双指数移动平均线已经位于价格上方,表明目前处于下跌趋势,这时我们建立做空仓位。当价格重新突破上轨或突破双指数移动平均线时,我们平掉仓位。
具体来说,策略主要包括以下几个要点:
相比传统移动平均线等指标,该策略具有以下几点优势:
该策略也存在一些风险需要注意:
对于以上风险,我们可以通过参数优化、严格止损、适当放宽突破幅度等方法来解决。
该策略还可从以下几个方面进行优化:
本策略综合运用线性回归指标和双指数移动平均线,在理论和实践上均有一定优势。通过不断优化调整,可以进一步提高稳定性和策略效果。该策略适合短线操作,可为量化交易者带来较好的alpha。
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy('LR&SSL_Short', overlay=true) startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp(9999,1,1,0,0) _testPeriod() => true len = input(title="Period", defval=89) smaHigh = linreg(high, len, 0) smaLow = linreg(low, len, -1) Hlv = 0.0 Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? smaHigh : smaLow sslUp = Hlv < 0 ? smaLow : smaHigh plot(sslDown, linewidth=2, color=color.red) plot(sslUp, linewidth=2, color=color.lime) length = input(200, title="DEMA") d1 = ema(close, length) d2 = 2 * d1 - ema(d1, length) trendColour = d2 > d1 ? #AAFFAA : #FFAAAA dema=sma(d2,length) turnGreen = d2 > d1 and d2[1] <= d1[1] turnRed = d2 <= d1 and d2[1] > d1[1] up =turnGreen down=turnRed plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) plotshape(up, title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) plot(dema, color = trendColour,linewidth=3 ,transp = 0) bgcolor(close > dema ? color.green : color.red) strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod()) strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))