
Esta estrategia se basa en un indicador de línea de avance dinámica, que permite el seguimiento en tiempo real de la tendencia de los precios, y emite una señal de negociación a través de la ruptura de la línea de avance. La ventaja de la estrategia es que la configuración de los parámetros es simple, el juicio de las señales es claro y es adecuado para mantener posiciones en la línea media y larga.
La estrategia utiliza indicadores de línea de avance dinámica, que incluyen varios tipos de líneas de avance, como ALMA, EMA y SMA. El principio básico es que, cuando los precios cruzan la línea de avance superior, haga más; cuando los precios cruzan la línea de avance inferior, haga hueco.
En concreto, la estrategia utiliza la media de la formación de los puntos altos y bajos, y luego toma la media de los puntos bajos como línea de señal de multiplicación, y la media de los puntos altos como línea de señal de descuento. Cuando el precio de cierre es superior a la media de los puntos bajos, hacer más; cuando el precio de cierre es inferior a la media de los puntos altos, hacer descuento.
Así, el uso de indicadores de línea media para determinar la tendencia de los precios, combinado con el principio de ruptura para emitir señales, forma una estrategia de seguimiento de tendencias sencilla y práctica.
La estrategia utiliza indicadores de línea media para determinar la dirección de la tendencia de los precios y emitir señales de negociación basadas en la teoría de la ruptura. La ventaja es que es simple y fácil de usar, adecuado para posiciones de línea media y larga, que se pueden ajustar a los cambios en el mercado a través de parámetros. Se debe tener en cuenta la prevención de los riesgos derivados de las sacudidas a corto plazo y la tenencia a largo plazo, que se puede resolver mediante un parón de pérdidas.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true)
//INPUTS
mat = input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"])
baseline = input(55, title="MA Length")
src = input(ohlc4, title="Closing Source")
offset = input(0.85, step=0.05, title="Offset (alma only)")
sigma = input(10, title="Sigma (alma only)")
useCurrentRes = input(true, title="Use Current Resolution")
resCustom = input("1440", title="Timeframe")
showsignals = input(false, title="Show Signals ?")
//BASELINE
baselinehigh =
mat=="SMA" ? sma(high,baseline) :
mat=="EMA" ? ema(high,baseline) :
mat=="WMA" ? wma(high,baseline) :
mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) :
mat=="VWMA" ? vwma(high,baseline) :
mat=="RMA" ? rma(high,baseline) :
mat=="ALMA" ? alma(high, baseline, offset, sigma) : na
baselinelow =
mat=="SMA" ? sma(low,baseline) :
mat=="EMA" ? ema(low,baseline) :
mat=="WMA" ? wma(low,baseline) :
mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) :
mat=="VWMA" ? vwma(low,baseline) :
mat=="RMA" ? rma(low,baseline) :
mat=="ALMA" ? alma(low, baseline, offset, sigma) : na
//RESOLUTION
res = useCurrentRes ? timeframe.period : resCustom
mtfhigh = security(syminfo.tickerid, res, baselinehigh)
mtflow = security(syminfo.tickerid, res, baselinelow)
//PLOTS
plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High")
plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low")
long = src > mtfhigh
short = src < mtflow
barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor")
signal = 0
signal := long ? 1 : short ? 2 : nz(signal[1])
plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00)
plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000)
alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !")
if (long)
strategy.entry("Long", strategy.long)
if (short)
strategy.entry("Short", strategy.short)