Chiến lược này dựa trên chỉ số MACD và sử dụng sự chéo chéo của đường MACD và đường tín hiệu để xác định tín hiệu giao dịch. Khi đường MACD vượt qua trên đường tín hiệu, nó tạo ra tín hiệu dài, và khi đường MACD vượt qua dưới đường tín hiệu, nó tạo ra tín hiệu ngắn. Chiến lược cũng sử dụng giá thấp nhất của nến trước đây làm điểm dừng lỗ cho các vị trí dài và giá cao nhất của nến trước đây làm điểm dừng lỗ cho các vị trí ngắn. Lợi nhuận được đặt ở mức 4 lần ATR (Mức trung bình True Range).
Chỉ số MACD bao gồm đường DIF và đường DEA. Đường DIF là sự khác biệt giữa đường trung bình động nhanh và đường trung bình động chậm, trong khi đường DEA là đường trung bình động của đường DIF. Khi đường DIF vượt qua đường DEA, nó chỉ ra rằng giá đã rời khỏi khu vực bán quá mức và bắt đầu tăng, tạo ra tín hiệu dài. Khi đường DIF vượt qua dưới đường DEA, nó chỉ ra rằng giá đã rời khỏi khu vực mua quá mức và bắt đầu giảm, tạo ra tín hiệu ngắn. Đồng thời, chiến lược sử dụng giá thấp nhất và giá cao nhất của nến trước đây như là mức dừng lỗ cho các vị trí dài và ngắn tương ứng để kiểm soát rủi ro. Lợi nhuận được đặt ở mức 4 lần ATR để tối đa hóa lợi nhuận.
Chiến lược này dựa trên chỉ số MACD và sử dụng sự chéo chéo của đường MACD và đường tín hiệu để xác định tín hiệu giao dịch. Nó cũng sử dụng giá thấp nhất và giá cao nhất của nến trước đó làm điểm dừng lỗ, và đặt mức lấy lợi nhuận ở mức 4 lần ATR. Logic chiến lược rõ ràng và dễ thực hiện, và có thể nắm bắt xu hướng giá tốt. Tuy nhiên, chiến lược cũng có một số rủi ro, chẳng hạn như độ trễ chỉ số và thiết lập stop loss đơn giản. Trong tương lai, các chỉ số khác có thể được thêm vào, cài đặt stop loss và take profit có thể được tối ưu hóa, và quản lý vị trí có thể được thêm vào để cải thiện độ bền và lợi nhuận của chiến lược.
/*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)