
La estrategia de comercio cruzado de indicadores MACD de múltiples ejes de tiempo es una estrategia de seguimiento de tendencias. Se utiliza para calcular indicadores MACD con diferentes parámetros, generando una señal de negociación cuando el precio supera ese indicador, lo que permite la negociación automática de productos financieros como acciones, índices y divisas.
La estrategia calcula 3 medias móviles al mismo tiempo: una media móvil ponderada WMA y dos medias móviles indexadas EMA. Las configuraciones de los parámetros de las tres medias móviles son diferentes: 25 días, 50 días y 100 días, respectivamente. Esto permite que las medias móviles cubran diferentes períodos de movimiento de precios.
Después de calcular las medias móviles, la estrategia monitorea si el precio supera o supera una media móvil. Si el precio supera o supera todas las tres medias móviles al mismo tiempo, se genera una señal de negociación.
Por ejemplo, una señal de compra se genera cuando el precio está a la vez por encima de las tres medias móviles; una señal de venta se genera cuando el precio está a la vez por debajo de las tres medias móviles. La relación entre el precio y la media móvil puede ser un punto de inflexión en el movimiento del precio.
El análisis cruzado de indicadores de múltiples ejes temporales puede filtrar algunas señales falsas y hacer que las señales de negociación sean más confiables.
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia de comercio cruzado de indicadores MACD de múltiples ejes temporales tiene una idea general clara, determina la tendencia de los precios a través de promedios móviles de varios ciclos y genera una señal de negociación cuando se produce un giro significativo en los precios. La estrategia tiene un amplio espacio de optimización y puede ajustar los parámetros para diferentes variedades y ciclos de mercado para obtener una buena eficacia comercial. La estrategia es adecuada para el comercio programado 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 ///