La estrategia cuantitativa multifactor Great Delight combina múltiples indicadores técnicos, incluidos los promedios móviles, el MACD y la nube de Ichimoku, como una estrategia a largo plazo que sigue la tendencia.
Al considerar las tendencias a largo y corto plazo, así como la verificación de múltiples factores, esta estrategia puede filtrar eficazmente las operaciones de ruido causadas por falsas rupturas.
Cuando el precio está por encima del MA de 200 días, la estrategia cree que el mercado está en una tendencia alcista.
Cuando el precio se rompe por debajo del MA de 200 días, la estrategia determina que ha comenzado una tendencia bajista.
La lógica de la señal de venta es similar, pero inversa: en un mercado alcista, una vela cerrada por debajo del fondo de la nube o los disparadores del giro de la nube venden; en un mercado bajista, ingrese a la nube roja o los disparadores de señales de venta MA y MACD de 20 días.
La mayor ventaja de esta estrategia radica en la combinación de múltiples indicadores a largo y corto plazo para determinar las situaciones del mercado, que pueden filtrar eficazmente las señales falsas.
A través de verificaciones multicapa, la tasa de rentabilidad puede mejorarse considerablemente. Además, la coordinación entre indicadores a largo y corto plazo también hace que la estrategia sea adecuada para operaciones a corto y mediano plazo.
El principal riesgo de esta estrategia es la probabilidad de que múltiples indicadores den señales erróneas al mismo tiempo. Aunque es muy improbable en condiciones extremas, todavía puede suceder con un uso prolongado.
La estrategia se puede optimizar a partir de los siguientes aspectos:
La estrategia Great Delight filtra el ruido a través de combinaciones científicas de indicadores, lo que permite una rentabilidad persistente mientras se controlan los riesgos. Al considerar tanto las tendencias a largo plazo como las oportunidades a corto plazo, es ampliamente aplicable en inversiones a medio y largo plazo. Se pueden esperar mejoras adicionales en el rendimiento a través de optimizaciones como ajuste de parámetros, adiciones de stop loss e introducción de aprendizaje automático.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true) // Ichimoku conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) p1 = plot(leadLine1, offset = displacement, color=green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50)) bottomcloud=leadLine2[displacement-1] uppercloud=leadLine1[displacement-1] // SMA Indicator - Are we in a Bull or Bear market according to 200 SMA? SMA200 = sma(close, input(200)) EMA = ema(close,input(20)) //MACD Indicator - Is the MACD bullish or bearish? fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // Set Buy/Sell conditions [main,signal,histo]=macd(close,fastLength,slowlength,MACDLength) buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud))) true if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud))) buy_entry = false strategy.entry("Buy",true , when=buy_entry) alertcondition(buy_entry, title='Long', message='Chart Bullish') sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud))) true if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud))) sell_entry = false strategy.close("Buy",when= sell_entry) alertcondition(sell_entry, title='Short', message='Chart Bearish') //plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )