En la carga de los recursos... Cargando...

Estrategia de negociación cuantitativa de combinación de EMA y Supertrend

El autor:¿ Qué pasa?, Fecha: 2024-06-17 16:52:17
Las etiquetas:El EMA

img

Resumen general

Esta estrategia combina el promedio móvil exponencial (EMA) y el indicador de súper tendencia para generar señales de compra y venta. Una señal de compra se genera cuando el precio se rompe por encima de la EMA de 20 días y el indicador de súper tendencia está en una tendencia alcista. Una señal de venta se genera cuando el precio se rompe por debajo de la EMA de 20 días y el indicador de súper tendencia está en una tendencia bajista.

Principio de la estrategia

  1. Calcular la EMA de 20 días como condición de filtrado para la determinación de la tendencia.
  2. Calcule el indicador Supertrend, que traza las bandas superior e inferior en función del rango promedio verdadero (ATR) y la tendencia alcista / bajista.
  3. Generar señales de compra y venta basadas en la dirección de tendencia del indicador Supertrend y la posición relativa del precio con respecto a la EMA de 20 días:
    • Una señal de compra se genera cuando el precio se rompe por encima de la EMA de 20 días y el indicador Supertrend está en una tendencia alcista.
    • Una señal de venta se genera cuando el precio se rompe por debajo de la EMA de 20 días y el indicador Supertrend está en una tendencia bajista.
  4. La estrategia entra en una posición larga con una señal de compra y sale con una señal de venta.

Ventajas estratégicas

  1. Al combinar el indicador EMA y el indicador Supertrend, la estrategia puede capturar eficazmente las condiciones de tendencia del mercado al tiempo que reduce las señales falsas.
  2. El indicador Supertrend se basa en ATR, lo que le permite ajustar dinámicamente la distancia entre las bandas superior e inferior, adaptándose a las diferentes volatilidades del mercado.
  3. El uso de la EMA como condición de filtrado para la determinación de la tendencia garantiza que las posiciones se abran en la dirección de la tendencia, aumentando la tasa de ganancia de la estrategia.
  4. La lógica de la estrategia es simple y directa, por lo que es fácil de entender e implementar.

Riesgos estratégicos

  1. En un mercado inestable, la estrategia puede generar frecuentes señales de compra y venta, lo que conduce a una erosión excesiva de los costos de negociación y transacción.
  2. La estrategia se basa en la EMA y el indicador Supertrend, que pueden volverse ineficaces o retrasarse en determinadas condiciones de mercado.
  3. La estrategia no tiene en cuenta la gestión de riesgos, como el stop-loss y el dimensionamiento de posiciones, que pueden dar lugar a importantes reducciones durante condiciones de mercado altamente volátiles.

Direcciones para la optimización de la estrategia

  1. El valor de las pérdidas por operación se calculará en función de los valores de las pérdidas por operación.
  2. Optimizar los parámetros del indicador EMA y del indicador Supertrend, como el uso de métodos de optimización de parámetros para encontrar la combinación óptima de parámetros, mejorando la adaptabilidad y la estabilidad de la estrategia.
  3. Introducir el dimensionamiento de las posiciones ajustando dinámicamente el tamaño de la posición en función de la volatilidad del mercado o de las pérdidas y ganancias de la cuenta, para gestionar el riesgo general.
  4. Considere la posibilidad de añadir otras condiciones de filtrado, como el volumen de operaciones, la volatilidad, etc., para reducir aún más las señales falsas.

Resumen de las actividades

Esta estrategia genera señales de compra y venta mediante la combinación de la EMA de 20 días y el indicador de Supertrend, con el objetivo de capturar las condiciones de tendencia del mercado. Las ventajas de la estrategia se encuentran en su simplicidad y la combinación de la EMA y el indicador de Supertrend, que pueden reducir eficazmente las señales falsas. Sin embargo, en los mercados agitados, la estrategia puede operar con frecuencia y carece de medidas de gestión de riesgos. Las mejoras futuras pueden considerar la incorporación de métodos de stop-loss, dimensionamiento de posiciones y optimización de parámetros para mejorar la estrategia. En general, esta estrategia proporciona un enfoque simple y efectivo de la tendencia de negociación, pero se necesita una mayor optimización y refinamiento para la aplicación práctica.


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

//@version=5
strategy("20 EMA and Supertrend Strategy", overlay=true)

// Inputs
emaLength = input(20, title="EMA Length")
supertrendMultiplier = input.float(3.0, title="Supertrend Multiplier")
supertrendPeriod = input(10, title="Supertrend Period")

// EMA Calculation
ema = ta.ema(close, emaLength)

// Supertrend Calculation
Periods = supertrendPeriod
src = hl2
Multiplier = supertrendMultiplier
changeATR= input.bool(true, title="Change ATR Calculation Method?")
showsignals = input.bool(true, title="Show Buy/Sell Signals?")
highlighting = input.bool(true, title="Highlighter On/Off?")
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = na(up[1]) ? up : up[1]
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = na(dn[1]) ? dn : dn[1]
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := na(trend[1]) ? trend : trend[1]
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(series=buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(series=buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.white)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(series=sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(series=sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.white)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=1)
longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.new(color.white, 0)) : color.new(color.white, 0)
shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.new(color.white, 0)) : color.new(color.white, 0)
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)
alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")

// Buy and Sell Signals based on EMA and Supertrend
buySignalEMA = ta.crossover(close, ema) and trend == 1
sellSignalEMA = ta.crossunder(close, ema) and trend == -1

// Plot EMA
plot(ema, color=color.blue, title="20 EMA")

// Plot Buy and Sell Signals
plotshape(series=buySignalEMA, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignalEMA, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")

// Strategy Entries and Exits
if (buySignalEMA)
    strategy.entry("Buy", strategy.long)

if (sellSignalEMA)
    strategy.close("Buy")


Relacionados

Más.