Les ressources ont été chargées... Je charge...

Dynamic WaveTrend et stratégie de négociation quantitative intégrée de Fibonacci

Auteur:ChaoZhang est là., Date: 2025-01-17 15h09:01
Les étiquettes:Indice de résistanceWTFIBLe taux d'intérêtSMAHLC3

 Dynamic WaveTrend and Fibonacci Integrated Quantitative Trading Strategy

Résumé

Il s'agit d'une stratégie de trading quantitative complète qui combine l'indicateur WaveTrend, les niveaux de retracement de Fibonacci et l'indicateur RSI. La stratégie cherche des opportunités de trading optimales dans les tendances du marché et les fluctuations de prix grâce à la coordination de plusieurs indicateurs techniques.

Principe de stratégie

La stratégie repose sur plusieurs éléments essentiels: L'indicateur WaveTrend construit un canal de volatilité dynamique en calculant la moyenne mobile exponentielle (EMA) et l'écart type des prix. 2. Niveaux de retracement de Fibonacci: La stratégie calcule et met à jour dynamiquement les hauts et les bas prix, en tirant trois niveaux de retracement de Fibonacci clés à 38,2%, 50% et 61,8%. Indicateur RSI: utilise un indice de force relative (RSI) de 14 périodes pour confirmer les conditions de surachat et de survente du marché. 4. Confirmation de signaux multiples: La stratégie nécessite la satisfaction simultanée de conditions spécifiques, y compris les signaux de croisement WaveTrend, les signaux de surachat/survente du RSI et la relation de prix avec les niveaux de Fibonacci.

Les avantages de la stratégie

  1. Haute fiabilité du signal: réduit efficacement l'impact des faux signaux grâce à la coordination de plusieurs indicateurs techniques.
  2. Contrôle complet des risques: met en œuvre un mécanisme de stop-loss et de prise de bénéfices basé sur des points afin de contrôler efficacement les risques pour chaque transaction.
  3. Une forte adaptabilité: la stratégie peut ajuster dynamiquement les niveaux de Fibonacci pour s'adapter à différents environnements de marché.
  4. Signaux clairs: Les signaux de négociation sont clairs, faciles à comprendre et à exécuter.

Risques stratégiques

  1. Risque de volatilité du marché: les points de stop-loss peuvent devenir trop lâches sur les marchés fortement volatiles.
  2. Décalage du signal: en raison de l'utilisation de moyennes mobiles et d'autres indicateurs techniques, les signaux peuvent présenter un certain décalage.
  3. Risque de gestion de trésorerie: des niveaux fixes de stop-loss et de take-profit peuvent ne pas convenir à tous les environnements de marché.

Directions d'optimisation de la stratégie

  1. L'indicateur ATR est utilisé pour déterminer le taux de change de la valeur de l'indicateur ATR.
  2. Filtrage de l'environnement du marché: ajouter un filtre de force de tendance pour ajuster les paramètres de stratégie dans différents environnements de marché.
  3. Optimisation des signaux: envisagez d'ajouter des indicateurs de volume pour aider à confirmer les signaux de trading.
  4. Optimisation des paramètres: il est recommandé d'optimiser les paramètres WaveTrend et RSI afin de les adapter à différents instruments et délais de négociation.

Résumé

Il s'agit d'une stratégie de trading quantitative bien conçue avec une logique claire. Grâce à l'utilisation combinée de plusieurs indicateurs techniques, il peut capturer efficacement les opportunités du marché tout en contrôlant les risques. Les principaux avantages de la stratégie résident dans son système de signal fiable et son mécanisme de contrôle des risques complet. Grâce aux directions d'optimisation suggérées, la stabilité et l'adaptabilité de la stratégie peuvent être encore améliorées.


/*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)


Relationnée

Plus de