EMA23/EMA50 Estrategia de negociación cuantitativa de doble media móvil cruzada

El autor:¿ Qué pasa?, Fecha: 2024-04-26 15:29:21
Las etiquetas:El EMAEl EMA23El EMA50

img

Resumen general

Esta estrategia se basa en las señales de cruce de EMA23 y EMA50 para la negociación. Cuando EMA23 cruza por encima de EMA50, genera una señal de compra, y cuando cruza por debajo, genera una señal de venta. La estrategia también implementa un stop-loss para posiciones largas cuando el precio cae por debajo de EMA50 y para posiciones cortas cuando el precio se eleva por encima de EMA50. Además, la estrategia vuelve a entrar en el mercado cuando el precio se mueve por encima de EMA50.

Principios de estrategia

  1. Calcule las dos medias móviles exponenciales: EMA23 y EMA50.
  2. Generar una señal de compra cuando la EMA23 cruza por encima de la EMA50 y una señal de venta cuando la EMA23 cruza por debajo de la EMA50.
  3. Para las posiciones largas, aplicar un stop-loss si el precio cae por debajo de la EMA50 y el precio de cierre es inferior a la EMA50 de la vela anterior.
  4. Para las posiciones cortas, aplicar un stop-loss si el precio se eleva por encima de la EMA50 y el precio de cierre es superior a la EMA50 de la vela anterior.
  5. Para las posiciones largas, vuelva a entrar en el mercado si el precio se mueve hacia atrás por encima de la EMA50, con el precio de cierre y el precio alto ambos por encima de la EMA50, y la EMA23 por encima de la EMA50.
  6. Para las posiciones cortas, vuelva a entrar en el mercado si el precio vuelve a bajar por debajo de la EMA50, siendo el precio de cierre y el precio bajo ambos inferiores a la EMA50, y la EMA23 inferior a la EMA50.
  7. Establecer el nivel de rentabilidad para las posiciones largas en 1,6 veces el precio de entrada y para las posiciones cortas en 0,75 veces el precio de entrada.

Ventajas estratégicas

  1. El doble cruce de la media móvil es un indicador simple y eficaz de seguimiento de tendencias que ayuda a captar las tendencias.
  2. El mecanismo de stop-loss ayuda a controlar el riesgo y evitar que las pérdidas se expandan.
  3. El mecanismo de reingreso permite a la estrategia capturar tendencias nuevamente, aumentando el potencial de ganancia.
  4. Los niveles de ganancias de toma ayudan a bloquear las ganancias de manera oportuna.
  5. El marco de tiempo de 30 minutos proporciona más oportunidades comerciales mientras que también filtra un poco de ruido.

Riesgos estratégicos

  1. El EMA, como indicador de tendencia, tiene un retraso y puede perder los puntos de entrada óptimos.
  2. La colocación de los niveles de stop-loss puede no estar optimizada, lo que conduce a stop-outs prematuros.
  3. El comercio frecuente puede aumentar los costes de transacción y afectar a la rentabilidad.
  4. La estrategia puede generar más señales falsas en un mercado variable.
  5. Los niveles fijos de rentabilidad pueden limitar el potencial de rentabilidad de la estrategia.

Direcciones para la optimización de la estrategia

  1. Considere la introducción de otros indicadores técnicos para ayudar a determinar la tendencia y mejorar los puntos de entrada y salida, como el MACD, el RSI, etc.
  2. Optimizar la colocación de los niveles de stop loss, considerando el uso de indicadores de volatilidad como ATR para ajustar dinámicamente las posiciones de stop loss.
  3. Controlar la frecuencia de las operaciones estableciendo condiciones adecuadas de filtración de las operaciones para reducir las señales falsas.
  4. Utilice diferentes configuraciones de parámetros de estrategia para los mercados de tendencias y tendencias.
  5. Hacer más flexibles los niveles de rentabilidad, por ejemplo, ajustándolos dinámicamente en función de la volatilidad del mercado, la relación riesgo-beneficio, etc.

Resumen de las actividades

Esta estrategia es una estrategia de negociación cuantitativa basada en el cruce de dos promedios móviles, EMA23 y EMA50. Captura las tendencias a través de las señales de cruce e implementa mecanismos de stop-loss y reingreso para controlar el riesgo y aumentar el potencial de ganancia. La estrategia es simple y fácil de entender, adecuada para el comercio a mediano y corto plazo en el marco de tiempo de 30 minutos. Sin embargo, la estrategia también tiene algunas limitaciones, como la identificación de tendencias rezagadas, la colocación de stop-loss subóptima y el bajo rendimiento en los mercados de rango. En el futuro, la estrategia puede optimizarse introduciendo más indicadores técnicos, optimizando las posiciones de stop-loss, controlando la frecuencia de negociación, diferenciando entre los mercados de tendencia y rango e implementando niveles dinámicos de take-profit para lograr rendimientos más robustos.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// EMA 23 ve EMA 50'nin hesaplanması
ema23 = ta.ema(close, 23)
ema50 = ta.ema(close, 50)

// Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi
buySignal = ta.crossover(ema23, ema50)

// Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi
sellSignal = ta.crossunder(ema23, ema50)

// Long pozisyon stop seviyesi
longStopLoss = low < ema50 and close < ema50[1]

// Short pozisyon stop seviyesi
shortStopLoss = high > ema50 and close > ema50[1]

// Long pozisyon için tekrar giriş kuralı
longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50

// Short pozisyon için tekrar giriş kuralı
shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50

// Long işlemde kar alma seviyesi (%60)
longTakeProfit = strategy.position_avg_price * 1.60

// Short işlemde kar alma seviyesi (%25)
shortTakeProfit = strategy.position_avg_price * 0.75

// Long işlem için yeniden giriş koşulu
longReEntryCondition = strategy.position_size <= 0 and longReEntry

// Short işlem için yeniden giriş koşulu
shortReEntryCondition = strategy.position_size >= 0 and shortReEntry

// Geriye dönük test için başlangıç tarihi (01.01.2022)
startDate = timestamp(2022, 01, 01, 00, 00)

if (time >= startDate)
    if (buySignal)
        strategy.entry("Buy", strategy.long)

    if (sellSignal)
        strategy.entry("Sell", strategy.short)

    if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit))
        strategy.close("Buy")

    if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit))
        strategy.close("Sell")

    if (longReEntryCondition)
        strategy.entry("Buy", strategy.long)

    if (shortReEntryCondition)
        strategy.entry("Sell", strategy.short)


Relacionados

Más.