리소스 로딩... 로딩...

동적 물결 트렌드 및 피보나치 통합 양적 거래 전략

저자:차오장, 날짜: 2025-01-17 15:09:01
태그:RSIWTFIBEMASMAHLC3

 Dynamic WaveTrend and Fibonacci Integrated Quantitative Trading Strategy

전반적인 설명

이것은 웨이브트렌드 지표, 피보나치 리트레이스먼트 레벨, 그리고 RSI 지표를 결합한 포괄적인 양적 거래 전략이다. 이 전략은 여러 기술적 지표의 조율을 통해 시장 추세와 가격 변동에서 최적의 거래 기회를 추구한다. 동적 조정을 통해 시장 추세를 지속적으로 추적하고 여러 신호 확인을 통해 거래 정확도를 향상시킨다.

전략 원칙

이 전략은 몇 가지 핵심 요소에 기반합니다. 1. 웨이브트렌드 지표: 기하급수적인 이동 평균 (EMA) 및 가격 표준편차를 계산하여 동적 변동성 채널을 구성합니다. 빠른 라인 (WT1) 이 느린 라인 (WT2) 을 넘을 때 거래 신호가 생성됩니다. 2. 피보나치 리트레이싱 레벨: 전략은 38.2%, 50% 및 61.8%의 세 가지 주요 피보나치 리트레이싱 레벨을 도출하여 가격 최고와 최저를 동적으로 계산하고 업데이트합니다. 3. RSI 지표: 14 기간 상대 강도 지표 (RSI) 를 사용하여 시장 과잉 구매 및 과잉 판매 상황을 확인합니다. 4. 복수의 신호 확인: 전략은 웨이브 트렌드 크로스 오버 신호, RSI 과잉 구매/ 과잉 판매 신호 및 피보나치 수준과 가격 관계 등 특정 조건의 동시에 만족을 요구합니다.

전략적 장점

  1. 높은 신호 신뢰성: 여러 가지 기술 지표의 조화를 통해 잘못된 신호의 영향을 효과적으로 줄입니다.
  2. 포괄적 리스크 제어: 각 거래에 대한 리스크를 효과적으로 제어하기 위해 점에 기반한 스톱-러스 및 리프트 (take-profit) 메커니즘을 구현합니다.
  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)


관련

더 많은