
Chiến lược này là một hệ thống theo xu hướng kết hợp đường trung bình động nhiều giai đoạn với giá trung bình theo khối lượng giao dịch (VWAP). Chiến lược này xác định hướng xu hướng thông qua sự giao nhau của ba đường trung bình động đơn giản (SMA) trong 9 giai đoạn, 50 giai đoạn và 200 giai đoạn, đồng thời kết hợp VWAP như một chỉ báo xác nhận sức mạnh giá để triển khai cơ chế xác nhận tín hiệu giao dịch đa chiều. Chiến lược này phù hợp cho cả giao dịch trong ngày (biểu đồ 1 phút) và giao dịch ngắn hạn (biểu đồ 1 giờ).
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Điều kiện vào lệnh dài hạn phải được đáp ứng cùng lúc:
Các điều kiện tham gia ngắn hạn phải được đáp ứng cùng lúc:
Đề xuất kiểm soát rủi ro:
Đây là một hệ thống giao dịch hoàn chỉnh kết hợp đường trung bình động nhiều kỳ và VWAP, cung cấp các tín hiệu giao dịch đáng tin cậy hơn thông qua cơ chế xác nhận nhiều lần. Ưu điểm của chiến lược này là logic rõ ràng, dễ thực hiện và khả năng kiểm soát rủi ro tốt. Mặc dù có một số rủi ro nhất định về độ trễ và độ nhạy của tham số, tính ổn định và khả năng thích ứng của chiến lược có thể được cải thiện hơn nữa thông qua các hướng tối ưu hóa được đề xuất. Chiến lược này phù hợp làm khuôn khổ cơ bản và các nhà giao dịch có thể cá nhân hóa nó theo phong cách giao dịch và môi trường thị trường của họ.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-05 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover Strategy with VWAP", overlay=true)
// Input lengths for SMAs
sma9Length = 9
sma50Length = 50
sma200Length = 200
// Calculate SMAs
sma9 = ta.sma(close, sma9Length) // 9-period SMA
sma50 = ta.sma(close, sma50Length) // 50-period SMA
sma200 = ta.sma(close, sma200Length) // 200-period SMA
// Calculate VWAP
vwapValue = ta.vwap(close)
// Long entry condition: SMA 9 crosses above SMA 50 and SMA 200 is less than SMA 50, and close is above VWAP
longCondition = ta.crossover(sma9, sma50) and (sma200 < sma50) and (close > vwapValue)
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit condition for long: SMA 9 crosses below SMA 50
longExitCondition = ta.crossunder(sma9, sma50)
if (longExitCondition)
strategy.close("Long")
// Short entry condition: SMA 9 crosses below SMA 50 and SMA 200 is greater than SMA 50, and close is below VWAP
shortCondition = ta.crossunder(sma9, sma50) and (sma200 > sma50) and (close < vwapValue)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit condition for short: SMA 9 crosses above SMA 50
shortExitCondition = ta.crossover(sma9, sma50)
if (shortExitCondition)
strategy.close("Short")
// Plotting the indicators on the chart
plot(sma9, color=color.blue, title="SMA 9")
plot(sma50, color=color.orange, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(vwapValue, color=color.green, title="VWAP")