El autor:¿ Qué pasa?, Fecha: 2024-01-22 17:34:05
Las etiquetas:

img

Resumen general

Esta estrategia combina indicadores de impulso y promedios móviles para identificar tendencias de mercado y puntos de inversión para el comercio cuando la tendencia cambia de dirección. Pertenece a las estrategias de trading de tendencia y contratrend. Los componentes principales incluyen zonas de oferta y demanda, EMA, varias zonas HH, LL, LH, HL largas y cortas, ATR trailing stop loss, etc.

Estrategia lógica

1. Identificación de la oferta y la demanda

Distinguir la relación entre la oferta y la demanda en función del rango alto y bajo de Kline. Las áreas rojas indican que la oferta excede las zonas de oferta de la demanda. Las áreas verdes indican que la demanda excede las zonas de oferta de la demanda.

2. juicio de tendencia de la EMA

Trazar la EMA del período 200 y determinar la tendencia alcista y bajista comparando el precio con la EMA. El precio por encima de la EMA se considera tendencia alcista, mientras que el precio por debajo de la EMA se considera tendencia bajista.

3. Marcación de zonas largas y cortas

Determinar las zonas de reversión basadas en los puntos altos y bajos de las 2 velas recientes:

  • Zona HH (zona más alta) - 2 máximos consecutivos de las velas hacen más alto
  • Zona LL (Zona Baja Baja) - 2 bajos consecutivos de las velas hacen que el bajo bajo
  • Zona LH (zona baja alta) - Reversión reciente de alta alta alta a baja alta
  • Zona HL (zona de bajas más altas) - Reversión reciente de bajas más bajas a bajas más altas

4. ATR Trailing Stop Loss (Pérdida de parada de seguimiento)

Se calculará el valor ATR del período 14 que se multiplicará por un factor de 2 para derivar el nivel de stop loss.

5. Entrada y salida de pérdidas

Monitorear la relación del precio con los puntos altos/bajos de las velas anteriores. La señal larga se activa cuando el precio se rompe por encima del máximo anterior. La señal corta se activa cuando el precio se rompe por debajo del mínimo anterior. Retrasar la confirmación de la señal de entrada hasta la tercera vela para evitar señales falsas. Salir con stop loss cuando el precio retrocede más allá del nivel de stop loss de ATR.

Análisis de ventajas

  1. Utilice múltiples indicadores para identificar tendencias y áreas clave de reversión para mejorar la tasa de rentabilidad.
  2. El ATR puede limitar eficazmente el riesgo de pérdida por operación.
  3. El retraso en la confirmación de la señal de entrada minimiza el comercio falso.

Análisis de riesgos

  1. Basarse únicamente en indicadores técnicos sin tener en cuenta la información fundamental puede llevar a fracasos comerciales debido a la falta de datos clave.
  2. El ATR stop loss puede ser superado durante una gran volatilidad que resulta en pérdidas.
  3. Las señales frecuentes de reversión de la EMA durante los mercados de variación pueden conducir a un exceso de negociación.

Soluciones de riesgos:

  1. Complementar con datos económicos y juicios políticos.
  2. Permitir un amortiguador más amplio para el coeficiente multiplicador ATR.
  3. Ajustar el parámetro del período ATR para evitar la sensibilidad durante los rangos.

Oportunidades de mejora

  1. Complementar con indicadores técnicos como MACD, RSI, etc. para mejorar el tiempo.
  2. Re-prueba diferentes combinaciones de parámetros de período y multiplicador para la optimización.
  3. Considera añadir un filtro de re-escape para evitar los golpes de señal.
  4. Emplear aprendizaje automático, etc. para optimizar dinámicamente los parámetros.

Conclusión

Esta estrategia combina el análisis de la oferta/demanda, la determinación de tendencias, la identificación de la reversión y los módulos de gestión de riesgos de manera efectiva para detectar oportunidades de reversión del mercado en áreas clave.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-20 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)

showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")

emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")

// Function to identify supply and demand zones
getZones(src, len, mult) =>
    base = request.security(syminfo.tickerid, "D", close)
    upper = request.security(syminfo.tickerid, "D", high)
    lower = request.security(syminfo.tickerid, "D", low)
    multiplier = request.security(syminfo.tickerid, "D", mult)
    zonetype = base + multiplier * len
    zone = src >= zonetype
    [zone, upper, lower]

// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)

// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)

// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)

// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)

// Plot EMA
plot(ema, color=emaColor, title="EMA")

// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and (bar_index >= 2)
shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2)

// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)

// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)

// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")

// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)


Más.