Esta estratégia é um sistema de negociação quantitativo abrangente que combina múltiplas médias móveis, índice de força relativa (RSI), índice direcional médio (ADX) e análise de volume.
A lógica do núcleo baseia-se em vários componentes-chave: 1. Sistema de média móvel múltipla usando Double HullMA, média móvel ponderada por volume (VWMA) e média móvel ponderada básica (WMA) 2. Avaliação da força da tendência utilizando o indicador ADX, negociando apenas em tendências fortes Filtragem dos RSI para evitar condições de mercado extremas 4. Análise de volume que exija volume acima do limiar para sinais comerciais 5. Determinação da direcção do comércio através de cruzamentos de linhas n1 e n2
O sistema de média móvel múltipla fornece um julgamento básico da tendência, o ADX garante a negociação apenas em tendências fortes, o RSI ajuda a evitar perseguir extremos e a análise de volume garante a negociação durante períodos de alta atividade do mercado.
Recomendações de gestão de riscos: - Ajustar os parâmetros com base nas características do mercado - Definir níveis adequados de stop-loss e take-profit - Dimensão da posição de controlo - backtesting de estratégias regulares
A estratégia constrói um sistema de tendência relativamente completo através de múltiplos indicadores técnicos trabalhando em conjunto. Sua principal característica é o uso de várias confirmações para melhorar a confiabilidade da negociação enquanto controla o risco através de vários filtros. Embora possa perder algumas oportunidades, geralmente ajuda a melhorar a estabilidade da negociação. As direções de otimização sugeridas fornecem espaço para maior aprimoramento da estratégia.
/*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")