Estrategia de seguimiento de tendencia de triple EMA


Fecha de creación: 2023-12-20 15:00:44 Última modificación: 2023-12-20 15:00:44
Copiar: 0 Número de Visitas: 800
1
Seguir
1621
Seguidores

Estrategia de seguimiento de tendencia de triple EMA

Descripción general

La estrategia de seguimiento de tendencias de triple EMA es una estrategia muy adecuada para seguir las tendencias del mercado. Utiliza tres EMA de diferentes períodos como una señal de construcción de posición, para establecer posiciones de más o de menos en caso de una plena confirmación de la tendencia.

La ventaja de esta estrategia es que reduce las señales falsas y asegura que la tendencia se mantenga en su máxima intensidad para luego entrar. Además, cuenta con un sistema de stop loss adaptativo que puede seguir el stop loss en función de la volatilidad del mercado, con lo que se obtiene un mejor efecto de gestión del riesgo.

Principio de estrategia

La lógica de la construcción de la bodega

La estrategia utiliza los tres EMAs de los períodos 7, 14 y 21 como indicadores de señales de posición. La lógica específica es hacer más cuando el precio cruza los tres EMAs al mismo tiempo; hacer menos cuando el precio cruza los tres EMAs al mismo tiempo.

Este diseño reduce las señales falsas y asegura que las tendencias sean lo suficientemente claras como para entrar en juego. Al mismo tiempo, los tres ciclos EMA se configuran correctamente para capturar la tendencia del mercado a tiempo.

Cómo detener el daño

La estrategia utiliza un sistema de stop-loss adaptativo basado en el ATR y la retirada máxima. Calcula la volatilidad de los precios en tiempo real y establece una línea de stop-loss en función de ella. En concreto, se calcula un determinado múltiplo del ATR como zona de amortiguamiento de stop-loss.

Durante el alza, la línea de pérdida se mueve con la nueva alza alta, con un buen efecto de seguimiento. Cuando el precio retrocede a la zona baja de la protección, la línea de pérdida se activa, la pérdida de liquidación. Esto puede controlar el riesgo de pérdida de acuerdo con las condiciones específicas del mercado.

Cómo obtener beneficios

La estrategia utiliza un método de parada de proporción fija. Una vez abierta la posición, se establece una línea de parada de una proporción determinada por encima del precio de entrada. Cuando el precio se eleva hasta la línea de parada, se toma la iniciativa de liquidar la posición.

La ventaja de este stop-loss de proporción fija es que se puede predecir el beneficio objetivo y salir satisfecho cuando se alcanza. Al mismo tiempo, se evita el riesgo de que el precio vuelva a caer. El stop-loss se puede ajustar según sea necesario.

Análisis de las ventajas

  • Se pueden reducir las falsas señales y asegurar una fuerte tendencia de precios después de la construcción de la reserva
  • La superposición de los ciclos EMA permite capturar rápidamente las tendencias del mercado
  • Sistemas de prevención de pérdidas adaptativos que controlan el riesgo en función de la volatilidad
  • Proporción de retención fija, retiro después de alcanzar el objetivo de ganancias
  • El método de stop loss basado en el ATR y el cálculo de la retirada máxima se puede optimizar según las condiciones del mercado
  • Facilidad para ajustar el estilo de la política cambiando los parámetros

Análisis de riesgos

  • En situaciones convulsivas, los EMA pueden producirse con frecuencia y ser fácilmente encajonados.
  • El parón fijo no puede ajustarse a las condiciones del mercado y puede perder más ganancias o aumentar las pérdidas
  • Una vez que se detiene el seguimiento de la pérdida, no se puede seguir el seguimiento de puntos más altos, y una nueva caída en el precio puede aumentar la pérdida.
  • En un caso de ruptura unilateral, la proporción de paradas fijas puede ser demasiado conservadora y no obtener suficientes beneficios.

Se puede combinar un indicador de tendencia para evitar una posición ciega en una situación de crisis; también se puede usar un stop-loss móvil o un ratio de pérdidas y ganancias para que el stop-loss sea más flexible. En general, todavía se necesita un juicio artificial para que la estrategia funcione.

Dirección de optimización

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. Utiliza más indicadores para determinar el momento de entrada, como MACD, KD, etc., para evitar ser atrapado en situaciones de crisis.

  2. Si no se puede hacer esto, el sistema de frenado puede ser más flexible, por ejemplo, moviendo el frenado o haciendo que el frenado sea más flexible.

  3. La inclusión de un mecanismo de seguimiento a la baja en el modo de detención de pérdidas permite controlar el riesgo al volver a rastrear los puntos más bajos si el precio cae nuevamente.

  4. Ajustar los parámetros del ciclo EMA según las características de las diferentes variedades para optimizar el juicio de las tendencias.

  5. El módulo de administración de posiciones agregado permite ajustar las posiciones individuales en función de la proporción de uso de los fondos.

Resumir

La estrategia de seguimiento de tendencias de triple EMA es una estrategia de seguimiento de tendencias muy práctica. Tiene una gran capacidad de juicio de tendencias, al mismo tiempo que tiene un mecanismo de detención y pérdida adaptativo, que puede administrar automáticamente los pedidos. Desde el punto de vista de la optimización, los sistemas de detención y pérdida pueden perfeccionarse aún más, lo que les permite adaptarse a las condiciones del mercado en tiempo real.

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

//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))

Take_profit= ((input (4))/100)

longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)

go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)



closeLong = close > longTakeProfit or crossunder(close, vStop)



//Entry 
strategy.entry(id="long", long = true, when = go_long and window())



//Exit
strategy.close("long", when = closeLong and window())

plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)