
Chiến lược này là một chiến lược giao dịch cải tiến dựa trên chỉ số MACD. Nó kết hợp các tính năng theo dõi xu hướng của chỉ số MACD và tư duy giao dịch động lượng để tạo ra tín hiệu giao dịch bằng cách phân tích sự khác biệt giữa đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm.
Trung tâm của chiến lược này là chỉ số MACD, được tạo thành từ chênh lệch giữa đường trung bình di chuyển nhanh (EMA) và đường trung bình di chuyển chậm (EMA). Một tín hiệu mua hoặc bán sẽ được tạo ra khi EMA nhanh và EMA chậm giao nhau. Cụ thể, một tín hiệu mua sẽ được tạo ra khi đường MACD từ dưới lên phá vỡ đường tín hiệu; một tín hiệu bán sẽ được tạo ra khi đường MACD từ trên xuống phá vỡ đường tín hiệu.
Ngoài các tín hiệu chéo MACD cơ bản, chiến lược này cũng giới thiệu một cơ chế xác nhận xu hướng. Nó đánh giá thị trường hiện tại có xu hướng tăng hay giảm bằng cách so sánh với đường trung bình di chuyển đơn giản (SMA). Chỉ khi có tín hiệu mua trong xu hướng tăng hoặc tín hiệu bán trong xu hướng giảm, giao dịch sẽ thực sự được thực hiện.
Ngoài ra, chiến lược này cũng kéo dài cửa sổ thời gian xác nhận tín hiệu. Các giao dịch tương ứng sẽ được thực hiện khi dòng K hiện tại đáp ứng các điều kiện mua hoặc bán và một dòng K trước đó cũng đáp ứng các điều kiện tương tự. Điều này làm tăng thêm độ tin cậy của tín hiệu.
Cuối cùng, chiến lược này đặt mức dừng lỗ và giá dừng cố định. Một khi giao dịch được thực hiện, giá dừng lỗ và giá dừng sẽ được tính dựa trên giá mở vị trí, và khi đạt được mức giá này, vị trí sẽ tự động thanh toán. Điều này giúp kiểm soát rủi ro và lợi nhuận của một giao dịch.
Chiến lược này là một chiến lược giao dịch cải tiến dựa trên chỉ số MACD, tăng cường sự ổn định và tiềm năng lợi nhuận của chiến lược thông qua các phương pháp như xác nhận xu hướng, xác nhận chậm tín hiệu, dừng lỗ cố định. Tuy nhiên, cũng có rủi ro về tối ưu hóa tham số, nhận dạng xu hướng, chỉ số duy nhất, dữ liệu đánh giá. Trong tương lai, có thể xem xét tối ưu hóa chiến lược kết hợp với các chỉ số khác, dừng lỗ động, quản lý vị trí và học máy để tiếp tục cải thiện hiệu quả ứng thực tế của nó.
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sligetit
//@version=5
strategy("Improved MACD_VXI Strategy", overlay=true)
// Calculate MACD and Signal Line
fastLength = input.int(13, title="Fast Length")
slowLength = input.int(21, title="Slow Length")
signalLength = input.int(8, title="Signal Length")
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
// Plot MACD and Signal Line
plot(macd, color=color.red, linewidth=1)
plot(signal, color=color.blue, linewidth=2)
// Calculate Cross Signals with Trend Confirmation
smaPeriod = input.int(50, title="SMA Period")
sma = ta.sma(close, smaPeriod)
trendUp = close > sma
trendDown = close < sma
crossOver = ta.crossover(signal, macd)
crossUnder = ta.crossunder(signal, macd)
buySignal = crossOver and trendUp
sellSignal = crossUnder and trendDown
// Execute Buy/Sell Operations
if buySignal
strategy.entry("Buy", strategy.long)
if sellSignal
strategy.entry("Sell", strategy.short)
// Extend Signal Confirmation Time Window
longSignal = crossOver[1] and trendUp[1]
shortSignal = crossUnder[1] and trendDown[1]
if longSignal
strategy.entry("Buy", strategy.long)
if shortSignal
strategy.entry("Sell", strategy.short)
// Set Fixed Percentage Stop Loss and Take Profit
stopLossPercent = input.float(1, title="Stop Loss (%)") / 100
takeProfitPercent = input.float(2, title="Take Profit (%)") / 100
stopLossPrice = strategy.position_avg_price * (1 - stopLossPercent)
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPercent)
strategy.exit("Stop Loss/Profit", "Buy", stop=stopLossPrice, limit=takeProfitPrice)
strategy.exit("Stop Loss/Profit", "Sell", stop=stopLossPrice, limit=takeProfitPrice)