Estrategia de trading de reversión de media móvil asistida por indicador de momentum


Fecha de creación: 2024-01-22 17:34:05 Última modificación: 2024-01-22 17:34:05
Copiar: 0 Número de Visitas: 689
1
Seguir
1617
Seguidores

Estrategia de trading de reversión de media móvil asistida por indicador de momentum

Descripción general

Esta estrategia utiliza una combinación de indicadores de dinámica y líneas medias para identificar tendencias y puntos de inflexión en el mercado y para operar cuando se produce un cambio de tendencia. Pertenece a la estrategia de seguimiento de tendencias y comercio de contratiempos.

Principio de estrategia

1. Identificación de las zonas de oferta y demanda

Las zonas rojas son las zonas de exceso de oferta y las zonas verdes son las zonas de demanda por encima de la oferta.

2. La tendencia de la EMA

Se calcula la longitud de la línea media de la EMA de 200 y se traza, para juzgar la tendencia de los vacíos a través de la relación entre el precio y la magnitud de la EMA, los precios por encima de la EMA son considerados como una tendencia alcista, los precios por debajo de la EMA son considerados como una tendencia descendente.

3. Marcado en el espacio

La zona de reversión según los más recientes altos y bajos de las dos líneas K:

  • Zona HH (Zona de Alto Superior) 2 líneas K consecutivas
  • Zona LL ((Lower Low) 2 puntos bajos consecutivos de la línea K
  • Zona LH (zona de las altas bajas) Últimos 1 altas de la línea K altas de la innovación, altas de la línea K secundarias invertidas, altas de retroceso
  • Zona HL ((Higher Low area) Último 1 bajo de la línea K bajo de innovación, el segundo bajo de la línea K se invierte, es un bajo de repunte

4. ATR para el seguimiento de daños

Calcula el valor ATR de 14 ciclos, multiplicado por el factor 2 para convertirlo en el Stop Loss de la estrategia.

5. Entrada y salida con pérdidas

La relación entre el precio de monitoreo y el alto y bajo de Kline del día anterior. Cuando el precio es más alto que el máximo del día anterior, se genera una señal múltiple; cuando el precio es más bajo que el mínimo del día anterior, se genera una señal en blanco. La señal de entrada se retrasa hasta la confirmación de la línea K de la base 3, para evitar la señal errónea causada por la oscilación de impacto.

Análisis de las ventajas

  1. Utiliza varios indicadores para identificar tendencias y áreas de reversión clave para mejorar la probabilidad de obtener ganancias.
  2. El método de ATR para el control de pérdidas es eficaz para controlar el riesgo de pérdidas individuales.
  3. La entrada tardía determina una señal efectiva y reduce la probabilidad de transacciones erróneas.

Análisis de riesgos

  1. Si solo se basa en indicadores técnicos y no se combina con información básica, puede que se pierda información importante y la negociación fracase.
  2. El método de detención de pérdidas de ATR puede ser roto en situaciones de gran escala y causar pérdidas.
  3. Las señales de cambio de tendencia de los EMA son frecuentes durante las oscilaciones, lo que puede conducir a un exceso de operaciones.

La solución al riesgo:

  1. La combinación de datos económicos importantes con juicios de política para tomar decisiones.
  2. Se puede ampliar adecuadamente el factor de deterioro de ATR para asegurar que haya suficiente espacio.
  3. Ajuste los parámetros de ciclo de deterioro de ATR para evitar ser demasiado sensible en las vibraciones.

Dirección de optimización

  1. En combinación con otros indicadores técnicos como el MACD, el RSI y otros para determinar el momento de entrada.
  2. Prueba la combinación de diferentes parámetros de ciclo y parámetros de coeficiente para encontrar el parámetro óptimo.
  3. Se puede considerar la adición de un filtro de retraso para evitar que la señal se bloquee.
  4. Parámetros de optimización dinámica de métodos como el aprendizaje automático.

Resumir

La aplicación integral de la estrategia de análisis de la oferta y la demanda, la determinación de tendencias, la identificación de reversión y el módulo de gestión de pérdidas, permite identificar eficazmente las oportunidades de cambio de mercado en las áreas clave, es un conjunto de estrategias eficaces de seguimiento de tendencias y de comercio contracorriente. Al mismo tiempo, se requiere prueba y optimización continuas, complementadas con juicios de experiencia manual, para obtener ganancias estables a largo plazo.

Código Fuente de la Estrategia
/*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)