Estrategia de trading con impulso siguiendo la tendencia de fin de año (ruptura de la media móvil de 60 días)

MA SMA SLOPE EMA ATR ROC
Fecha de creación: 2025-01-17 14:55:20 Última modificación: 2025-01-17 14:55:20
Copiar: 2 Número de Visitas: 363
1
Seguir
1617
Seguidores

Estrategia de trading con impulso siguiendo la tendencia de fin de año (ruptura de la media móvil de 60 días)

Descripción general

Esta estrategia es una estrategia comercial cuantitativa que combina el seguimiento de tendencias y mecanismos de salida temporal. El núcleo de la estrategia es capturar las tendencias del mercado observando la relación entre el precio y el promedio móvil de 60 días, introduciendo al mismo tiempo un mecanismo de liquidación forzada de fin de año para controlar los riesgos. Cuando el precio de cierre rompe la media móvil de 60 días y la pendiente de la media móvil es positiva, ingrese al mercado para comprar y cierre todas las posiciones el último día de negociación de cada año.

Principio de estrategia

La estrategia se basa en los siguientes elementos centrales:

  1. Juicio de tendencia: utilice el promedio móvil simple (SMA) de 60 días como indicador para determinar la tendencia a mediano plazo y confirme la dirección de la tendencia calculando la pendiente del promedio móvil de 14 días.
  2. Señal de entrada: cuando el precio rompe la media móvil de 60 días hacia arriba y la pendiente de la media móvil es positiva, indica que el mercado puede entrar en una tendencia alcista y en este momento se genera una señal de compra.
  3. Mecanismo de salida: La estrategia adopta un mecanismo de salida de tiempo fijo y cierra todas las posiciones el último día de negociación de cada año. Este mecanismo puede evitar eficazmente el riesgo de mantener posiciones a lo largo de años.
  4. Gestión del tiempo de negociación: la estrategia tiene funciones integradas de control de rango de fechas de negociación y de evaluación de días de negociación para garantizar que las operaciones se realicen solo en días de negociación válidos.

Ventajas estratégicas

  1. Fuerte capacidad de seguimiento de tendencias: el sistema de promedio móvil puede capturar eficazmente las tendencias de mediano y largo plazo y aprovechar al máximo las oportunidades de tendencias del mercado.
  2. Control perfecto del riesgo: El mecanismo de liquidación forzosa al final del año puede controlar eficazmente el riesgo de mantener posiciones y evitar la incertidumbre causada por mantener posiciones a lo largo de los años.
  3. Reglas de operación claras: Las condiciones de entrada y salida son claras y fáciles de ejecutar y probar.
  4. Buena adaptabilidad: Los parámetros de la estrategia son altamente ajustables y pueden optimizarse según las diferentes características del mercado.

Riesgo estratégico

  1. Histéresis de la media móvil: La media móvil tiene una cierta histéresis, que puede provocar un ligero retraso en el momento de entrada.
  2. No aplicable en un mercado lateral y volátil: en un mercado lateral y volátil, pueden producirse frecuentes señales de ruptura falsas.
  3. Riesgo de liquidación fijo: La liquidación forzada al final del año puede resultar en una salida anticipada en una buena tendencia.
  4. Sensibilidad de los parámetros: el efecto de la estrategia es sensible a la configuración de los parámetros, como el período del promedio móvil.

Dirección de optimización de la estrategia

  1. Agregar indicadores de confirmación de tendencia: se pueden introducir indicadores como RSI y MACD para ayudar a evaluar las tendencias y mejorar la precisión del ingreso al mercado.
  2. Optimice el mecanismo de salida: puede agregar condiciones de stop-loss y take-profit, y no dependa completamente del tiempo para salir.
  3. Parámetros de ajuste dinámico: El período del promedio móvil se puede ajustar dinámicamente según la volatilidad del mercado.
  4. Aumentar la gestión de posiciones: introducir indicadores como el ATR para el control de posiciones para mejorar la eficiencia del uso del capital.

Resumir

Esta estrategia construye un sistema comercial relativamente sólido al combinar el seguimiento de tendencias y la gestión del tiempo. La lógica de la estrategia es simple y clara, fácil de entender e implementar y tiene buena practicidad. Se espera que mediante una optimización razonable de parámetros y la complementación de medidas de control de riesgos, esta estrategia logre rendimientos estables en las transacciones reales.

Código Fuente de la Estrategia
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Buy above 60-day MA, Sell at year-end", overlay=true, pyramiding=1)

// Define inputs for start and end dates
startDate = input(defval=timestamp("2010-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-12-31"), title="End Date")

// Define 60-day moving average
length = input.int(defval=60, title="MA Length", minval=1)
ma = ta.sma(close, length)
slope = ta.sma(ma, 14) - ta.sma(ma, 14)[1]

// Check if current bar is within the specified date range
withinDateRange = true

// Function to check if a day is a trading day (Monday to Friday)
isTradingDay(day) => true

// Check if current bar is the last trading day of the year
// Check if current bar is the last trading day of the year
isLastTradingDayOfYear = false
yearNow = year(time)
if (month == 12 and dayofmonth == 31)
    isLastTradingDayOfYear := isTradingDay(time)
else if (month == 12 and dayofmonth == 30)
    isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000)
else if (month == 12 and dayofmonth == 29)
    isLastTradingDayOfYear := isTradingDay(time) and not isTradingDay(time + 86400000) and not isTradingDay(time + 86400000 * 2)

// Plot moving average
plot(ma, color=color.blue, linewidth=2)

// Buy when closing price crosses above 60-day MA and up trend
if (withinDateRange and ta.crossover(close, ma) and slope > 0)
    strategy.entry("Buy", strategy.long)

// Sell all positions at the last trading day of the year
if (isLastTradingDayOfYear)
    strategy.close_all(comment="Sell at year-end")

// Plot buy and sell signals
//plotshape(series=ta.crossover(close, ma), location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
//plotshape(series=isLastTradingDayOfYear, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")