Estrategia de negociación inteligente con retroceso de precios MA100 de rango múltiple

SMA MA ATR
Fecha de creación: 2025-02-19 11:12:51 Última modificación: 2025-02-19 11:12:51
Copiar: 0 Número de Visitas: 693
1
Seguir
1617
Seguidores

Estrategia de negociación inteligente con retroceso de precios MA100 de rango múltiple

Descripción general

La estrategia es un sistema de trading de rejilla multi-zona basado en la media móvil MA100. Se realiza mediante la creación de posiciones por lotes mediante el establecimiento de diferentes rangos de retracción de precios (−8, 15 y 20 por ciento), se compra gradualmente cuando hay una caída más grande en el mercado y se obtiene una ganancia cuando el precio se recupera un 3 por ciento. La estrategia utiliza la idea de la red inteligente para controlar el riesgo limitando el número máximo de posiciones en cada zona y el intervalo de negociación.

Principio de estrategia

La lógica central de la estrategia incluye los siguientes aspectos:

  1. El precio de referencia para la estrategia utiliza una media móvil simple de 100 períodos (SMA)
  2. Se pueden establecer tres rangos de compra:
    • Rango 2: El precio retrocede un 8%, lo que permite un máximo de 2 operaciones
    • Rango 3: retracción del precio del 15%, máximo de tres operaciones permitidas
    • Rango 4: retracción del 20% y hasta 4 operaciones permitidas
  3. Condiciones de posición en blanco unificadas: cuando el precio rebota más del 3% de la MA100
  4. Cada intervalo tiene un intervalo mínimo de transacciones de 50 K-line periodos para evitar transacciones demasiado frecuentes

Ventajas estratégicas

  1. La construcción de almacenes por capas reduce los costos
  2. La idea de un comercio en red para capturar oportunidades en medio de fuertes fluctuaciones
  3. Se establecen límites máximos de tenencia de posiciones y intervalos de negociación para controlar el riesgo
  4. La lógica de la estrategia es simple, fácil de entender y mantener
  5. Aplicación en un entorno de mercado con alta volatilidad
  6. Se puede ejecutar automáticamente sin intervención humana.

Riesgo estratégico

  1. Un retroceso más grande podría producirse en una continua tendencia a la baja
  2. Se requiere una mayor cantidad de capital para apoyar la construcción de almacenes en varias zonas.
  3. Las condiciones de estabilidad son relativamente sencillas y podrían perder un mayor margen de crecimiento
  4. La tendencia general del mercado no se toma en cuenta y puede ser que el rendimiento sea inferior en un escenario de tendencia.
  5. Los parámetros de porcentaje fijos pueden no ser adecuados para todos los entornos de mercado

Dirección de optimización de la estrategia

  1. Introducción de indicadores de tendencia para ajustar los parámetros de la estrategia en las tendencias fuertes
  2. Mecanismos de compensación optimizados para ajustar los objetivos de ganancias de forma dinámica en función de las fluctuaciones del mercado
  3. Aumentar el módulo de control de riesgo y establecer límites de posición generales y condiciones de stop loss
  4. Introducción de indicadores de volatilidad (como el ATR) y ajuste dinámico del intervalo de construcción de la posición
  5. Optimización del mecanismo de intermitencia de las transacciones, que se puede ajustar a la dinámica de las condiciones del mercado

Resumir

La estrategia tiene una mejor capacidad de resistencia al riesgo mediante la negociación de una red de varios segmentos, la construcción de reservas en lotes en caso de una fuerte reversión del mercado. Si bien existen algunos riesgos potenciales, se puede lograr un efecto de negociación estable mediante la configuración de parámetros razonables y medidas de control de riesgos. El espacio para una optimización adicional reside principalmente en la adición de más indicadores de adaptabilidad al mercado y la mejora de los mecanismos de control de riesgos.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// BTC SOL ETH BNB XMR RNDR AKT OM ONDO IO

strategy("MA100 crash buy 3 Zone // 15 min", overlay=true, calc_on_every_tick=true)

// Définition des MA
maH1 = ta.sma(close, 100)
maB2 = ta.sma(close, 100)
maB3 = ta.sma(close, 100)
maB4 = ta.sma(close, 100)

// Définition du niveau d'achat et de vente
sellLevel1 = maH1 * 1.03 //+3%
buyLevel2 = maB2 * 0.92 //-8%
buyLevel3 = maB2 * 0.85 //-15%
buyLevel4 = maB2 * 0.80 //-20%



// Nombre max de trades simultanés
maxTrades2 = 2
maxTrades3 = 3
maxTrades4 = 4

// Délais entre deux ordres (en bougies)
tradeDelay = 50
var float lastTradeTime = na
var float lastSellTime = na
tradeDelay2 = 50
var float lastTradeTime2 = na
tradeDelay3 = 50
var float lastTradeTime3 = na
tradeDelay4 = 50
var float lastTradeTime4 = na

// Condition d'achat et de vente
buyCondition2 = low <= buyLevel2 and strategy.opentrades < maxTrades2 and (na(lastTradeTime2) or bar_index - lastTradeTime2 > tradeDelay2)
buyCondition3 = low <= buyLevel3 and strategy.opentrades < maxTrades3 and (na(lastTradeTime3) or bar_index - lastTradeTime3 > tradeDelay3)
buyCondition4 = low <= buyLevel4 and strategy.opentrades < maxTrades4 and (na(lastTradeTime4) or bar_index - lastTradeTime4 > tradeDelay4)
sellCondition = strategy.position_size > 0 and high >= sellLevel1 and (na(lastSellTime) or bar_index - lastSellTime > tradeDelay)

if buyCondition2
    strategy.entry("Buy", strategy.long)
    lastTradeTime2 := bar_index  // Enregistre le moment du trade

if buyCondition3
    strategy.entry("Buy", strategy.long)
    lastTradeTime3 := bar_index  // Enregistre le moment du trade

if buyCondition4
    strategy.entry("Buy", strategy.long)
    lastTradeTime4 := bar_index  // Enregistre le moment du trade

if sellCondition
    strategy.close("Buy")  // Ferme 50% de toutes les positions ouvertes // , qty_percent=30
    lastSellTime := bar_index  // Enregistre le moment du trade


// Affichage des niveaux
plot(sellLevel1, color=#fa930d, title="Sell Level")
plot(buyLevel2, color=#15bbfd, title="Buy Level")
plot(buyLevel3, color=#1229aa, title="Buy Level")
plot(buyLevel4, color=#9812aa, title="Buy Level")