Estrategia de trading multiindicador adaptativa de Vishal

MACD SAR ST EMA ATR TF
Fecha de creación: 2025-03-28 17:17:56 Última modificación: 2025-03-28 17:17:56
Copiar: 0 Número de Visitas: 407
2
Seguir
319
Seguidores

Estrategia de trading multiindicador adaptativa de Vishal Estrategia de trading multiindicador adaptativa de Vishal

Descripción general

La estrategia es una metodología integral de trading cuantitativo que identifica tendencias de mercado y señales de trading mediante la integración de varios indicadores técnicos (MACD, Supertrend y Parabolic SAR). La estrategia está diseñada para proporcionar un marco de decisión de trading flexible y riguroso que se adapte a diferentes entornos de mercado.

Principio de estrategia

La estrategia se basa en una combinación dinámica de tres indicadores tecnológicos clave:

  1. Indicador MACD: evalúa el movimiento y la dirección de la tendencia de los precios
  2. Indicador de Supertrend: para juzgar la tendencia dominante en el mercado.
  3. Parabolic SAR: proporciona señales de entrada y salida precisas

Las estrategias para tomar decisiones comerciales se basan en la siguiente lógica:

  • Las condiciones de entrada para las posiciones largas:
    • La línea MACD es más alta que la línea de señal
    • Supertrend se muestra en verde
    • El precio de cierre es superior al de Parabolic SAR
  • Condiciones para acceder a las bodegas vacías:
    • La línea MACD está por debajo de la línea de señal
    • Supertrend aparece en rojo (cabeza en blanco)
    • El precio de cierre es inferior al de Parabolic SAR

Ventajas estratégicas

  1. Verificación integrada de múltiples indicadores: reducir el riesgo de falsas señales
  2. El mecanismo de activación de la señal flexible: no se requiere una secuencia estricta de activación de los indicadores
  3. Estrategia de negociación de todo el almacén: maximizar los beneficios potenciales de cada transacción
  4. Lógica de transacción simétrica: desempeño consistente en el mercado de capas múltiples y en el mercado de capas vacías
  5. Mecanismo de salida dinámico: confirmación de dos líneas K consecutivas para evitar la salida prematura

Riesgo estratégico

  1. Riesgo de retraso en los indicadores: los indicadores técnicos se basan en datos históricos y pueden tener retrasos
  2. Riesgo de negociación de posición completa: el stop loss no establecido puede provocar una mayor volatilidad de los fondos
  3. Riesgo de fluctuaciones extremas en el mercado: un entorno de mercado complejo podría afectar la estrategia
  4. Sensibilidad de parámetros: la elección de los parámetros del indicador afecta directamente el efecto de la estrategia

Dirección de optimización de la estrategia

  1. Introducción de la gestión dinámica de las posiciones: ajuste del tamaño de las posiciones en función de la volatilidad del mercado
  2. Aumentar el mecanismo de detención de pérdidas: reducir la pérdida máxima de una sola transacción
  3. Optimización de parámetros indicadores: encontrar la mejor combinación de parámetros mediante retroalimentación
  4. Introducción de condiciones de filtro adicionales, como el volumen de transacciones y el índice de volatilidad
  5. Aumento de la verificación de múltiples marcos de tiempo: mejora de la fiabilidad de la señal

Resumir

La estrategia de negociación multi-indicador de Vishal es un método de negociación cuantitativa innovador que ofrece un marco de decisión de negociación completo y flexible a través de la sinergia de MACD, Supertrend y Parabolic SAR. A pesar de los riesgos, su verificación de múltiples indicadores y su lógica de negociación simétrica ofrecen a los inversores un modelo de negociación que vale la pena estudiar en profundidad.

Código Fuente de la Estrategia
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-27 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Vishal Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// **MACD Inputs & Calculation**
fast_length  = input.int(13, title="MACD Fast Length")
slow_length  = input.int(27, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Smoothing")

fast_ma  = ta.ema(close, fast_length)
slow_ma  = ta.ema(close, slow_length)
macd     = fast_ma - slow_ma
signal   = ta.ema(macd, signal_length)
hist     = macd - signal

// **Supertrend Inputs & Calculation**
atrPeriod = input.int(11,    "ATR Length", minval = 1)
factor    = input.float(3.0, "Factor",     minval = 0.01, step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bullTrend  = direction < 0   // Uptrend Condition
bearTrend  = direction > 0   // Downtrend Condition

// **Parabolic SAR Inputs & Calculation**
sarStep = input.float(0.02, "Parabolic SAR Step")
sarMax  = input.float(0.2, "Parabolic SAR Max")
sar = ta.sar(sarStep, sarStep, sarMax)

// **Trade Entry Conditions**
macdBullish = macd > signal // MACD in Bullish Mode
macdBearish = macd < signal // MACD in Bearish Mode
priceAboveSAR = close > sar // Price above SAR (Bullish)
priceBelowSAR = close < sar // Price below SAR (Bearish)

// **Boolean Flags to Track Conditions Being Met**
var bool macdConditionMet = false
var bool sarConditionMet = false
var bool trendConditionMet = false

// **Track if Each Condition is Met in Any Order**
if (macdBullish)
    macdConditionMet := true
if (macdBearish)
    macdConditionMet := false

if (priceAboveSAR)
    sarConditionMet := true
if (priceBelowSAR)
    sarConditionMet := false

if (bullTrend)
    trendConditionMet := true
if (bearTrend)
    trendConditionMet := false

// **Final Long Entry Signal (Triggers When All Three Flags Are True)**
longSignal = macdConditionMet and sarConditionMet and trendConditionMet

// **Final Short Entry Signal (Triggers When All Three Flags Are False)**
shortSignal = not macdConditionMet and not sarConditionMet and not trendConditionMet

// **Execute Full Equity Trades**
if (longSignal)
    strategy.entry("Long", strategy.long)

if (shortSignal)
    strategy.entry("Short", strategy.short)

// **Exit Logic - Requires 2 Consecutive Candle Closes Below/Above SAR**
var int belowSARCount = 0
var int aboveSARCount = 0

if (strategy.position_size > 0)  // Long position is active
    belowSARCount := close < sar ? belowSARCount + 1 : 0
    if (belowSARCount >= 1)
        strategy.close("Long")

if (strategy.position_size < 0)  // Short position is active
    aboveSARCount := close > sar ? aboveSARCount + 1 : 0
    if (aboveSARCount >= 1)
        strategy.close("Short")

// **Plot Indicators**
plot(supertrend, title="Supertrend", color=bullTrend ? color.green : color.red, linewidth=2, style=plot.style_linebr)
plot(sar, title="Parabolic SAR", color=color.blue, style=plot.style_cross, linewidth=2)
plot(macd, title="MACD Line", color=color.blue, linewidth=2)
plot(signal, title="MACD Signal", color=color.orange, linewidth=2)
plot(hist, title="MACD Histogram", style=plot.style_columns, color=hist >= 0 ? color.green : color.red)