
La estrategia de cruce de medias es una estrategia de negociación basada en medias móviles. Utiliza una cruz de medias móviles rápidas y medias móviles lentas como señales de compra y venta. Genera una señal de compra cuando la media rápida se rompe con la media lenta desde abajo; genera una señal de venta cuando la media rápida se rompe con la media lenta desde arriba.
La estrategia utiliza la función sma para calcular el promedio móvil simple de los períodos especificados, como promedio rápido y promedio lento. La estrategia tiene un período promedio rápido predeterminado de 18 días, que se puede ajustar mediante parámetros.
Cuando la media rápida se rompe desde abajo, se detecta una señal de cruce y se genera una señal de compra. Cuando la media rápida se rompe desde arriba, se detecta una señal de cruce y se genera una señal de venta.
La estrategia permite el comercio automático a través de señales de seguimiento y señales de salida. La entrada múltiple se activa cuando la media rápida se rompe desde abajo; la entrada vacía se activa cuando la media rápida se rompe desde arriba. La señal de salida correspondiente también se produce cuando se cruza al revés.
La estrategia de cruce de línea uniforme es una estrategia de seguimiento de tendencias más clásica y simple en general. Utiliza principalmente cruces de línea uniforme como señales de negociación, el principio es simple y directo, fácil de entender, se puede implementar y se puede ajustar a los mercados a través de parámetros. Pero también hay algunas desventajas, como la vulnerabilidad a los efectos de las oscilaciones y la tendencia de cambio, la frecuencia de la señalización, etc. Estos problemas se pueden mejorar mediante el aumento de filtros, el ajuste dinámico de los parámetros, la introducción de paradas, etc.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
MASource = input(defval = open, title = "MA Source")
MaLength = input(defval = 18, title = "MA Period", minval = 1)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)")
window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false
MA = sma(MASource,MaLength)
plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
long = crossunder(MA, close)
short = crossover(MA, close)
if (long)
strategy.entry("LongId", strategy.long, when = long)
strategy.exit("ExitLong", from_entry = "LongId", when = short)
if (short)
strategy.entry("ShortId", strategy.short, when = short)
strategy.exit("ExitShort", from_entry = "ShortId", when = long)
if (UseStopLoss)
strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)