
La estrategia se basa en el indicador MACD, que utiliza el cruce de la línea MACD y la línea de la señal en el indicador MACD para juzgar la señal de negociación. Cuando la línea MACD cruza la línea de la señal, se produce una señal de doble y cuando la línea MACD cruza la línea de la señal, se produce una señal de doble. Al mismo tiempo, se utiliza el precio más bajo de la línea K anterior como punto de parada múltiple y el precio más alto de la línea K anterior como punto de parada en blanco.
El indicador MACD está formado por la línea DIF y la línea DEA, la línea DIF es el diferencial entre la media rápida y la media lenta, la línea DEA es la media móvil de la línea DIF. Cuando la línea DIF cruza la línea DEA, indica que el precio de la acción ha salido de la zona de sobreventa y comienza a subir, produciendo una señal de plus; cuando la línea DIF cruza la línea DEA, indica que la acción ha salido de la zona de sobreventa y comienza a bajar, produciendo una señal de falta.
La estrategia se basa en el indicador MACD, a través de la cruz de la línea MACD y la línea de la señal para juzgar las señales de comercio, mientras que el uso de la línea K anterior de los precios más bajos y más altos como punto de parada, el punto de parada se establece en 4 veces ATR. La lógica de la estrategia es clara, fácil de implementar, y es capaz de capturar mejor la tendencia de los precios de las acciones. Sin embargo, la estrategia también existe algunos riesgos, tales como el retraso de los indicadores, la configuración de los puntos de parada simples, etc. En el futuro, se puede considerar la adición de otros indicadores, la optimización de la configuración de los puntos de parada, la incorporación de la gestión de posiciones, etc.
/*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)