Esta é uma estratégia de negociação quantitativa abrangente que combina o indicador WaveTrend, os níveis de retração de Fibonacci e o indicador RSI. A estratégia busca oportunidades de negociação ideais nas tendências de mercado e flutuações de preços através da coordenação de vários indicadores técnicos.
A estratégia baseia-se em vários elementos essenciais: Indicador de tendência de onda: Constrói um canal de volatilidade dinâmica calculadora da média móvel exponencial (EMA) e desvio padrão dos preços. 2. Níveis de retracementos de Fibonacci: A estratégia calcula e atualiza dinamicamente os máximos e mínimos dos preços, desenhando três níveis de retracementos de Fibonacci principais em 38,2%, 50% e 61,8%. Indicador RSI: usa um índice de força relativa (RSI) de 14 períodos para confirmar as condições de sobrecompra e sobrevenda do mercado. 4. Confirmação de sinais múltiplos: A estratégia requer a satisfação simultânea de condições específicas, incluindo sinais de cruzamento da WaveTrend, sinais de sobrecompra/supervenda do RSI e relação de preço com os níveis de Fibonacci.
Esta é uma estratégia de negociação quantitativa bem concebida com lógica clara. Através do uso combinado de múltiplos indicadores técnicos, pode efetivamente capturar oportunidades de mercado enquanto controla riscos. As principais vantagens da estratégia estão em seu sistema de sinal confiável e mecanismo abrangente de controle de risco. Através das direções de otimização sugeridas, a estabilidade e adaptabilidade da estratégia podem ser ainda melhoradas.
/*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)