
Chiến lược này là một hệ thống giao dịch định lượng tổng hợp kết hợp nhiều đường trung bình, chỉ số tương đối mạnh (RSI), chỉ số xu hướng trung bình (ADX) và phân tích khối lượng giao dịch. Chiến lược này sử dụng sự phối hợp hợp của nhiều chỉ số kỹ thuật để giao dịch trên cơ sở xác nhận xu hướng, tăng độ tin cậy của giao dịch bằng cách lọc khối lượng giao dịch và động lực.
Logic cốt lõi của chiến lược này dựa trên các thành phần chính sau:
Hệ thống đa đường trung bình cung cấp sự phán đoán chuẩn về xu hướng giá, ADX đảm bảo giao dịch chỉ khi xu hướng đủ mạnh, RSI giúp tránh theo đuổi đà giảm, và phân tích khối lượng giao dịch đảm bảo giao dịch xảy ra trong thời gian hoạt động của thị trường cao hơn.
Các biện pháp quản lý rủi ro được đề xuất như sau:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng tương đối hoàn hảo thông qua sự phối hợp phối hợp của nhiều chỉ số kỹ thuật. Đặc điểm chính của chiến lược là tăng độ tin cậy giao dịch thông qua nhiều xác nhận, đồng thời kiểm soát rủi ro thông qua các bộ lọc khác nhau. Mặc dù có thể bỏ lỡ một số cơ hội giao dịch, nhưng nói chung sẽ giúp tăng sự ổn định của giao dịch.
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Multi-MA Strategy with Volume, ADX and RSI", overlay=true)
// Kullanıcı Parametreleri
keh = input.int(3, title="Double HullMA", minval=1)
teh = input.int(3, title="Volume-Weighted MA", minval=1)
yeh = input.int(75, title="Base Weighted MA", minval=1)
rsiPeriod = input.int(14, title="RSI Period", minval=1)
adxPeriod = input.int(14, title="ADX Period", minval=1)
volumeLookback = input.int(10, title="Volume Lookback Period", minval=1) // Son X mumun hacmi
adxThreshold = input.int(20, title="ADX Trend Strength Threshold", minval=1) // ADX için trend gücü eşiği
// Hareketli Ortalamalar
rvwma = ta.vwma(close, teh)
yma = ta.wma(close, yeh)
n2ma = 2 * ta.wma(close, math.round(keh / 2))
nma = ta.wma(close, keh)
diff = n2ma - nma
sqrtKeh = math.round(math.sqrt(keh))
n1 = ta.wma(diff, sqrtKeh)
n2 = ta.wma(diff[1], sqrtKeh)
// ADX Hesaplaması
trueRange = ta.rma(ta.tr, adxPeriod)
plusDM = ta.rma(math.max(high - high[1], 0), adxPeriod)
minusDM = ta.rma(math.max(low[1] - low, 0), adxPeriod)
plusDI = (plusDM / trueRange) * 100
minusDI = (minusDM / trueRange) * 100
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, adxPeriod)
trendIsStrong = adx > adxThreshold
// RSI Filtreleme
rsiValue = ta.rsi(close, rsiPeriod)
rsiFilter = rsiValue > 30 and rsiValue < 70 // Aşırı alım ve aşırı satım bölgelerinin dışında olmak
// Hacim Filtresi
volumeThreshold = ta.sma(volume, volumeLookback) // Ortalama hacim seviyesi
highVolume = volume > volumeThreshold
// Sinyal Şartları (Sadece güçlü trendler ve rsi'nın aşırı bölgelerde olmaması)
longCondition = n1 > n2 and close > rvwma and trendIsStrong and rsiFilter and highVolume
shortCondition = n1 < n2 and close < rvwma and trendIsStrong and rsiFilter and highVolume
// Hacim Filtresi ile İşaretler
plotshape(series=longCondition and highVolume ? close : na, style=shape.triangleup, location=location.belowbar, color=color.blue, size=size.small, title="High Volume Long Signal")
plotshape(series=shortCondition and highVolume ? close : na, style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small, title="High Volume Short Signal")
// Strateji Giriş ve Çıkış Şartları
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Görsel Göstergeler
plot(n1, color=color.green, title="N1 Line")
plot(n2, color=color.red, title="N2 Line")
plot(rvwma, color=color.yellow, linewidth=2, title="VWMA")
plot(yma, color=color.orange, title="Base Weighted MA")