Estrategia de negociación cruzada con dos EMA

El autor:¿ Qué pasa?, Fecha: 2023-10-17 13:56:54
Las etiquetas:

img

Resumen general

Esta estrategia utiliza la cruz de oro y la cruz de muerte de las líneas de EMA duales para determinar el momento de entrada y salida. Específicamente, cuando la línea de EMA rápida cruza por encima de la línea de EMA lenta desde la parte inferior, se genera una señal de cruz de oro para la entrada larga. Cuando la línea de EMA rápida cruza por debajo de la línea de EMA lenta desde la parte superior, se genera una señal de cruz de muerte para la entrada corta. Esta estrategia es simple y fácil de implementar, y es una estrategia de negociación muy común.

Estrategia lógica

El código básico de esta estrategia es el siguiente:

fast = input(25, title="Fast")
slow = input(75, title="Slow") 

matype1=ema(source, fast)
matype2=ema(source, slow)

longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2) 

if (longCondition)
    strategy.entry("Long", strategy.long)
     
if (shortCondition)
    strategy.entry("Short", strategy.short) 

Esta estrategia primero establece dos líneas EMA, con el período EMA rápido como 25 y el período EMA lento como 75. Luego calcula los valores de las dos líneas EMA. Cuando la EMA rápida cruza por encima de la EMA lenta, la condición larga se convierte en verdadera. Cuando la EMA rápida cruza por debajo de la EMA lenta, la condición corta se convierte en verdadera. Una vez que las condiciones correspondientes son ciertas, es larga o corta.

Esta estrategia utiliza la característica de suavizado de la EMA para filtrar el ruido del mercado, mientras que es capaz de capturar rápidamente los cambios de tendencia.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. La lógica es simple e intuitiva, fácil de entender e implementar.

  2. La EMA suaviza las fluctuaciones del mercado y filtra las falsas señales de manera eficaz.

  3. La cruz de oro y la cruz de la muerte son fuertes señales comerciales para controlar el riesgo.

  4. Los períodos de EMA flexibles se adaptan a diferentes entornos de mercado.

  5. Fácil de combinar con otros indicadores técnicos.

  6. Los parámetros de la EMA se pueden optimizar para obtener mejores resultados.

Análisis de riesgos

Los riesgos de esta estrategia incluyen:

  1. Las señales ineficaces frecuentes en los mercados de rango, ya que la EMA se cruza con frecuencia.

  2. El retraso de la EMA puede perder oportunidades a corto plazo.

  3. El crossover de la EMA por sí solo no puede identificar la inversión de tendencia, lo que limita el potencial de ganancia.

  4. Los períodos de EMA fijos no pueden adaptarse a los cambios del mercado.

  5. Requiere un capital significativo, de lo contrario aumenta el riesgo.

  6. Necesita un estricto stop loss, de lo contrario una sola pérdida puede ser enorme.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los períodos de EMA para las diferentes condiciones del mercado.

  2. Añadir otros filtros como MACD, Bandas de Bollinger para mejorar la calidad de la señal.

  3. Añadir indicadores de tendencia como ATR, ADX para reducir las operaciones ineficaces.

  4. Incorporar análisis de marcos de tiempo múltiples para determinar la dirección de la tendencia.

  5. Utilice el aprendizaje automático para optimizar dinámicamente los períodos de EMA.

  6. Optimizar el tamaño de las posiciones para controlar el riesgo.

  7. Optimice las estrategias de stop loss para limitar las pérdidas individuales.

Resumen de las actividades

Esta estrategia utiliza una doble EMA de cruz de oro y cruz de muerte como señales de negociación, formando una estrategia de tendencia clásica. Es simple y fácil de implementar, y se puede combinar con otros indicadores, adecuando a los inversores con requisitos relativamente bajos en el juicio de tendencia. Pero también tiene límites de ganancias y riesgos, que requieren optimizaciones adecuadas para diferentes entornos de mercado. En general, proporciona una excelente base para el desarrollo de estrategias y una investigación en profundidad.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars

//@version=4
strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true)

matype = input("ema")
hidema = input(false)
sourcetype = input(close, title="Source Type")
source=close
 
// STEP 1:
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=231)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12) 
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))

fast = input(25, title="Fast")
slow = input(75, title="Slow")

matype1=ema(source, fast)
matype2=ema(source, slow)


signalcolor = source > matype2 ? color.blue : color.red
signal = cross(fast, slow) 



hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA")
yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA")
//kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme")
 

longCondition = crossover(matype1, matype2)
if (afterStartDate and longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(matype1, matype2)
if (afterStartDate and shortCondition)
    strategy.entry("Short", strategy.short)
    

//--------------------------------------------------------

//volume based color bars
length=input(21, "length", minval=1)
avrg=sma(volume,length)

vold1 = volume > avrg*1.5 and close<open
vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open
vold3 = volume < avrg *0.5 and close<open

volu1 = volume > avrg*1.5 and close>open
volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open
volu3 = volume< avrg*0.5 and close>open

cold1=#800000
cold2=#FF0000
cold3=color.orange

colu1=#006400
colu2=color.lime
colu3=#7FFFD4

ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na

barcolor(ac)

Más.