
La estrategia de cruce de la media rápida es una estrategia de media móvil simple. Utiliza dos medias móviles, una más rápida y otra más lenta, para indicar que el precio puede subir cuando la media móvil rápida cruza la media móvil lenta desde abajo; y una más suave cuando la media móvil rápida cruza la media móvil lenta desde arriba hacia abajo, para indicar que el precio puede bajar.
La estrategia utiliza dos promedios móviles, uno rápido y otro lento. En concreto, el promedio móvil rápido tiene una longitud predeterminada de 25 ciclos y el promedio móvil lento tiene una longitud predeterminada de 62 ciclos. La estrategia permite elegir entre diferentes tipos de promedios móviles, incluyendo SMA, EMA, WMA, RMA y VWMA.
Cuando el promedio móvil rápido cruza el promedio móvil lento desde abajo, indica que el precio a corto plazo comienza a romper el precio a largo plazo, es una señal de cruce de oro típica, que indica que el precio puede entrar en el canal ascendente, en este caso la estrategia hace más; cuando el promedio móvil rápido cruza el promedio móvil lento desde arriba, indica que el precio a corto plazo comienza a caer por encima del precio a largo plazo, es una señal de cruce de muerte, que indica que el precio puede entrar en el canal descendente, en este caso la estrategia de liquidación.
De esta manera, se puede determinar la tendencia y la dirección de los precios a través de la intersección de la línea media rápida y lenta, y hacer una posición más alta o más baja en consecuencia, lo que genera ganancias.
La estrategia tiene las siguientes ventajas:
En general, la estrategia utiliza el cruce de la línea media rápida y lenta como una señal de negociación central, con una gran capacidad para determinar la tendencia futura de los precios, y puede obtener buenos beneficios basados en el seguimiento de tendencias, lo que vale la pena aplicar en la práctica.
La estrategia también tiene algunos riesgos potenciales:
Estos riesgos pueden ser controlados y mejorados mediante:
Las principales áreas de optimización de la estrategia incluyen:
Selección de periodicidad de la línea media rápida y la línea media lenta: el parámetro predeterminado actual puede no ser el óptimo, se puede probar con diferentes periodicidades para encontrar la mejor configuración
Selección de los tipos de promedios móviles: actualmente hay varios tipos de promedios móviles disponibles para probar qué tipo funciona mejor para una variedad específica
Combinación con otros indicadores o estrategias: puede intentar combinar con un indicador de volatilidad, un indicador de precio de medida o una estrategia de seguimiento de tendencias para mejorar la eficacia
Optimización de la adaptabilidad de los parámetros: permite que los parámetros del ciclo de la media se ajusten automáticamente en función de la volatilidad y la liquidez del mercado, lo que mejora la estabilidad
Ayuda de modelos de IA: utiliza algoritmos de aprendizaje automático para analizar grandes cantidades de datos y buscar automáticamente las reglas de negociación óptimas
A través de estos medios de optimización, se espera mejorar aún más el rendimiento y la estabilidad de las estrategias.
La estrategia de cruce de línea media rápida y lenta es una estrategia de seguimiento de tendencias muy práctica en general. Capta las leyes de cambio de precios en diferentes escalas de tiempo y determina la posible tendencia y dirección futura de los precios a través de la ruptura de la línea media rápida y la línea media lenta. La estrategia es simple, clara, fácil de entender y implementar, los parámetros se pueden personalizar con flexibilidad, a la vez que tiene una alta fiabilidad, un alto grado de automatización, un amplio rango de aplicación y una gran escalabilidad.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//Author @divonn1994
initial_balance = 100
strategy(title='Fast v Slow Moving Averages Strategy', shorttitle = 'Fast v Slow', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)
//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------
fastBars = input.int(25, "Fast moving average length", minval=1)
slowBars = input.int(62, "Slow moving average length", minval=1)
strategy = input.string("EMA", "MA type", options = ["EMA", "VWMA", "SMA", "RMA", "WMA"])
redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')
startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')
endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')
//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
inDateRange = true
maMomentum = switch strategy
"EMA" => (ta.ema(close, fastBars) >= ta.ema(close, slowBars)) ? 1 : -1
"SMA" => (ta.sma(close, fastBars) >= ta.sma(close, slowBars)) ? 1 : -1
"RMA" => (ta.rma(close, fastBars) >= ta.rma(close, slowBars)) ? 1 : -1
"WMA" => (ta.wma(close, fastBars) >= ta.wma(close, slowBars)) ? 1 : -1
"VWMA" => (ta.vwma(close, fastBars) >= ta.vwma(close, slowBars)) ? 1 : -1
=>
runtime.error("No matching MA type found.")
float(na)
fastMA = switch strategy
"EMA" => ta.ema(close, fastBars)
"SMA" => ta.sma(close, fastBars)
"RMA" => ta.rma(close, fastBars)
"WMA" => ta.wma(close, fastBars)
"VWMA" => ta.vwma(close, fastBars)
=>
runtime.error("No matching MA type found.")
float(na)
slowMA = switch strategy
"EMA" => ta.ema(close, slowBars)
"SMA" => ta.sma(close, slowBars)
"RMA" => ta.rma(close, slowBars)
"WMA" => ta.wma(close, slowBars)
"VWMA" => ta.vwma(close, slowBars)
=>
runtime.error("No matching MA type found.")
float(na)
//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------
if ta.crossover(maMomentum, 0)
if inDateRange
strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
if inDateRange
strategy.close('long')
//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------
plot(series = maOn == "On" ? fastMA : na, title = "Fast Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
plot(series = maOn == "On" ? slowMA : na, title = "Slow Moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)