Estrategia de trading con seguimiento de tendencia dinámica de la EMA

EMA ATR
Fecha de creación: 2024-05-11 11:31:46 Última modificación: 2024-05-11 11:31:46
Copiar: 0 Número de Visitas: 627
1
Seguir
1617
Seguidores

Estrategia de trading con seguimiento de tendencia dinámica de la EMA

Descripción

La estrategia utiliza indicadores técnicos como el promedio móvil del índice (EMA), el precio más alto, el precio más bajo y el rango real medio (ATR) para identificar la dirección de la tendencia actual mediante la determinación de la relación entre el precio y el EMA, el precio más alto y el precio más bajo, comprar cuando el precio más bajo se rompe hacia arriba, vender cuando el precio más alto se rompe hacia abajo o toca el punto de resistencia dinámica, para capturar la tendencia y obtener ganancias adicionales.

El principio de la estrategia

  1. El ATR se calcula para medir la volatilidad del mercado y servir de base para la construcción de canales dinámicos.
  2. Cálculo de precios máximos y mínimos como base para determinar la dirección de la tendencia.
  3. Calcula EMA_HL, es decir, el EMA de los precios más altos y más bajos, como el eje central del canal dinámico.
  4. Calcule EMA_HIGHEST y EMA_LOWEST, es decir, la subida y bajada de la vía que se obtiene por la suma y la disminución de ATR por una proporción determinada sobre la base de EMA_HL.
  5. Calcule SELL_LINE, es decir, el punto de resistencia dinámica obtenido por ATR multiplicado por una proporción en función del precio más alto.
  6. Determinación de señales múltiples: genera una señal de compra cuando EMA_LOWEST supera el precio mínimo y el precio de cierre es inferior al EMA_MID.
  7. Determinación de la señal de venta libre: genera una señal de venta cuando EMA_HIGHEST rompe el precio máximo hacia abajo y el precio de cierre está por encima de EMA_MID, o cuando el precio máximo toca SELL_LINE.

#Ventajas estratégicas #

  1. Utilizando la combinación de indicadores como el EMA, el precio más alto y el precio más bajo, las tendencias de evaluación de la señal son de alta fiabilidad.
  2. Introducción del ATR como un estándar para medir la volatilidad, construyendo un canal dinámico para adaptarse a las diferentes condiciones del mercado.
  3. Configurar el nivel de resistencia dinámica de SELL_LINE para bloquear los beneficios a tiempo y controlar el riesgo de retiro.
  4. Los parámetros son ajustables, adaptándose a diferentes variedades y períodos, con cierta universalidad y flexibilidad.

El riesgo estratégico

  1. La identificación de tendencias puede estar retrasada, lo que hace que el momento de entrada no sea el ideal.
  2. La configuración inadecuada de los parámetros puede causar señales frecuentes y aumentar los costos de las transacciones.
  3. En el caso de las ciudades convulsionadas, la estrategia puede no funcionar bien y se debe combinar con otros métodos.
  4. En situaciones extremas, como cambios rápidos de disco, la estrategia puede fallar y se debe establecer un stop loss.

Dirección para optimizar estrategias

  1. La introducción de más indicadores, como el volumen de tráfico, la tasa de fluctuación, etc., enriquece la dimensión de juicio de tendencias y mejora la fiabilidad de la señal.
  2. Optimización de los parámetros, como el multiplicador ATR, el ciclo EMA, etc., para encontrar la combinación óptima de parámetros y mejorar la estabilidad de la estrategia.
  3. Incorporarse a la administración de posiciones, como ajustar las posiciones de acuerdo con la dinámica de ATR, para controlar la apertura de riesgo individual.
  4. Establezca paradas y paradas, controle las pérdidas máximas y las ganancias máximas de una sola cuenta, y aumente la proporción de ganancias por riesgo.
  5. Combinado con otras estrategias, como la estrategia de ruptura, la estrategia de regreso a la media, etc., forma una combinación de estrategias para mejorar la estabilidad general.

Resumen

La estrategia utiliza indicadores técnicos como EMA, precios máximos y mínimos, en combinación con ATR para construir canales dinámicos, para generar señales de negociación mediante la ruptura de los precios máximos y mínimos para capturar la tendencia. Es una estrategia de seguimiento de tendencias sencilla y práctica.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Maboi_q

//@version=5
strategy("buy sell Trend", overlay=true)

atr_length = input.int(defval=14, title='atr length')
highest_length = input.int(defval=60, title='highest length')
highest_s_length = input.int(defval=60, title='sell highest length')
lowest_length = input.int(defval=30, title='lowest length')
sell_l_length = input.int(defval=55, title='sell line length')

f = 2.382
f2 = 5.618

atr = ta.atr(atr_length)
highest = ta.highest(highest_length)
lowest = ta.lowest(lowest_length)

f_atr = atr * f
ema_hl = ta.ema((highest[1] + lowest[1]) / 2, 14)
ema_highest = ema_hl + f_atr
ema_lowest = ema_hl - f_atr
ema_mid = (ema_highest + ema_lowest) / 2

bs_hi = ta.highest(highest_s_length)
f_atr2 = atr * f2
sell_line = ta.ema(bs_hi[1] + f_atr2, sell_l_length)

buy_cond = ta.crossover(ema_lowest, lowest) and close < ema_mid
sell_cond = (ta.crossunder(ema_highest, highest) and close > ema_mid) or high >= sell_line

if buy_cond
    strategy.entry('BUY', strategy.long)

if sell_cond
    strategy.entry('SELL', strategy.short)


plot(sell_line, color=color.new(color.maroon, 50))
plot(highest, color=color.new(color.red, 50))
plot(lowest, color=color.new(color.green, 50))
plot(ema_highest, color=color.new(color.blue, 50))
// plot(ema_mid, color=color.new(color.gray, 50))
plot(ema_lowest, color=color.new(color.blue, 50))

plotshape(buy_cond, title='buy', style=shape.triangleup, location=location.belowbar, 
 color=color.green, textcolor=color.green, size=size.tiny)

plotshape(sell_cond, title='sell', style=shape.triangledown, location=location.abovebar, 
 color=color.red, textcolor=color.red, size=size.tiny)