Esta estrategia se basa en el indicador MACD y utiliza el cruce de la línea MACD y la línea de señal para determinar las señales comerciales. Cuando la línea MACD cruza por encima de la línea de señal, genera una señal larga, y cuando la línea MACD cruza por debajo de la línea de señal, genera una señal corta. La estrategia también utiliza el precio más bajo de la vela anterior como el stop loss para posiciones largas y el precio más alto de la vela anterior como el stop loss para posiciones cortas.
El indicador MACD consiste en la línea DIF y la línea DEA. La línea DIF es la diferencia entre el promedio móvil rápido y el promedio móvil lento, mientras que la línea DEA es la media móvil de la línea DIF. Cuando la línea DIF cruza por encima de la línea DEA, indica que el precio ha dejado el área de sobreventa y comenzó a subir, generando una señal larga. Cuando la línea DIF cruza por debajo de la línea DEA, indica que el precio ha dejado el área de sobrecompra y comenzó a caer, generando una señal corta. Al mismo tiempo, la estrategia utiliza el precio más bajo y el precio más alto de la vela anterior como el stop loss para posiciones largas y cortas respectivamente para controlar el riesgo.
Esta estrategia se basa en el indicador MACD y utiliza el cruce de la línea MACD y la línea de señal para determinar las señales comerciales. También utiliza el precio más bajo y el precio más alto de la vela anterior como stop loss, y establece el take profit en 4 veces el ATR. La lógica de la estrategia es clara y fácil de implementar, y puede capturar bien las tendencias de precios. Sin embargo, la estrategia también tiene algunos riesgos, como el retraso del indicador y la configuración de stop loss simple.
/*backtest start: 2023-05-05 00:00:00 end: 2024-05-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD Strategy", overlay=true) // Define MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // Define conditions for long entry longCondition = crossover(macdLine, signalLine) // Define conditions for short entry shortCondition = crossunder(macdLine, signalLine) // Define stop loss for long entry longStopLoss = low[1] // Previous candle low // Define stop loss for short entry shortStopLoss = high[1] // Previous candle high // Define take profit for both long and short entries takeProfit = close + (close - longStopLoss) * 4 // 4 x ATR // Execute long entry if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("TP/SL", "Buy", stop=longStopLoss, limit=takeProfit) // Execute short entry if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("TP/SL", "Sell", stop=shortStopLoss, limit=takeProfit)