
이 전략은 여러 평균선, 상대적으로 약한 지표 ((RSI), 평균 트렌드 지표 ((ADX) 와 거래량 분석을 결합한 통합적인 양적 거래 시스템이다. 이 전략은 여러 기술 지표의 협동적인 협조를 통해 트렌드 확인에 기초하여 거래를 수행하고 거래량과 동력 지표의 필터링을 통해 거래 신뢰성을 향상시킵니다.
전략의 핵심 논리는 다음과 같은 핵심 구성 요소를 기반으로 합니다.
다중평균선 시스템은 가격 추세에 대한 기준 판단을 제공하며, ADX는 추세가 충분히 강할 때만 거래하는 것을 보장하며, RSI는 추락을 추적하는 것을 피하고, 거래량 분석은 거래가 시장의 활동성이 높은 시기에 이루어지는 것을 보장합니다.
다음의 방법으로 위험을 관리하는 것이 좋습니다.
이 전략은 여러 기술 지표의 협동적 협동으로 비교적 완벽한 트렌드 추적 시스템을 구축한다. 전략의 주요 특징은 여러 가지 확인을 통해 거래의 신뢰성을 높이고, 다양한 필터를 통해 위험을 제어하는 것이다. 일부 거래 기회를 놓칠 수 있지만, 전체적으로 거래의 안정성을 높이는 데 도움이 된다.
/*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")