Esta estrategia es un sistema de negociación cuantitativo integral que combina múltiples promedios móviles, índice de fuerza relativa (RSI), índice direccional promedio (ADX) y análisis de volumen.
La lógica central se basa en varios componentes clave: 1. Sistema de media móvil múltiple que utiliza el doble HullMA, la media móvil ponderada por volumen (VWMA) y la media móvil ponderada básica (WMA) 2. Evaluación de la fuerza de la tendencia utilizando el indicador ADX, negociándose solo en tendencias fuertes Filtración de los índices de interés para evitar condiciones de mercado extremas 4. Análisis de volumen que requiere un volumen superior al umbral para las señales comerciales 5. Determinación de la dirección del comercio a través de los cruces de líneas n1 y n2
El sistema de media móvil múltiple proporciona un juicio básico de tendencia, el ADX asegura la negociación solo en tendencias fuertes, el RSI ayuda a evitar perseguir extremos y el análisis de volumen asegura la negociación durante períodos de alta actividad del mercado.
Recomendaciones para la gestión de riesgos: - Ajustar los parámetros en función de las características del mercado - Establecer los niveles apropiados de stop-loss y take-profit - Tamaño de la posición de control - Pruebas de estrategia regulares
La estrategia construye un sistema de seguimiento de tendencias relativamente completo a través de múltiples indicadores técnicos que trabajan en concierto. Su característica principal es el uso de múltiples confirmaciones para mejorar la confiabilidad de la negociación mientras se controla el riesgo a través de varios filtros. Aunque puede perder algunas oportunidades, generalmente ayuda a mejorar la estabilidad comercial.
/*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")