Estrategia de trading basada en zonas de oferta y demanda y stop deslizante EMA


Fecha de creación: 2024-01-18 16:41:16 Última modificación: 2024-01-18 16:41:16
Copiar: 0 Número de Visitas: 787
1
Seguir
1617
Seguidores

Estrategia de trading basada en zonas de oferta y demanda y stop deslizante EMA

Descripción general

La estrategia utiliza las zonas de oferta y demanda, las medias móviles del índice (EMA) y el rango de fluctuación real promedio (ATR) para determinar las señales de negociación. El usuario puede ajustar la configuración de los parámetros de EMA y la visibilidad de las señales de compra y venta. La estrategia marca las zonas de oferta y demanda como más alto más alto (HH), más bajo más bajo (LL), más bajo más alto (LH) y más alto más bajo (HL).

Principio de estrategia

Cálculo del indicador

Las medias móviles de la EMA:

  • El EMA se calcula en función del precio de cierre de un período determinado (el 200 por defecto).
  • La fórmula de la EMA:(EMA=(Pricet \times \alpha)+(EMA{t-1}×(1−\alpha)))de las cuales(\alpha=\frac{2}{length+1})。

La amplitud real promedio de ATR:

  • El ATR es una medida de la volatilidad del mercado, calculado en función del rango de fluctuación real de los precios.
  • El rango de fluctuación real es el mayor de los tres valores siguientes:
    • El precio máximo actual menos el precio mínimo actual
    • El precio máximo actual menos el valor absoluto del último precio de cierre
    • El precio mínimo actual menos el valor absoluto del precio de cierre anterior
  • El ATR típico tiene un ciclo de cálculo de 14.

Estos cálculos se utilizan para juzgar el pronóstico de tendencias de EMA y establecer un ATR móvil de stop loss basado en la volatilidad del mercado. La estrategia tiene como objetivo proporcionar una señal de compra y venta en función de la relación entre el precio de cierre, EMA y el valor de ATR.

Juzgado de la oferta y la demanda

La estrategia utiliza términos como HH (más alto más alto), LL (más bajo más bajo), HL (más alto más bajo) y LH (más bajo más alto) para identificar diferentes patrones de comportamiento de precios, que se utilizan a menudo en el análisis de tendencias:

  1. Más alto más altoEl precio actual es más alto que el anterior, lo que indica un potencial impulso al alza.

  2. Más bajo más bajo (LL)El precio actual es inferior al mínimo anterior, lo que indica un potencial movimiento a la baja.

  3. Más alto, más bajoEl precio actual es más bajo que el mínimo anterior, lo que indica que la tendencia al alza potencial continúa.

  4. Más bajo más altoEl precio actual es más bajo que el anterior, lo que indica que la tendencia a la baja continúa.

El uso de estos patrones en combinación con otros indicadores técnicos puede determinar la reversión o continuación de una tendencia potencial. La estrategia utiliza estos patrones para identificar los momentos de entrada o salida.

Entradas y salidas de pérdidas

Señales de entradaLa tercera línea K produce una señal de compra/venta cuando el precio de cierre es superior/inferior al precio máximo/mínimo del día anterior.

Cómo detener el daño: con un determinado múltiplo del valor de ATR (el doble por defecto) como punto de parada de retorno.

Ventajas estratégicas

  1. Combina varios factores, como tendencias, reveses y volatilidad, para evaluar el mercado de manera integral y evitar falsos reveses.
  2. Utiliza las áreas de oferta y demanda para determinar la resistencia de soporte clave.
  3. El ATR Stop Loss System sigue el movimiento del mercado.
  4. Se pueden personalizar los parámetros EMA y ATR.
  5. Las reglas de ingreso son sencillas y fáciles de aplicar.

Riesgo y optimización

  1. El riesgo de error de cálculo se debe optimizar adecuadamente para la longitud de la EMA.
  2. El ATR está configurado con un número de multiplicadores demasiado grande para que el seguidor pueda caer y morir.
  3. Se puede considerar la combinación de otros factores para filtrar la señal de entrada.
  4. Se puede intentar una estrategia basada en el tiro de tendencia, con la oferta y la demanda como complemento.

Resumir

La estrategia integra la aplicación de varios indicadores técnicos y la determinación de la forma de los precios, como la tendencia, la reversión y la volatilidad, y se desempeña bien en la retroalimentación. Sin embargo, la complejidad en el mercado real es muy variable, y la optimización y la filtración adecuada de las señales de entrada en el mercado siguen siendo necesarias.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 2h
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)