En la carga de los recursos... Cargando...

Estrategia de negociación cruzada de la SMA

El autor:¿ Qué pasa?, Fecha: 2023-12-25 16:03:48
Las etiquetas:

img

Resumen general

Esta estrategia está diseñada sobre la base de los principios de cruz de oro y cruz muerta del promedio móvil simple (SMA). La estrategia utiliza dos SMA, a saber, SMA rápido y SMA lento. Cuando el SMA rápido cruza por encima del SMA lento desde abajo, se genera una señal de compra. Cuando el SMA rápido cruza por debajo del SMA lento desde arriba, se genera una señal de venta.

Estrategia lógica

La estrategia se basa principalmente en dos líneas de indicadores SMA. La SMA rápida tiene un período más corto y puede capturar los cambios de precio más rápido. La SMA lenta tiene un período más largo y puede filtrar algo de ruido. Cuando la SMA rápida cruza por encima de la SMA lenta desde abajo, indica que la velocidad de aumento a corto plazo es más rápida y genera una señal de compra. Cuando la SMA rápida cruza por debajo de la SMA lenta desde arriba, indica que la velocidad de caída a corto plazo es más rápida y genera una señal de venta.

Al establecer diferentes parámetros del período SMA, los parámetros de la estrategia se pueden ajustar hasta cierto punto para adaptarse a diferentes entornos de mercado.

Análisis de ventajas

  • Utiliza el conocido indicador SMA con una lógica simple
  • Parámetros de período SMA personalizables con una gran adaptabilidad
  • El intervalo de tiempo de pruebas de retroceso se puede establecer para la optimización de parámetros
  • El uso de cruce para generar señales tiene un cierto efecto de filtrado y puede reducir las operaciones incorrectas

Análisis de riesgos

  • La propia SMA tiene un efecto retardante y puede perder oportunidades a corto plazo
  • No es posible determinar el impulso de la tendencia, la eficacia de la generación de señales puede ser inestable
  • La configuración incorrecta de los parámetros del período SMA aumentará las señales falsas

Para hacer frente a los riesgos mencionados anteriormente, pueden adoptarse las siguientes medidas:

  • Acortar adecuadamente el ciclo de SMA para mejorar la sensibilidad
  • Incorporar otros indicadores para determinar el impulso de la tendencia
  • Encuentre la combinación óptima de parámetros utilizando herramientas de optimización de parámetros

Direcciones de optimización

  • Añadir estrategia de stop loss para controlar pérdidas individuales
  • Añadir el mecanismo de gestión de posiciones
  • Combinar con otros indicadores técnicos
  • Añadir algoritmos de aprendizaje automático para lograr la optimización de parámetros dinámicos

Resumen de las actividades

Esta es una estrategia típica de seguimiento de tendencias. Al aplicar el simple principio de doble cruce de promedios móviles, puede obtener buenos resultados de seguimiento cuando los parámetros se establecen adecuadamente. Sin embargo, la SMA en sí tiene un cierto efecto de retraso y no puede determinar el impulso de la tendencia. Por lo tanto, en la aplicación real, otras herramientas auxiliares deben introducirse para formar una combinación de indicadores y complementarse con medios automatizados de optimización de parámetros y control de riesgos, para hacer que la estrategia sea constantemente rentable.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')

strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/


// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open , title = "Slow MA Source")
maSlowLength   = input(defval = 46, title = "Slow MA Period", minval = 1)

// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)


// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)

Más.