Estrategia cuantitativa y de largo plazo para cruces de medias móviles


Fecha de creación: 2024-02-20 15:22:12 Última modificación: 2024-02-20 15:22:12
Copiar: 0 Número de Visitas: 582
1
Seguir
1617
Seguidores

Estrategia cuantitativa y de largo plazo para cruces de medias móviles

Descripción general

Esta estrategia utiliza la forma de cruce de la línea media en diferentes períodos y el indicador RSI para determinar el momento de compra y venta en el mercado. La estrategia se puede optimizar en tiempo real mediante el ajuste de los parámetros.

Principio de estrategia

Esta estrategia se basa principalmente en la EMA para determinar el momento de comprar y vender. En combinación con el indicador RSI, se determina si se encuentra en un estado de sobrecompra o sobreventa.

Concretamente, la lógica de la señal de compra es: comprar cuando el precio cruza por debajo de la EMA20 y por encima de la EMA50 para formar un tenedor de oro, para determinar el punto de cambio de tendencia de manera más eficiente. Además, se debe satisfacer la condición de que el precio de cierre sea menor que el precio de apertura y menor que el mínimo del día anterior, lo que puede eliminar algunas falsas rupturas.

Se asignaron diferentes parámetros a las condiciones de compra anteriores y se construyeron 4 reglas de compra que corresponden a diferentes períodos de medias y cantidades de agua. Esto se puede lograr mediante la creación de posiciones por lotes, lo que permite una distribución media de la cantidad.

En el caso de la salida de una venta, el criterio es: vender cuando el precio está por encima de EMA10 y el indicador RSI muestra una señal de sobreventa; o vender cuando el precio está por debajo de EMA10 y el indicador RSI muestra una señal de sobreventa. Además, también se examinan las condiciones para cumplir con una cierta proporción de ganancias. Esto puede bloquear las ganancias, mientras que la combinación con el indicador RSI puede reducir la probabilidad de error de juicio.

Análisis de las ventajas estratégicas

La mayor ventaja de esta estrategia es que determina el punto de inflexión del mercado a través de la forma de cruce de la línea de avance, para lograr el seguimiento de la tendencia. En comparación con el sistema de línea de avance única, la técnica de cruce de doble línea de avance puede filtrar algunas señales falsas. Además, esta estrategia también introduce el indicador RSI para determinar las zonas de sobreventa y sobreventa, lo que también puede reducir el riesgo de negociación.

Otra ventaja es la creación de una cartera de carteras mediante la regulación de los parámetros. Esta cartera piramidal permite que los precios de los costos se muevan constantemente hacia abajo, obteniendo el máximo beneficio cuando se presenta una tendencia. Al mismo tiempo, se logra la dispersión de la cantidad, reduciendo el riesgo de una sola cantidad.

Análisis de riesgos estratégicos

Los principales riesgos de esta estrategia son:

  1. Los sistemas de línea media son sensibles a la latencia y no pueden reaccionar a los eventos inesperados, lo que puede conducir a la imposibilidad de detener los daños a tiempo. Este riesgo se puede reducir mediante la adición de puntos de parada.

  2. Esta política no limita el período de tiempo de compra, si la configuración errónea puede comprar demasiado pronto, lo que se queda atascado en el intervalo de liquidación. Este riesgo se puede resolver limitando el intervalo de compra.

  3. La estrategia de construcción por lotes de esta estrategia puede generar posiciones demasiado grandes para soportar el riesgo de una ruptura unilateral. Se puede reducir este riesgo mediante el ajuste de los parámetros de nivel de agua y la adición de un mecanismo de control de riesgo.

Dirección de optimización de la estrategia

Esta estrategia también puede ser optimizada en las siguientes direcciones:

  1. La adición de una estrategia de stop loss, que detiene la salida de pérdidas cuando el precio cae por debajo de ciertos niveles de soporte clave, puede controlar eficazmente el riesgo de caída.

  2. Se añade un módulo de verificación previa a la negociación para determinar la dirección de la tendencia a gran escala, y se establece una posición solo cuando la tendencia es ascendente, lo que evita el riesgo de operaciones en contra.

  3. Limitar el intervalo de compra, sólo durante un determinado período de tiempo para hacer un alza, para evitar la apertura prematura de posiciones.

  4. La introducción de algoritmos de aprendizaje automático, combinados con una combinación de múltiples factores para determinar el momento de la compra, puede aumentar la probabilidad de éxito de la estrategia.

Resumir

Este artículo describe en detalle la idea de una estrategia de cuantificación de la línea larga, que utiliza una forma de cruzamiento de doble línea uniforme en combinación con el indicador RSI para determinar el punto de entrada y obtener la máxima eficiencia mediante la construcción de un almacén por lotes. Esta estrategia puede aplicarse a la mayoría de los índices y acciones a través de ajustes de parámetros, es una estrategia de seguimiento de la línea larga más común.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA_zorba1", shorttitle="3 NIFTY RSI EMA", overlay=true)

// Input parameters
qt1 = input.int(1, title="Quantity 1", minval=1)
qt2 = input.int(2, title="Quantity 2", minval=1)
qt3 = input.int(3, title="Quantity 3", minval=1)
qt4 = input.int(4, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// RSI(14) condition
rsi_threshold = 65
rsi_crossed_above_70 = ta.rsi(close, 14) > rsi_threshold
rsi_crossed_above_70_two_days_ago = ta.rsi(close[5], 14) > rsi_threshold or ta.rsi(close[4], 14) > rsi_threshold or ta.rsi(close[3], 14) > rsi_threshold
rsi_crossed_above_70_yesterday = ta.rsi(close[1], 14) > rsi_threshold

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=1, day=1)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(1, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and ((close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_two_days_ago) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and ((close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_yesterday) and profit_condition and close < low[1] and close < low[2]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)