다이나믹 웨이브 트렌드와 피보나치 종합적 양적 거래 전략

RSI WT FIB EMA SMA HLC3
생성 날짜: 2025-01-17 15:09:01 마지막으로 수정됨: 2025-01-17 15:09:01
복사: 24 클릭수: 377
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다이나믹 웨이브 트렌드와 피보나치 종합적 양적 거래 전략

개요

이는 WaveTrend 지표, 피보나치 수정 수준, RSI 지표를 결합한 포괄적인 양적 거래 전략입니다. 이 전략은 여러 기술 지표를 조정하여 시장 동향과 가격 변동 속에서 최상의 거래 기회를 찾습니다. 이 전략은 시장 동향을 지속적으로 추적하기 위한 동적 조정을 활용하고, 여러 신호 확인을 통해 거래 정확도를 향상시킵니다.

전략 원칙

이 전략은 다음과 같은 핵심 요소를 기반으로 합니다.

  1. WaveTrend 지표: 가격의 지수 이동 평균(EMA)과 표준 편차를 계산하여 동적 변동성 채널이 구성됩니다. WaveTrend의 빠른 선(WT1)과 느린 선(WT2)이 교차할 때 거래 신호가 생성됩니다.
  2. 피보나치 수정 수준: 이 전략은 가장 높은 가격과 가장 낮은 가격 지점을 동적으로 계산하고 업데이트하며, 38.2%, 50%, 61.8%의 세 가지 주요 피보나치 수정 수준을 실시간으로 도출합니다.
  3. RSI 지표: 14기간 상대 강도 지수(RSI)를 사용하여 시장의 매수 과다 또는 매도 과다 상황을 확인합니다.
  4. 다중 신호 확인: 이 전략을 사용하려면 WaveTrend 교차 신호, RSI 매수 과다 및 매도 과다 신호, 그리고 가격과 피보나치 수준 간의 관계가 거래를 트리거하기 위해 동시에 특정 조건을 충족해야 합니다.

전략적 이점

  1. 높은 신호 신뢰성: 여러 기술 지표의 조정된 협력을 통해 잘못된 신호의 영향이 효과적으로 줄어듭니다.
  2. 완벽한 위험 관리: 포인트 기반의 손절매 및 손절매 메커니즘을 설정하여 각 거래의 위험을 효과적으로 관리합니다.
  3. 강력한 적응성: 이 전략은 다양한 시장 환경에 맞춰 피보나치 수준을 동적으로 조정할 수 있습니다.
  4. 명확한 신호: 거래 신호는 명확하고 이해하고 실행하기 쉽습니다.

전략적 위험

  1. 시장 변동성 위험: 변동성이 큰 시장에서는 손절매 지점이 너무 느슨할 수 있습니다.
  2. 신호 지연: 이동 평균과 같은 기술적 지표를 사용하기 때문에 신호에 어느 정도 지연이 있을 수 있습니다.
  3. 자금 관리 위험: 고정된 이익 실현 지점과 손절매 지점은 모든 시장 환경에 적합하지 않을 수 있습니다.

전략 최적화 방향

  1. 동적 이익실현 및 손절매: 고정 포인트 이익실현 및 손절매를 ATR 지표를 기반으로 하는 동적 이익실현 및 손절매 메커니즘으로 변경하는 것이 좋습니다.
  2. 시장 환경 필터링: 다양한 시장 환경에서 전략 매개변수를 조정하기 위해 트렌드 강도 필터를 추가합니다.
  3. 신호 최적화: 거래 신호를 확인하는 데 도움이 되도록 볼륨 지표를 추가하는 것을 고려할 수 있습니다.
  4. 매개변수 최적화: 다양한 거래 상품과 기간에 맞게 WaveTrend와 RSI의 매개변수를 최적화하는 것이 좋습니다.

요약하다

이는 합리적인 설계와 명확한 논리를 갖춘 포괄적인 양적 거래 전략입니다. 여러 기술 지표를 조화롭게 활용함으로써 시장 기회를 효과적으로 포착하고 위험을 통제할 수 있습니다. 이 전략의 주요 장점은 신뢰할 수 있는 신호 시스템과 완벽한 위험 관리 메커니즘입니다. 추천된 최적화 방향을 통해 전략의 안정성과 적응성을 더욱 개선할 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy(title="Şinasi Özel Tarama", shorttitle="Şinasi Tarama", overlay=true)

// LazyBear WaveTrend Göstergesi
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")

ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

wt1 = tci
wt2 = ta.sma(wt1, 4)

plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red)
plot(osLevel2, color=color.green)

plot(wt1, color=color.green)
plot(wt2, color=color.red)
plot(wt1 - wt2, color=color.blue, style=plot.style_area, transp=80)
plot(ta.crossover(wt1, wt2) ? wt2 : na, color=color.black, style=plot.style_circles, linewidth=3)
plot(ta.crossover(wt1, wt2) ? wt2 : na, color=(wt2 - wt1 > 0 ? color.red : color.lime), style=plot.style_circles, linewidth=2)
barcolor(ta.crossover(wt1, wt2) ? (wt2 - wt1 > 0 ? color.aqua : color.yellow) : na)

// Fibonacci seviyelerini çizmek için yeni en yüksek ve en düşük fiyatları her yeni mumda güncelleme
var float fibLow = na
var float fibHigh = na

// Fibonacci seviyelerini yeniden hesapla
if (na(fibLow) or na(fibHigh))
    fibLow := low
    fibHigh := high
else
    fibLow := math.min(fibLow, low)
    fibHigh := math.max(fibHigh, high)

fib38 = fibLow + 0.382 * (fibHigh - fibLow)
fib50 = fibLow + 0.5 * (fibHigh - fibLow)
fib618 = fibLow + 0.618 * (fibHigh - fibLow)

plot(fib38, color=color.orange, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.purple, linewidth=1, title="Fibonacci 50%")
plot(fib618, color=color.blue, linewidth=1, title="Fibonacci 61.8%")

// RSI hesaplama
rsiPeriod = input(14, title="RSI Length")
rsiValue = ta.rsi(close, rsiPeriod)
plot(rsiValue, color=color.blue, title="RSI")

// Buy ve Sell sinyalleri

// Buy sinyali
buyCondition = rsiValue < 30 and close < fib38 and close < fib50 and close < fib618 and ta.crossover(wt1, wt2)
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")

// Sell sinyali
sellCondition = rsiValue > 70 and close > fib38 and close > fib50 and close > fib618 and ta.crossunder(wt1, wt2)
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strateji giriş ve çıkış
// Buy (Alım) işlemi
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Sell (Satım) işlemi
if (sellCondition)
    strategy.entry("Sell", strategy.short)

// TP (Take Profit) seviyesinin 3500 pip olarak ayarlanması
// SL (Stop Loss) seviyesinin 7000 pip olarak ayarlanması

pipValue = syminfo.mintick * 10 // Pip değeri

// Buy TP (Alım TP) seviyesi
buyTPCondition = buyCondition
strategy.exit("Buy Exit", "Buy", limit=close + 300 * pipValue, stop=close - 700 * pipValue)

// Sell TP (Satım TP) seviyesi
sellTPCondition = sellCondition
strategy.exit("Sell Exit", "Sell", limit=close - 3500 * pipValue, stop=close + 7000 * pipValue)