
Chiến lược này dựa trên chỉ số MACD, sử dụng đường MACD và đường tín hiệu trong chỉ số MACD để đánh giá tín hiệu giao dịch. Một tín hiệu đa được tạo ra khi MACD đi qua đường tín hiệu trên đường và một tín hiệu tắt khi MACD đi qua đường tín hiệu dưới đường. Đồng thời sử dụng giá thấp nhất của đường K trước đó làm điểm dừng đa đầu và giá cao nhất của đường K trước đó làm điểm dừng trống.
Đường DEA là đường trung bình di chuyển của đường DIF. Khi đường DIF đi qua đường DEA, nó cho thấy giá đã thoát khỏi khu vực mua quá mức và bắt đầu đi lên, tạo ra tín hiệu nhiều. Khi đường DIF đi qua đường DEA, nó cho thấy giá đã thoát khỏi khu vực mua quá mức và bắt đầu đi xuống, tạo ra tín hiệu trống.
Chiến lược này dựa trên chỉ số MACD, thông qua đường chéo của đường MACD và đường tín hiệu để đánh giá tín hiệu giao dịch, đồng thời sử dụng giá thấp nhất và giá cao nhất của đường K trước như là mức dừng lỗ, thiết lập mức dừng là 4 lần ATR. Lập luận của chiến lược rõ ràng, dễ thực hiện, có thể nắm bắt xu hướng giá cổ phiếu tốt hơn. Tuy nhiên, chiến lược cũng có một số rủi ro, chẳng hạn như chỉ số bị trì trệ, thiết lập vị trí dừng lỗ đơn giản.
/*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)