Estrategia de ruptura rápida y lenta de la EMA con cruce dorado


Fecha de creación: 2023-12-01 18:02:24 Última modificación: 2023-12-01 18:02:24
Copiar: 0 Número de Visitas: 751
1
Seguir
1619
Seguidores

Estrategia de ruptura rápida y lenta de la EMA con cruce dorado

Descripción general

La estrategia de cruce de brechas de oro de la EMA rápida y lenta es una estrategia simple y efectiva para seguir la tendencia del mercado. Utiliza la línea media de la EMA de diferentes períodos para cruzar brechas y generar señales de compra y venta. La idea básica es: cuando la EMA de período corto atraviesa la EMA de período más largo, genera una señal de compra; cuando la EMA de período corto atraviesa la EMA de período más largo, genera una señal de venta.

Principio de estrategia

La estrategia se basa principalmente en la comparación de las medias EMA de 5 ciclos, 8 ciclos y 13 ciclos para generar señales de negociación. Incluye:

  1. Calcula el EMA de 5 ciclos, el EMA de 8 ciclos y el EMA de 13 ciclos.
  2. Cuando un EMA de 5 ciclos atraviesa un EMA de 8 ciclos y un EMA de 13 ciclos, se genera una señal de compra.
  3. Cuando un EMA de 5 ciclos atraviesa un EMA de 8 ciclos y un EMA de 13 ciclos, se genera una señal de venta.
  4. Al mismo tiempo, la combinación de los indicadores ADX para determinar la intensidad de la tendencia, solo genera una señal cuando la tendencia es lo suficientemente fuerte.

De este modo, se logra el efecto de seguir la tendencia de la línea media larga. Cuando la línea media de corto período atraviesa la línea media de largo período, se indica que la tendencia de corto plazo se convierte en un polinomio y se puede comprar; cuando la línea media de corto período atraviesa la línea media de largo período debajo de la línea media de corto período, se indica que la tendencia de corto plazo se convierte en un blanco y se debe vender.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Es muy sencillo y fácil de implementar.
  2. Aprovecha al máximo el efecto suavizador de la línea media de la EMA para seguir la tendencia de manera efectiva.
  3. La combinación de múltiples EMAs permite el cruce para evitar falsas señales.
  4. La combinación de los indicadores ADX hace que la señal sea más confiable.
  5. El retiro y la caída máxima no son altos.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. En caso de una fuerte reversión de la tendencia, el stop loss puede ser mayor.
  2. La frecuencia de las transacciones es alta, por lo que es fácil aumentar los gastos de transacción. Se puede ajustar adecuadamente el parámetro EMA para reducir la frecuencia de las transacciones.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimizar los parámetros de EMA para encontrar la combinación óptima de parámetros.
  2. Se añaden filtros de otros indicadores, como KDJ, BOLL, etc., para mejorar la calidad de la señal.
  3. Ajustar la gestión de posiciones y optimizar el control de riesgos.
  4. Buscar mejores reglas de entrada y salida utilizando métodos de aprendizaje automático.

Resumir

En resumen, la estrategia de ruptura rápida y lenta de la cruz dorada de la EMA funciona bien en general, la señal es más confiable, la retractación es baja y es adecuada para seguir la tendencia de la línea media y larga. Se puede obtener un mejor efecto de la estrategia mediante la optimización de los parámetros y la perfección de las reglas.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 

//
strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)

rsi = rsi(close, rsi_period)

[diplus, diminus, adx] = dmi(short_period, short_period)
plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    longEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    crossunder(shortEma,longEma) or crossunder(close, longEma)

strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())


// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() =>
    not longOnly and shortEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    crossover(shortEma,longEma)

strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())