Estrategia de negociación cruzada de promedio móvil intradiario

El autor:¿ Qué pasa?, Fecha: 2024-01-19 15:32:58
Las etiquetas:

img

Resumen general

Estrategia lógica

Ventajas

  • Identificar eficazmente los puntos de reversión de tendencia a corto plazo utilizando el concepto de cruce de MA
  • Describe intuitivamente la dirección y el impulso del precio
  • Simple de entender e implementar, adecuado para operaciones a corto plazo de alta frecuencia

Los riesgos

  • Las señales de cruce MA pueden retrasarse, perdiendo así el tiempo óptimo de inversión
  • El estricto cumplimiento de los cruces MA puede dar lugar a una frecuencia de negociación excesiva

Oportunidades de mejora

  • Optimizar la combinación de períodos de gestión de la rentabilidad cortos y largos
  • Incorporar otras herramientas analíticas para identificar tendencias a corto y largo plazo
  • Considerar las características individuales de las existencias y ajustar los parámetros de la estrategia en consecuencia
  • Emplear métodos de stop loss para limitar racionalmente las pérdidas

Conclusión


/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Define MA lengths
maLengthShort = input.int(9, title="Short MA Length", minval=1)
maLengthLong = input.int(21, title="Long MA Length", minval=1)

// Calculate MAs
maShort = ta.sma(close, maLengthShort)
maLong = ta.sma(close, maLengthLong)

// Plot MAs on the chart
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")

// Generate Buy Signal (Golden Cross: Short MA crosses above Long MA)
buySignal = ta.crossover(maShort, maLong)
strategy.entry("Buy", strategy.long, when=buySignal)

// Generate Sell Signal (Death Cross: Short MA crosses below Long MA)
sellSignal = ta.crossunder(maShort, maLong)
strategy.entry("Sell", strategy.short, when=sellSignal)

// Set stop loss and take profit levels
stopLossPercent = input.float(1, title="Stop Loss %", minval=0.1, maxval=5)
takeProfitPercent = input.float(1, title="Take Profit %", minval=0.1, maxval=5)

strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)


Más.