
Esta estrategia permite el seguimiento de la línea corta mediante la combinación de un indicador de regresión lineal y un promedio móvil binario. La estrategia se basa en abrir una posición cuando el precio se rompe y cerrar una posición cuando el precio se rompe de nuevo.
Esta estrategia se basa principalmente en un indicador de regresión lineal para juzgar los brotes de los precios. El indicador de regresión lineal es una subida y bajada calculada en función de los precios más altos y más bajos en un período determinado, utilizando la regresión lineal. Cuando el precio se rompe por debajo de la subida o por debajo de la bajada, consideramos que es una señal de negociación.
Además, la estrategia también introduce un promedio móvil binario para determinar la tendencia intermedia. El promedio móvil binario puede responder más rápidamente a los cambios en el precio. Cuando el precio se desvía de la vía superior, si en ese momento el promedio móvil binario ya está por encima del precio, lo que indica que actualmente está en una tendencia descendente, entonces establecemos una posición abierta.
En concreto, la estrategia incluye los siguientes puntos:
La estrategia tiene las siguientes ventajas en comparación con indicadores tradicionales como las medias móviles:
La estrategia también tiene algunos riesgos a tener en cuenta:
Para los riesgos anteriores, podemos abordarlos mediante la optimización de parámetros, el estricto cierre de pérdidas y la relajación adecuada de la amplitud de ruptura.
La estrategia también puede ser optimizada en los siguientes aspectos:
Esta estrategia, que combina el uso de un indicador de regresión lineal y un promedio móvil binario, tiene ciertas ventajas tanto en teoría como en la práctica. Mediante la optimización continua de los ajustes, se puede mejorar aún más la estabilidad y la eficacia de la estrategia. La estrategia es adecuada para operaciones de línea corta y puede generar un mejor alfa para los operadores cuantitativos.
/*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))