Estrategia de negociación cruzada del indicador MACD de varios plazos

El autor:¿ Qué pasa?, Fecha: 2024-02-19 11:03:54
Las etiquetas:

img

Resumen general

La estrategia de negociación de intercambio de indicadores MACD de varios marcos de tiempo es una estrategia de seguimiento de tendencias que genera señales de negociación cuando el precio rompe el indicador MACD calculado con diferentes configuraciones de parámetros, lo que permite el comercio automatizado de acciones, índices, divisas y otros productos financieros.

Estrategia lógica

La estrategia calcula 3 promedios móviles simultáneamente: un promedio móvil ponderado WMA y dos promedios móviles exponenciales EMA. Los parámetros de estos tres promedios móviles se establecen de manera diferente, que son de 25 días, 50 días y 100 días respectivamente. Esto permite que los promedios móviles cubran los movimientos de precios en diferentes períodos.

Después de calcular las medias móviles, la estrategia monitorea si el precio rompe o cae por debajo de cualquiera de las medias móviles.

Por ejemplo, una señal de compra se genera cuando el precio está por encima de las 3 medias móviles al mismo tiempo. Una señal de venta se genera cuando el precio cae por debajo de las 3 medias móviles al mismo tiempo.

Al comparar con indicadores de marcos de tiempo múltiples, se pueden filtrar algunas señales falsas, lo que hace que las señales comerciales sean más confiables.

Análisis de ventajas

  • Utilice el análisis de marcos de tiempo múltiples para filtrar señales falsas
  • Fácil optimización de los parámetros para adaptarse a las condiciones del mercado en diferentes períodos
  • Puede aplicarse a múltiples productos, incluidas acciones, índices, divisas, etc.

Análisis de riesgos

  • El retraso del indicador puede perder oportunidades a corto plazo
  • Riesgo de pérdida cuando los niveles de precios no se mantengan
  • Ajuste fino de los parámetros después para optimizar el stop loss y tomar ganancias

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar los períodos de media móvil para adaptar más ciclos de mercado
  2. Añadir otros indicadores técnicos para el filtrado, como el índice de rendimiento por sobrecompra y sobreventa
  3. Añadir el mecanismo de pérdida de parada, puede utilizar el indicador ATR para la distancia de parada
  4. Extensible a otros productos como futuros, optimizar parámetros

Resumen de las actividades

La estrategia de intercambio de indicadores MACD tiene un flujo lógico claro. Determina las tendencias de precios durante múltiples períodos utilizando promedios móviles y genera señales comerciales cuando ocurren reversiones significativas. La estrategia tiene un gran espacio de optimización y los parámetros se pueden ajustar para diferentes productos y ciclos de mercado, lo que permite un buen rendimiento comercial. Es adecuado para el comercio automatizado de acciones, índices y divisas de tendencia.


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

//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________      .__                   _________               .__  __         .__   
// \__    ___/____  |  |    ____   ____   \_   ___ \_____  ______ |__|/  |______  |  |  
//   |    |  \__  \ |  |   / ___\ /  _ \  /    \  \/\__  \ \____ \|  \   __\__  \ |  |  
//   |    |   / __ \|  |__/ /_/  >  <_> ) \     \____/ __ \|  |_> >  ||  |  / __ \|  |__
//   |____|  (____  /____/\___  / \____/   \______  (____  /   __/|__||__| (____  /____/
//                \/     /_____/                  \/     \/|__|                 \/      
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//

/// INPUTS START ///

//tradeSize = input(title="Shares Per Trade",  defval=2500, step=1)
WMALength = input(title="WMA Length",  defval=25, step=1)
EMA1Length = input(title="EMA1 Length",  defval=50, step=1)
EMA2Length = input(title="EMA2 Length",  defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)

/// INPUTS END ///

/// ALGORITHM START ///

/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)

/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2

aClose = close

/// Crossover signal system

/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false

/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false

//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)


/// ALGO ORDER CONDITIONS START ///

pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ?  true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen

//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS

//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose

/// ALGO ORDER CONDITIONS END ///

/// ALGORITHM END ///

/// DEFINE PLOTS ///

plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)

/// PLOTS END ///

/// ORDER BLOCK ///

    //strategy.entry("My Long Entry Id", strategy.long)

/// OPENING ORDERS START ///
if(pBuyToOpen) 
    strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen) 
    strategy.entry("STO", strategy.short, comment="STO")

/// OPENING ORDERS END ///

/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///

/// END ORDER BLOCK ///

// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///

Más.