Sistema de trading adaptativo de tendencia y momento de entropía multidimensional

CETP-Plus Shannon Entropy RSI ATR ADX EMA momentum 3D Histogram Volatility Filter
Fecha de creación: 2025-08-11 09:46:42 Última modificación: 2025-08-20 16:26:32
Copiar: 4 Número de Visitas: 353
2
Seguir
319
Seguidores

Sistema de trading adaptativo de tendencia y momento de entropía multidimensional Sistema de trading adaptativo de tendencia y momento de entropía multidimensional

Descripción general

El sistema de trading multidimensional de fluctuación de la tendencia auto-adaptativa es una estrategia de trading cuantitativa basada en la teoría de la curva, con el indicador CETP-Plus como núcleo, que mide la “ordenanza” de la curva de Shannon a través del patrón de la curva. El sistema combina el principio de ponderación reciente de la media móvil de la curva (EMA), la desviación dinámica de la media real de la media (RSI), el rango real de la media (ATR) y la fuerza de la tendencia de la escala de fluctuación y la dirección media (ADX) en una sola calificación. Este método exclusivo evita la complejidad de la superposición de múltiples indicadores individuales, al tiempo que mejora la precisión de la detección de tendencias tempranas y la estrategia de equilibrio de la curva.

Principio de estrategia

El principio central de esta estrategia es la aplicación de la cuota de Shannon al análisis de patrones de cartografía de los mercados financieros. La cuota de Shannon proviene de la teoría de la información y se utiliza para cuantificar la incertidumbre o “confusión” de las variables aleatorias. En esta estrategia, la cuota de Shannon se calcula y aplica de la siguiente manera:

  1. Cálculo de la tasa de inyecciónLa estrategia comienza por calcular tres ratios clave de fluctuación: el índice entero (que refleja la intensidad de la tendencia), el índice de la línea de sombra superior y el índice de la línea de sombra inferior (que refleja la reversión potencial).
  2. Devaluación y ponderación del índiceUtiliza un factor de decadencia ((0.8) para dar peso a los datos históricos del mapa, dando mayor peso a los datos más recientes, similar al principio de trabajo de la EMA.
  3. Cartografía en 3DSe coloca la proporción de aluminio en un rectángulo tridimensional, cuyas dimensiones corresponden a la entidad, la línea de sombra superior y la línea de sombra inferior.
  4. Calculación de las lecturas: Calcula el umbral de la diagonal usando la fórmula de Shannon, el umbral bajo indica la existencia de un patrón fuerte.
  5. Integración de la desviación de la inerciaEl RSI es un método de cálculo similar al RSI para capturar el movimiento de los precios y ajustar la puntuación de las monedas.
  6. Ajuste de la intensidad de la tendencia: Un método de cálculo similar al ADX detecta la dirección y la intensidad de la tendencia y ajusta la puntuación aún más.
  7. Ajuste por volatilidad: Utiliza ATR para el aumento de la volatilidad, asegurando la coherencia de la señal en diferentes ambientes de fluctuación.

El resultado final de la puntuación CETP es el producto compuesto de estos factores, los valores positivos tienden a ser positivos y los valores negativos tienden a ser negativos. La lógica de negociación es simple y directa: hacer más cuando el CETP supera el umbral positivo establecido y hacer un vacío cuando está por debajo del umbral negativo. Para evitar pequeñas operaciones, la estrategia incluye un filtro de movimiento de precios mínimos, asegurando que el gráfico de filtración actual tenga el alcance suficiente para desencadenar una operación. La gestión de riesgos se realiza mediante el porcentaje de stop loss, el multiplicador ATR y el seguimiento de los stop losses.

Ventajas estratégicas

  1. Señales integradasEl indicador CETP-Plus combina las ventajas de varios indicadores tradicionales (EMA, RSI, ATR, ADX) para proporcionar una señal de negociación única y clara, evitando el riesgo de conflicto de indicadores y exceso de ajuste.

  2. La adaptabilidad: La estrategia puede ajustarse automáticamente a las condiciones del mercado, adaptarse a diferentes ambientes de volatilidad y intensidad de la tendencia, y funcionar bien en varios estados de mercado sin necesidad de intervención manual.

  3. Procesamiento simétrico de polvoLa estrategia otorga el mismo peso a las oportunidades de más y de menos, lo que permite que funcionen de manera efectiva en mercados alcistas y bajistas, sin verse afectadas por el sesgo direccional.

  4. Identificación de las primeras tendenciasLa idea de la pirámide es capturar los cambios en la estructura del mercado, lo que permite identificar la formación temprana de tendencias antes que los indicadores tradicionales, ofreciendo una mejor oportunidad de entrada.

  5. Reducir el impacto del ruidoA través de la analítica de casillas y la técnica de descasillado de gráficos rectangulares, las estrategias son capaces de distinguir las señales reales del ruido del mercado y reducir la aparición de señales falsas.

  6. Personalización: La gran cantidad de parámetros se puede optimizar en función de diferentes tipos de transacciones y marcos de tiempo, lo que hace que la estrategia tenga una gran flexibilidad y adaptabilidad.

  7. Gestión de riesgos completa: Un mecanismo de control de riesgo integrado en múltiples niveles, que incluye el cierre porcentual, el cierre dinámico y el cierre de seguimiento basado en ATR, y un filtro de transacción mínima para controlar eficazmente la retirada.

Riesgo estratégico

  1. Sensibilidad de los parámetros: La estrategia contiene varios parámetros ajustables, la optimización excesiva puede causar un mal rendimiento en el comercio en disco. Diferentes entornos de mercado pueden requerir diferentes configuraciones de parámetros, lo que complica el mantenimiento del sistema.

  2. Riesgo de las operaciones de alta frecuenciaLas estrategias pueden generar una gran cantidad de señales de negociación, especialmente en mercados con alta volatilidad, lo que puede conducir a exceso de negociación, aumento de los costos de comisiones y aumento de los puntos de deslizamiento.

  3. La complejidad del cálculoLos cálculos de cuadro y cuadro en el gráfico tridimensional rectangular pueden requerir mayores recursos de computación en ejecución en tiempo real, lo que puede causar retrasos en la ejecución, especialmente en períodos de tiempo más cortos.

  4. Hipótesis de riesgo de los algoritmosLa estrategia se basa en la hipótesis de que las criptomonedas pueden capturar eficazmente los patrones del mercado, pero la estructura del mercado puede cambiar con el tiempo, lo que hace que esta hipótesis no sea válida.

  5. Dependencia volátilEstrategia: utiliza filtros de volatilidad y filtros de movimiento de precios mínimos, puede perder oportunidades de negociación en entornos de baja volatilidad y puede ser demasiado sensible en entornos de alta volatilidad.

  6. Riesgo de ajuste históricoA pesar de la combinación de las ventajas de varios indicadores, existe el riesgo de que los datos históricos se ajusten excesivamente y que los cambios en las condiciones del mercado en el futuro puedan causar un descenso en el rendimiento.

Las soluciones incluyen: re-optimizar los parámetros periódicamente, verificar la estabilidad de los parámetros con pruebas de paso a paso, implementar condiciones de filtrado más estrictas para reducir la frecuencia de las transacciones, aumentar los requisitos de confirmación para mejorar la calidad de la señal y ajustar los parámetros de riesgo para el rendimiento del sistema de monitoreo en tiempo real.

Dirección de optimización de la estrategia

  1. Mecanismo de parámetros de adaptaciónLa optimización permite que el sistema se adapte mejor a las condiciones cambiantes del mercado, reduciendo la necesidad de intervenciones manuales.

  2. Integración de análisis de múltiples marcos de tiempo: Integración de señales CETP de diferentes marcos de tiempo para crear sistemas de confirmación de jerarquía. Por ejemplo, ejecutar operaciones solo cuando las señales de los marcos de tiempo más altos coinciden con las señales de los marcos de tiempo de negociación, lo que aumenta la tasa de éxito.

  3. Aprendizaje automáticoIntroducir algoritmos de aprendizaje automático para optimizar la selección de parámetros y la filtración de señales. Identificar la combinación de parámetros de mejor rendimiento mediante el aprendizaje supervisado, o utilizar algoritmos de agregación para identificar diferentes estados de mercado y ajustar las estrategias correspondientes.

  4. Filtros de liquidez y volumen de operaciones: Añadir filtros basados en volumen de transacciones y profundidad de mercado, asegurando que se negocie solo en condiciones de liquidez suficiente, reduciendo los puntos de deslizamiento y el riesgo de ejecución

  5. Análisis de la correlación entre varios activosIntegración de información de mercados relevantes (como índices, acciones o productos) para aumentar la confianza de las operaciones cuando se producen señales homogéneas en varios mercados relevantes.

  6. Modelo de predicción de la volatilidadDesarrollar componentes de predicción de la volatilidad y ajustar los parámetros de riesgo y de descenso con antelación para prepararse para el futuro entorno de volatilidad.

  7. Automatización de la detección y el marco de optimizaciónEstablecer un sistema automatizado para reevaluar regularmente las estrategias con nuevos datos y ajustar los parámetros según los últimos comportamientos del mercado, asegurando que las estrategias se mantengan adaptadas.

El objetivo de estas optimizaciones es mejorar la solidez, adaptabilidad y rentabilidad de las estrategias, reduciendo al mismo tiempo la necesidad de intervenciones humanas y el riesgo de sobreadaptación. La implementación gradual de estas optimizaciones permitirá construir un sistema de negociación más inteligente y autónomo.

Resumir

El sistema de comercio autodidacta de fluctuación de tendencias de fluctuación en múltiples dimensiones representa un innovador método de comercio cuantitativo que captura la orden y la previsibilidad en los modelos de precios mediante la aplicación de los conceptos de fluctuación de la informática a los mercados financieros. La ventaja central de la estrategia es que integra los principios matemáticos de varios indicadores técnicos tradicionales, creando una señal de comercio única y clara, evitando conflictos de indicadores y confusión de señales. El indicador CETP-Plus ofrece una oportunidad de negociación en múltiples espacios para identificar y equilibrar las tendencias tempranas mediante el cálculo de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones de fluctuaciones.

A pesar de la fuerte capacidad de adaptación y gestión de riesgos de la estrategia, también se enfrenta a desafíos como la sensibilidad de los parámetros, la complejidad de los cálculos y los cambios en la estructura del mercado. La estabilidad y el rendimiento a largo plazo de la estrategia se pueden mejorar aún más mediante la implementación de las direcciones de optimización recomendadas, como el mecanismo de parámetros de adaptación, el análisis de marcos temporales múltiples y la mejora del aprendizaje automático.

En general, se trata de un sistema de negociación cuantitativa con una sólida base teórica y un diseño ingenioso, adecuado para la aplicación en mercados con alta volatilidad por parte de los operadores con formación en programación y estadística. A través de una cuidadosa optimización de los parámetros y una continua vigilancia del sistema, la estrategia tiene el potencial de generar un riesgo y un rendimiento ajustado a la estabilidad en una variedad de entornos de mercado.

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

// @version=6
strategy("Canuck Trading Traders Strategy [Candle Entropy Edition]", overlay=true, default_qty_value = 10)
// Note: Set Properties "Order size" to "100% of equity" for equity-based sizing or fixed contracts (e.g., 100).

// === CETP-Plus Settings ===
cetp_window = input.int(5, "CETP Window", minval=1, maxval=20, group="CETP-Plus Settings")
cetp_bins = input.int(3, "CETP Bins per Dimension", minval=1, maxval=10, group="CETP-Plus Settings")
long_threshold = input.float(0.1, "Long Threshold", minval=0.01, maxval=5.0, step=0.01, group="CETP-Plus Settings")
short_threshold = input.float(-0.1, "Short Threshold", minval=-0.8, maxval=-0.01, step=0.01, group="CETP-Plus Settings")
cetp_k = input.float(0.8, "CETP Momentum Weight", minval=0.1, maxval=5.0, step=0.1, group="CETP-Plus Settings")
mom_scale = input.float(6.0, "Momentum Scale", minval=1.0, maxval=20.0, step=1.0, group="CETP-Plus Settings")
body_weight = input.float(1.0, "Body Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
upper_weight = input.float(0.8, "Upper Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
lower_weight = input.float(1.0, "Lower Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
decay_factor = 0.8  // Hardcoded decay for exponential weighting (recent candles weighted more)

// === Trade Settings ===
min_score_strength = input.float(0.03, "Min CETP Score Strength", minval=0.0, maxval=5, step=0.01, group="Trade Settings")
stop_loss_pct = input.float(0.5, "Stop Loss (%)", minval=0.1, maxval=5.0, step=0.1, group="Trade Settings")
atr_mult = input.float(3.0, "ATR Multiplier", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_mult = input.float(5.0, "Trailing ATR Mult", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_offset_pct = input.float(1.0, "Trail Start Offset (%)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
min_price_move_mult = input.float(2.0, "Min Price Move ATR Mult (to avoid tiny trades)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")  // Filter tiny moves

// Indicators (ATR for stops/trails only)
atr = nz(ta.atr(14), 0.0)

// Volatility Filter (CV < 15% to avoid chop)
vol_threshold = ta.stdev(close, 20) / ta.sma(close, 20) * 100
trade_allowed = vol_threshold < 15.0

// Minimum Price Move Filter (candle range > ATR multiple, floored by min tick)
min_price_move = math.max(atr * min_price_move_mult, syminfo.mintick * 10)  // Avoid sub-penny moves; 10x tick for robustness
price_move_condition = (high - low) > min_price_move  // Fixed: Use high - low instead of ta.range()

// CETP-Plus Calculation (Blended EMA, RSI, ATR, ADX theses)
epsilon = 1e-5
body_ratio = (close - open) / (high - low + epsilon) * body_weight
upper_wick_ratio = (high - math.max(open, close)) / (high - low + epsilon) * upper_weight
lower_wick_ratio = (math.min(open, close) - low) / (high - low + epsilon) * lower_weight

// EMA-like weighting: Exponentially weight recent candles with fixed-size rolling arrays
var float[] body_arr = array.new_float(cetp_window, 0.0)
var float[] upper_arr = array.new_float(cetp_window, 0.0)
var float[] lower_arr = array.new_float(cetp_window, 0.0)

// Shift and decay older values, add new at the end
for i = 0 to cetp_window - 2
    array.set(body_arr, i, array.get(body_arr, i + 1) * decay_factor)
    array.set(upper_arr, i, array.get(upper_arr, i + 1) * decay_factor)
    array.set(lower_arr, i, array.get(lower_arr, i + 1) * decay_factor)

array.set(body_arr, cetp_window - 1, body_ratio)
array.set(upper_arr, cetp_window - 1, upper_wick_ratio)
array.set(lower_arr, cetp_window - 1, lower_wick_ratio)

// Volatility scaling (ATR thesis)
bin_size = 2.0 / cetp_bins * (1 + atr / ta.sma(atr, 14))
hist_size = cetp_bins * cetp_bins * cetp_bins
var int[] hist = array.new_int(hist_size, 0)
array.fill(hist, 0)

for i = 0 to cetp_window - 1
    body_val = array.get(body_arr, i)
    upper_val = array.get(upper_arr, i)
    lower_val = array.get(lower_arr, i)
    
    body_bin = math.max(0, math.min(cetp_bins - 1, math.floor((body_val + 1) / bin_size)))
    upper_bin = math.max(0, math.min(cetp_bins - 1, math.floor((upper_val + 1) / bin_size)))
    lower_bin = math.max(0, math.min(cetp_bins - 1, math.floor((lower_val + 1) / bin_size)))
    
    bin_idx = body_bin * (cetp_bins * cetp_bins) + upper_bin * cetp_bins + lower_bin
    array.set(hist, bin_idx, array.get(hist, bin_idx) + 1)

entropy = 0.0
for i = 0 to hist_size - 1
    count = array.get(hist, i)
    p = count / cetp_window
    if p > 0
        entropy := entropy - p * math.log(p)

max_entropy = math.log(hist_size)
norm_entropy = max_entropy > 0 ? entropy / max_entropy : 0.0

// RSI-like momentum bias
avg_gain = ta.rma(math.max(close - close[1], 0), cetp_window)
avg_loss = ta.rma(math.max(close[1] - close, 0), cetp_window)
rsi_bias = avg_loss > 0 ? avg_gain / avg_loss : 1.0
momentum = ta.mom(close, cetp_window) / (close[cetp_window] != 0 ? close[cetp_window] : 1e-5)
momentum_adj = momentum * (1 + rsi_bias)

// ADX-like trend strength (automated and symmetric for bull/bear)
di_plus = ta.rma(math.max(high - high[1], 0), cetp_window) / atr
di_minus = ta.rma(math.max(low[1] - low, 0), cetp_window) / atr
trend_strength = di_plus > di_minus ? 1.2 : (di_minus > di_plus ? 1.2 : 1.0)

// CETP-Plus Score (optimized: no abs on momentum_adj to preserve sign for better short detection)
avg_body = nz(array.avg(body_arr), 0.0)
raw_score = avg_body * (1 - norm_entropy) * (cetp_k + momentum_adj * mom_scale)
cetp_score = nz(raw_score * trend_strength, 0.0)

// Position State
var float entry_price = na
var int bars_held = 0

if barstate.isconfirmed
    bars_held := strategy.position_size != 0 ? bars_held + 1 : 0

// Trade Logic: Rely solely on current CETP score for entries/exits/reversals, with min price move filter
if bar_index >= cetp_window and math.abs(cetp_score) > min_score_strength and trade_allowed and price_move_condition
    if cetp_score > long_threshold
        if strategy.position_size < 0
            strategy.close("Short", comment="Reverse to Long")
        if strategy.position_size <= 0
            strategy.entry("Long", strategy.long)
            entry_price := close
            sl = entry_price * (1 - stop_loss_pct / 100) - atr * atr_mult
            strategy.exit("Long Exit", "Long", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1
    else if cetp_score < short_threshold
        if strategy.position_size > 0
            strategy.close("Long", comment="Reverse to Short")
        if strategy.position_size >= 0
            strategy.entry("Short", strategy.short)
            entry_price := close
            sl = entry_price * (1 + stop_loss_pct / 100) + atr * atr_mult
            strategy.exit("Short Exit", "Short", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1