Esta estrategia combina indicadores de regresión lineal y promedios móviles exponenciales duales para implementar operaciones de seguimiento a corto plazo. La estrategia establece posiciones cortas cuando los precios rompen los rieles superior e inferior, y cierra posiciones cuando los precios vuelven a romper. Al mismo tiempo, esta estrategia también utiliza promedios móviles exponenciales duales para determinar las tendencias de precios como condición auxiliar para establecer posiciones.
Esta estrategia utiliza principalmente indicadores de regresión lineal para determinar las rupturas de precios. El indicador de regresión lineal se calcula sobre la base de los precios más altos y más bajos durante un cierto período utilizando regresión lineal para obtener rieles superiores e inferiores. Cuando los precios se rompen del rieles superior o se rompen del rieles inferior, creemos que es una señal comercial.
Además, esta estrategia también introduce promedios móviles exponenciales dobles para determinar la tendencia intermedia. Los promedios móviles exponenciales dobles pueden responder más rápido a los cambios de precios. Cuando los precios se rompen desde el carril superior, si el promedio móvil exponencial dual ya está por encima del precio en este momento, indica que actualmente está en una tendencia a la baja. Estableceremos posiciones cortas. Cuando los precios vuelvan a romper el carril superior o rompan el promedio móvil exponencial dual, aplanaremos las posiciones.
En concreto, los principales puntos de la estrategia incluyen:
En comparación con la media móvil tradicional y otros indicadores, esta estrategia tiene las siguientes ventajas:
Esta estrategia también tiene algunos riesgos:
Para los riesgos anteriores, podemos resolverlos mediante optimización de parámetros, estricta pérdida de parada, relajando adecuadamente la amplitud de avance, etc.
Esta estrategia también puede optimizarse en los siguientes aspectos:
Esta estrategia utiliza ampliamente indicadores de regresión lineal y promedios móviles exponenciales duales, lo que tiene ciertas ventajas en teoría y práctica.
/*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))