Estrategia de trading cuantitativo de divergencia de tendencias con múltiples indicadores

BB RSI STOCH MFI EMA SMA
Fecha de creación: 2025-02-08 16:08:01 Última modificación: 2025-02-08 16:08:01
Copiar: 0 Número de Visitas: 420
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo de divergencia de tendencias con múltiples indicadores

Descripción general

Esta es una estrategia de seguimiento de tendencias y desviación de operaciones basada en múltiples indicadores técnicos. La estrategia utiliza integralmente las bandas de Bollinger, el indicador de fuerza relativa, el indicador aleatorio, el indicador estocástico y el indicador de flujo de capital para capturar oportunidades de sobreventa y sobreventa en el mercado y aumentar la fiabilidad de las señales de operaciones mediante la confirmación cruzada de varios indicadores.

Principio de estrategia

La estrategia utiliza un mecanismo de filtración de varias capas para confirmar las señales de transacción:

  1. Utilizando la banda de Brin ((20,2) como referencia para el rango de fluctuación de los precios, se activa la preselección de la señal de compra cuando los precios rompen la banda de Brin.
  2. El RSI ((3) se configura como un intervalo de sobreventa y sobreventa ((85,15)), y se confirma la sobreventa cuando el RSI se eleva a 15.
  3. El indicador aleatorio ((10,3) tiene la configuración ((85,15)), y cuando la línea K sube más allá de 15 se confirma una venta por encima de la norma.
  4. El movimiento del EMA de 10 ciclos de las MFI se utiliza para confirmar el flujo de capital, y la tendencia alcista apoya las compras. Las condiciones de compra deben cumplirse al mismo tiempo: el precio debe romper el tren de baja de la banda de Brin, el RSI debe romper el exceso de venta, el indicador aleatorio debe romper el exceso de venta y la tendencia de las MFI debe subir. Las condiciones de venta son las opuestas: el precio rompe la banda de Brin, el RSI rompe la sobrecompra, el indicador aleatorio rompe la sobrecompra.

Ventajas estratégicas

  1. La verificación cruzada de múltiples indicadores técnicos reduce significativamente las falsas señales.
  2. La combinación de la tendencia y el indicador de la dinámica permite capturar la tendencia y advertir de su reversión.
  3. El uso de RSI rápido (de 3 ciclos) mejora la efectividad de la entrada.
  4. Confirmar el flujo de fondos a través de las IFM para aumentar la fiabilidad de las transacciones.
  5. Utiliza las bandas de Brin como referencia de fluctuación para adaptarse a las diferentes condiciones del mercado.

Riesgo estratégico

  1. Múltiples indicadores pueden causar retrasos en la señal y perder la mejor oportunidad de entrada.
  2. En los mercados de volatilidad horizontal puede producirse un comercio frecuente.
  3. El RSI rápido puede ser más sensible al ruido.
  4. Se requiere una mayor cantidad de muestras para verificar la estabilidad de la estrategia. Se recomiendan las siguientes medidas de control de riesgos:
  • Establecimiento de un parón de pérdida
  • Controlar el tamaño de una sola transacción
  • Ajuste de parámetros en diferentes entornos de mercado
  • Filtración de transacciones en combinación con más características del mercado

Dirección de optimización de la estrategia

  1. Parámetros para el ajuste dinámico del indicador:
  • Ajuste de los parámetros de las bandas de Bryn en función de la volatilidad del mercado
  • Ajuste del RSI basado en el ciclo del mercado y configuración periódica del indicador aleatorio
  1. Añadir filtro de entorno de mercado:
  • Añadir indicadores de intensidad de tendencia
  • Considere el cambio en el volumen
  1. Mejorar la gestión de riesgos:
  • Cancelación de pérdidas dinámicas
  • Aumentar el límite de tiempo de tenencia
  1. Optimización de señal:
  • Añadir condiciones de confirmación de tendencia
  • Optimización de las ponderaciones

Resumir

La estrategia se basa en la colaboración de varios indicadores para construir un sistema de negociación relativamente completo. La principal ventaja de la estrategia es mejorar la fiabilidad de la señal mediante la verificación cruzada de diferentes tipos de indicadores, al tiempo que se consideran varias características del mercado, como la tendencia, la dinámica y el flujo de fondos. Si bien existe un cierto riesgo de atraso, la estrategia tiene un buen potencial de aplicación mediante la optimización de parámetros razonables y medidas de gestión de riesgos.

Código Fuente de la Estrategia
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ahmetkaratas4238

//@version=5
strategy("İzmir Stratejisi", overlay=true)

// **Bollinger Bantları Hesaplamaları**
bbLength = 20
bbMult = 2.0
basis = ta.sma(close, bbLength)
dev = bbMult * ta.stdev(close, bbLength)
upperBand = basis + dev
lowerBand = basis - dev

// **RSI (3,85,15) Hesaplaması**
rsiLength = 3
rsiUpper = 85
rsiLower = 15
rsi = ta.rsi(close, rsiLength)

// **Stochastic (10,3,85,15) Hesaplaması**
stochLength = 10
smoothK = 3
smoothD = 3
stochUpper = 85
stochLower = 15
k = ta.sma(ta.stoch(close, high, low, stochLength), smoothK)
d = ta.sma(k, smoothD)

// **Money Flow Index (MFI) Hesaplaması**
mfiLength = 14
mfi = ta.mfi(close, mfiLength)  // Hata düzeltildi: Artık yalnızca periyot alıyor
mfiTrendUp = ta.ema(mfi, 10) > ta.ema(mfi[1], 10)  // MFI yükseliş trendi
mfiTrendDown = ta.ema(mfi, 10) < ta.ema(mfi[1], 10) // MFI düşüş trendi

// **ALIM ŞARTLARI**
var bbBreakdown=false
var rsiBreakout=false
var stochBreakout=false
bbBreakdown := ta.crossunder(close,lowerBand)?true:bbBreakdown  // Fiyat BB altına sarktı mı?
rsiBreakout := ta.crossover(rsi, rsiLower)?true:rsiBreakout  // RSI 15 seviyesini yukarı kırdı mı?
stochBreakout := ta.crossover(k, stochLower)?true:stochBreakout  // Stochastic alt bandı yukarı kırdı mı?
buyCondition = bbBreakdown and rsiBreakout and stochBreakout and mfiTrendUp

// **SATIM ŞARTLARI**
var bbBreakup=false
var rsiBreakdown=false
var stochBreakdown=false
bbBreakup := ta.crossunder(close, upperBand)?true:bbBreakup  // Fiyat BB üst bandından aşağı kırdı mı?
rsiBreakdown := ta.crossunder(rsi, rsiUpper)?true:rsiBreakdown  // RSI 85 seviyesini aşağı kırdı mı?
stochBreakdown := ta.crossunder(k, stochUpper)?true:stochBreakdown  // Stochastic üst bandı aşağı kırdı mı?
sellCondition = bbBreakup and rsiBreakdown// and stochBreakdown and mfiTrendDown

if ta.crossunder(close,lowerBand)
    bbBreakup:=false
if ta.crossover(rsi, rsiLower)
    rsiBreakdown:=false
if ta.crossover(k, stochLower)
    stochBreakdown:=false

if ta.crossunder(close, upperBand)
    bbBreakdown:=false
if ta.crossunder(rsi, rsiUpper)
    rsiBreakout:=false
if ta.crossunder(k, stochUpper)
    stochBreakout:=false

// **Alım İşlemi Aç**
if buyCondition
    strategy.entry("Long", strategy.long)

// **Satım İşlemi Yap (Pozisyon Kapat)**
if sellCondition
    strategy.close("Long")

// **Bollinger Bantlarını Göster**
plot(upperBand, title="Üst BB", color=color.red)
plot(lowerBand, title="Alt BB", color=color.green)
plot(basis, title="Orta BB", color=color.blue)

// **Alım ve Satım Sinyallerini İşaretle**
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="AL")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="SAT")