
Esta estrategia se basa en el cálculo de la media SMA de varios períodos de tiempo, y toma el promedio para construir un indicador de la media. Cuando el precio sube, se genera una señal de compra cuando se rompe la media, y cuando el precio baja, se genera una señal de venta cuando se rompe la media, es una estrategia típica de cruce de la media.
Esta estrategia, que utiliza el promedio de las SMA de varios períodos de tiempo, es capaz de suavizar la curva de manera efectiva, eliminando falsas rupturas. Tiene una mayor estabilidad en comparación con una sola línea media.
Estos riesgos pueden reducirse mediante la reducción adecuada de algunos ciclos de promedio y la confirmación de otros indicadores.
La estrategia tiene una idea general clara, la integración de la línea media en varios períodos de tiempo, la capacidad de identificar las tendencias de manera efectiva, es una estrategia de práctica estable. Pero también debemos tener en cuenta su atraso y el riesgo de información errónea. Mediante la configuración de parámetros de optimización adicional, la adición de indicadores de confirmación, etc., la estrategia puede ser mejorada continuamente, lo que la convierte en una poderosa herramienta de comercio cuantitativa.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)
sma1 = sma(close,input(title="SMA 1", defval=8))
sma2 = sma(close,input(title="SMA 2", defval=21))
sma3 = sma(close,input(title="SMA 3", defval=50))
sma4 = sma(close,input(title="SMA 4", defval=100))
sma5 = sma(close,input(title="SMA 5", defval=200))
mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5
//color mediaSMA
MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)
MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)
colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )
plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)
//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")
// Strategy
//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1]
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)
//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1]
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]
strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)