
A estratégia baseia-se no MACD Indicator, usando o cruzamento da linha MACD e da linha de sinal no MACD Indicator para julgar o sinal de negociação. Quando a linha MACD atravessa a linha de sinal, um sinal de cotação é produzido, e quando a linha MACD atravessa a linha de sinal, um sinal de cotação é produzido.
O indicador MACD é composto pela linha DIF e pela linha DEA, a linha DIF é o diferencial entre a média rápida e a média lenta, a linha DEA é a média móvel da linha DIF. Quando a linha DIF atravessa a linha DEA, indica que o preço da ação saiu da área de superalimento e começa a subir, gerando um sinal de falta. Quando a linha DIF atravessa a linha DEA, indica que a ação saiu da área de superalimento e começa a cair, gerando um sinal de falta.
A estratégia baseia-se no indicador MACD, através do cruzamento da linha MACD e da linha de sinal para julgar o sinal de negociação, ao mesmo tempo em que usa o preço mínimo e o preço máximo da linha K anterior como ponto de parada, o ponto de parada é 4 vezes o ATR. A lógica da estratégia é clara, fácil de implementar e pode capturar melhor a tendência do preço da ação.
/*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)