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

Estrategia de negociación después de la ruptura abierta con gestión dinámica de posiciones basada en ATR

El autor:¿ Qué pasa?, Fecha: 2024-11-12 14:26:23
Las etiquetas:- ¿ Qué?El EMAIndicador de riesgoADXEl ATR

img

Resumen general

Esta estrategia es un sistema de negociación de apertura de mercado basado en múltiples indicadores técnicos, dirigido principalmente a las sesiones de apertura de los mercados alemán y estadounidense.

Principios de estrategia

La estrategia utiliza bandas de Bollinger de 14 períodos (1.5 desviaciones estándar) para identificar fases de baja volatilidad, considerando la consolidación cuando el precio está cerca de la banda media. Emplea EMA de 10 y 200 períodos para confirmar tendencias alcistas, requiriendo que el precio esté por encima de ambos promedios. Un RSI de 7 períodos asegura condiciones no sobrevendidas (> 30), mientras que el ADX de 7 períodos confirma la fuerza de la tendencia (> 10). La estrategia analiza los máximos de las últimas 20 velas para los niveles de resistencia, que requieren al menos dos toques. La entrada ocurre en la ruptura de la resistencia con otras condiciones cumplidas, utilizando 2x ATR para stop-loss y 4x ATR para take-profit.

Ventajas estratégicas

  1. La validación cruzada de múltiples indicadores técnicos reduce las señales falsas
  2. Las operaciones de suspensión de pérdidas y toma de beneficios dinámicas basadas en ATR se adaptan a la volatilidad del mercado
  3. Se centra en las sesiones de apertura de alta volatilidad
  4. Captura las tendencias fuertes a través de patrones de consolidación y ruptura
  5. Mecanismos integrales de control de riesgos

Riesgos estratégicos

  1. Varios indicadores podrían perder algunas oportunidades comerciales
  2. Las sesiones de apertura volátiles pueden desencadenar stop-loss
  3. Las inversiones rápidas del mercado podrían causar pérdidas significativas Se recomienda implementar el tamaño adecuado de las posiciones, una ejecución estricta de stop-loss y evitar el exceso de operaciones.

Direcciones de optimización

  1. Ajuste de los parámetros de los indicadores para los diferentes mercados
  2. Considere la posibilidad de añadir indicadores de volumen para verificar la validez de la ruptura
  3. Incorporar indicadores técnicos adicionales para la fiabilidad de la señal
  4. Optimizar el tiempo de entrada para reducir el impacto del deslizamiento
  5. Mejorar la gestión de pérdidas y ganancias para mejorar las relaciones riesgo-recompensa

Resumen de las actividades

Esta estrategia captura oportunidades comerciales durante las sesiones de apertura del mercado a través de análisis técnico multidimensional, empleando stop-loss dinámico y take-profit para la gestión de riesgos. Con una lógica clara y un control de riesgos robusto, demuestra una buena practicidad. La optimización y el ajuste continuos pueden mejorar aún más el rendimiento de la estrategia.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Post-Open Long Strategy with ATR-based Stop Loss and Take Profit (Separate Alerts)", overlay=true)

// Parametri per Bande di Bollinger ed EMA
lengthBB = 14
mult = 1.5  // Bande di Bollinger più strette per timeframe inferiori
emaLength = 10  // EMA più breve per una rilevazione di trend più rapida
emaLongLength = 200  // EMA a lungo termine per il filtraggio del trend

// Parametri per RSI
lengthRSI = 7
rsiThreshold = 30

// Parametri per ADX
adxLength = 7
adxSmoothing = 7
adxThreshold = 10

// Filtro temporale - Solo durante l'apertura dei mercati tedesco e USA
daxOpen = (hour >= 8 and hour < 12)
usOpen = (hour == 15 and minute >= 30) or (hour >= 16 and hour < 19)

// Calcolo delle Bande di Bollinger
smaBB = ta.sma(close, lengthBB)
basis = smaBB
dev = mult * ta.stdev(close, lengthBB)
upperBand = basis + dev
lowerBand = basis - dev

// Calcolo delle EMA (breve e lungo termine)
ema = ta.ema(close, emaLength)  // EMA più breve
emaLong = ta.ema(close, emaLongLength)  // EMA a lungo termine per il filtraggio del trend

// Calcolo RSI
rsi = ta.rsi(close, lengthRSI)

// Calcolo ADX
[plusDI, minusDI, adx] = ta.dmi(adxLength, adxSmoothing)

// Calcolo ATR per Stop Loss e Take Profit dinamici
atrLength = 14
atrStopLossMultiplier = 2.0  // Moltiplicatore per Stop Loss
atrTakeProfitMultiplier = 4.0  // Moltiplicatore per Take Profit modificato a 4.0
atrValue = ta.atr(atrLength)  // Valore ATR calcolato qui

// Condizione di lateralizzazione - Prezzo vicino alla SMA delle Bande di Bollinger
lateralization = math.abs(close - smaBB) < (0.01 * close) and (daxOpen or usOpen)

// Identificazione della resistenza e del breakout
var float resistanceLevel = na
resistanceTouches = 0

for i = 1 to 20
    if high[i] > high[i+1] and high[i] > high[i-1]
        resistanceLevel := high[i]
        resistanceTouches := resistanceTouches + 1

// Condizione di Breakout: Il prezzo attuale supera la resistenza identificata
breakoutCondition = close > resistanceLevel and resistanceTouches >= 2

// Filtro di mercato rialzista a lungo termine - Entrare solo se il prezzo è sopra la EMA a 200 periodi
bullMarket = close > emaLong

// Filtro di trend a breve termine
trendFilter = ta.ema(close, emaLength)  // Filtro di trend a breve termine
trendDown = close < trendFilter  // Condizione di downtrend basata sul trend a breve termine

// Evitare l'entrata durante un pullback - Verifica se le due candele precedenti sono rosse
firstRedCandle = close[1] < open[1]  // La prima candela precedente è rossa
secondRedCandle = close[2] < open[2]  // La seconda candela precedente è rossa
avoidPullbackCondition = not (firstRedCandle and secondRedCandle)  // Entrare solo se non entrambe sono rosse

// Condizione Panic Candle - La candela deve chiudere negativa
panicCandle = close < open and (daxOpen or usOpen)

// Condizione di Entrata Long
longCondition = breakoutCondition and lateralization and close > ema and rsi > rsiThreshold and adx > adxThreshold and not trendDown and avoidPullbackCondition and bullMarket and panicCandle

// Stop Loss e Take Profit dinamici basati su ATR
atrStopLoss = close - (atrValue * atrStopLossMultiplier)  // Stop Loss dinamico usando ATR con moltiplicatore 2.0
atrTakeProfit = close + (atrValue * atrTakeProfitMultiplier)  // Take Profit dinamico usando ATR con moltiplicatore 4.0

// Entrata Long: Ordine eseguito alla chiusura della candela
if (longCondition and strategy.opentrades == 0 and barstate.isconfirmed)
    strategy.entry("Long", strategy.long)

// Disegna linee per Stop Loss e Take Profit
// line.new(x1=bar_index, y1=atrStopLoss, x2=bar_index + 1, y2=atrStopLoss, color=color.red, width=2, style=line.style_solid)  // Linea di Stop Loss (rossa)
// line.new(x1=bar_index, y1=atrTakeProfit, x2=bar_index + 1, y2=atrTakeProfit, color=color.green, width=2, style=line.style_solid)  // Linea di Take Profit (verde)

// Uscita: Stop Loss o Take Profit raggiunti
if (strategy.opentrades > 0)
    strategy.exit("Exit Long", "Long", stop=atrStopLoss, limit=atrTakeProfit)

// Alert: Differenziati per Entrata e Uscita utilizzando strategy.order.action
alert_message = "Azione: {{strategy.order.action}}, Prezzo: {{close}}, Dimensione Posizione: {{strategy.position_size}}"


Relacionados

Más.