En la carga de los recursos... Cargando...

Integración de señales dinámicas de varios períodos TIC Estrategia de avance de la estructura inteligente

El autor:¿ Qué pasa?, Fecha: 2025-01-06 14:09:05
Las etiquetas:Indicador de riesgoEl MACDEl EMAEl BOSFVGEl HTFEl LTFLas TIC

img

Resumen general

Esta estrategia es un sistema de negociación integral que combina múltiples indicadores técnicos con TIC (Conceptos Institucionales de Negociación). Integra los indicadores de análisis técnico tradicionales (RSI, Estocástico, MACD, EMA) con los conceptos de negociación de TIC modernos (Fair Value Gap, Break of Structure, Higher Timeframe Bias Analysis) en diferentes marcos de tiempo, implementando un control preciso de la entrada al mercado a través de un estricto filtrado de la sesión de negociación.

Principios de estrategia

La estrategia se basa en cinco componentes fundamentales que trabajan en sinergia:

  1. Análisis de sesgo de margen de tiempo superior: utilizando 200 EMA para determinar la dirección de la tendencia del mercado en margos de tiempo más altos
  2. Filtro de sesión de negociación: negociación restringida a una zona específica Kill Zone (07:00-10:00)
  3. Identificación de la brecha de valor razonable (FVG): reconocimiento de las brechas estructurales del mercado mediante patrones de tres velas
  4. Determinación de la ruptura de la estructura (BOS): confirmación de cambios direccionales basados en los niveles clave de precios
  5. Confirmación del indicador de margen de tiempo inferior: verificación múltiple utilizando RSI, estocástico, MACD y 200 EMA

Ventajas estratégicas

  1. Integración multidimensional de señales: mejora la fiabilidad de la señal mediante la combinación de múltiples indicadores técnicos independientes y conceptos de TIC
  2. Sinergia de plazos: la coordinación de plazos más altos y más bajos mejora la estabilidad de la señal
  3. Captura de oportunidades estructurales: se centra en oportunidades de comercio estructurales de alta probabilidad mediante la identificación de FVG y BOS
  4. Control integral del riesgo: incluye mecanismos de detención de pérdidas y de obtención de ganancias, gestión estandarizada del dinero
  5. Optimización del tiempo de negociación: Reduce la interferencia de las sesiones no comerciales a través del filtro de tiempo

Riesgos estratégicos

  1. Lag de señal: la combinación de varios indicadores puede provocar un retraso en el tiempo de entrada.
  2. Performance del mercado lateral: puede generar frecuentes falsas señales en mercados variados
  3. Sensibilidad de los parámetros: para múltiples parámetros de indicadores se requiere una validación exhaustiva de los datos históricos.
  4. Riesgo de ejecución: las combinaciones complejas de condiciones pueden perder algunas oportunidades de negociación en la negociación en vivo
  5. Dependencia del entorno del mercado: el rendimiento de la estrategia puede variar significativamente según las diferentes condiciones del mercado

Direcciones para la optimización de la estrategia

  1. Ajuste dinámico de parámetros: ajuste adaptativo de los parámetros de los indicadores basado en la volatilidad del mercado
  2. Clasificación del entorno de mercado: añadir un módulo de reconocimiento del entorno de mercado para diferentes combinaciones de parámetros
  3. Optimización del peso de la señal: introducción de métodos de aprendizaje automático para optimizar la distribución del peso del indicador
  4. Prórroga del plazo: Incluir más análisis de plazo para mejorar la fiabilidad de la señal
  5. Mejora del control de riesgos: introducción de mecanismos dinámicos de stop-loss y optimización de las estrategias de gestión de fondos

Resumen de las actividades

La estrategia construye un sistema comercial integral mediante la integración del análisis técnico tradicional con los conceptos modernos de TIC. Sus fortalezas se encuentran en la confirmación de señales multidimensionales y el control estricto de riesgos, mientras que enfrenta desafíos en la optimización de parámetros y la adaptabilidad del mercado.


/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// -----------------------------------------------------
// Multi-Signal Conservative Strategy (Pine Script v5)
// + More ICT Concepts (HTF Bias, FVG, Killzone, BOS)
// -----------------------------------------------------
//
// Combines:
// - RSI, Stochastic, MACD, 200 EMA (lower TF)
// - Higher Timeframe (HTF) bias check via 200 EMA
// - Kill Zone time filter
// - Fair Value Gap (FVG) detection (simplified 3-candle approach)
// - Break of Structure (BOS) using pivot highs/lows
// - Only trade markers on chart (no extra indicator plots).
//
// Use on lower timeframes: 1m to 15m
// Always backtest thoroughly and manage risk properly.
//
// -----------------------------------------------------
//@version=5
strategy(title="Multi-Signal + ICT Concepts (HTF/FVG/Killzone/BOS)", shorttitle="ICTStrategyExample",overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------
// User Inputs
// -----------------------------------------------------
/////////////// Lower TF Inputs ///////////////
emaLength       = input.int(200,   "LTF EMA Length",           group="Lower TF")
rsiLength       = input.int(14,    "RSI Length",               group="Lower TF")
rsiUpper        = input.int(60,    "RSI Overbought Thresh",    group="Lower TF", minval=50, maxval=80)
rsiLower        = input.int(40,    "RSI Oversold Thresh",      group="Lower TF", minval=20, maxval=50)
stochLengthK    = input.int(14,    "Stoch K Length",           group="Lower TF")
stochLengthD    = input.int(3,     "Stoch D Smoothing",        group="Lower TF")
stochSmooth     = input.int(3,     "Stoch Smoothing",          group="Lower TF")
macdFast        = input.int(12,    "MACD Fast Length",         group="Lower TF")
macdSlow        = input.int(26,    "MACD Slow Length",         group="Lower TF")
macdSignal      = input.int(9,     "MACD Signal Length",       group="Lower TF")

/////////////// ICT Concepts Inputs ///////////////
htfTimeframe    = input.timeframe("60", "HTF for Bias (e.g. 60, 240)", group="ICT Concepts")
htfEmaLen       = input.int(200,  "HTF EMA Length",                   group="ICT Concepts")
sessionInput    = input("0700-1000:1234567", "Kill Zone Window", group="ICT Concepts")
fvgLookbackBars = input.int(2,    "FVG Lookback Bars (3-candle check)",  group="ICT Concepts", minval=1, maxval=10)

/////////////// Risk Management ///////////////
stopLossPerc    = input.float(0.5, "Stop-Loss %",  step=0.1, group="Risk")
takeProfitPerc  = input.float(1.0, "Take-Profit %", step=0.1, group="Risk")

// -----------------------------------------------------
// 1) Higher Timeframe Bias
// -----------------------------------------------------
//
// We'll request the HTF close, then compute the HTF EMA on that data
// to decide if it's bullish or bearish overall.

htfClose       = request.security(syminfo.tickerid, htfTimeframe, close)
htfEma         = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, htfEmaLen))
isBullHTF      = htfClose > htfEma
isBearHTF      = htfClose < htfEma

// -----------------------------------------------------
// 2) Kill Zone / Session Filter
// -----------------------------------------------------
//
// We'll only consider trades if the current bar is within
// the user-defined session time (e.g., 07:00 to 10:00 local or exchange time).

isInKillZone = time(timeframe.period, sessionInput) != 0

// -----------------------------------------------------
// 3) Fair Value Gap (FVG) Detection (Simplified)
//
// For a "Bullish FVG" among bars [2], [1], [0]:
//     high[2] < low[0] => there's a gap that bar [1] didn't fill
// For a "Bearish FVG":
//     low[2] > high[0] => there's a gap that bar [1] didn't fill
//
// Real ICT usage might check partial fill, candle bodies vs wicks, etc.
// This is just a minimal example for demonstration.

fvgBarsAgo = fvgLookbackBars // default = 2
bullFVG = high[fvgBarsAgo] < low  // e.g. high[2] < low[0]
bearFVG = low[fvgBarsAgo]  > high // e.g. low[2]  > high[0]

// -----------------------------------------------------
// 4) Break of Structure (BOS)
// -----------------------------------------------------
// Using pivot detection from previous example:

swingLen = 2  // pivot detection length (bars on each side)
// Identify a pivot high at bar [1]
swingHigh = high[1] > high[2] and high[1] > high[0]
// Identify a pivot low at bar [1]
swingLow  = low[1]  < low[2]  and low[1]  < low[0]

// Track the most recent pivot high & low
var float lastPivotHigh = na
var float lastPivotLow  = na

if swingHigh
    lastPivotHigh := high[1]

if swingLow
    lastPivotLow := low[1]

bosUp   = not na(lastPivotHigh) and (close > lastPivotHigh)
bosDown = not na(lastPivotLow)  and (close < lastPivotLow)

// -----------------------------------------------------
// 5) Lower TF Indicator Calculations
// -----------------------------------------------------
ema200      = ta.ema(close, emaLength)  // 200 EMA on LTF
rsiValue    = ta.rsi(close, rsiLength)
kValue      = ta.stoch(high, low, close, stochLengthK)
dValue      = ta.sma(kValue, stochLengthD)
stochSignal = ta.sma(dValue, stochSmooth)
[macdLine, signalLine, histLine] = ta.macd(close, macdFast, macdSlow, macdSignal)

// LTF trend filter
isBullTrend = close > ema200
isBearTrend = close < ema200

// -----------------------------------------------------
// Combine All Conditions
// -----------------------------------------------------
//
// We'll require that all filters line up for a long or short:
//  - HTF bias
//  - kill zone
//  - bullish/bearish FVG
//  - BOS up/down
//  - RSI, Stoch, MACD alignment
//  - Price above/below LTF 200 EMA

longCondition = isInKillZone                     // must be in session
 and isBullHTF                                   // HTF bias bullish
 and bullFVG                                     // bullish FVG
 and bosUp                                       // BOS up
 and (rsiValue > rsiUpper)                       // RSI > threshold
 and (kValue > dValue)                           // stoch K above D
 and (macdLine > signalLine)                     // MACD bullish
 and isBullTrend                                 // above LTF 200 EMA

shortCondition = isInKillZone                    // must be in session
 and isBearHTF                                   // HTF bias bearish
 and bearFVG                                     // bearish FVG
 and bosDown                                     // BOS down
 and (rsiValue < rsiLower)                       // RSI < threshold
 and (kValue < dValue)                           // stoch K below D
 and (macdLine < signalLine)                     // MACD bearish
 and isBearTrend                                 // below LTF 200 EMA

// -----------------------------------------------------
// Strategy Entries
// -----------------------------------------------------
if longCondition
    strategy.entry("Long Entry", strategy.long)

if shortCondition
    strategy.entry("Short Entry", strategy.short)

// -----------------------------------------------------
// Risk Management (Stop-Loss & Take-Profit)
// -----------------------------------------------------
if strategy.position_size > 0
    // Long position exit
    strategy.exit("Long Exit", stop  = strategy.position_avg_price * (1.0 - stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 + takeProfitPerc/100.0))

if strategy.position_size < 0
    // Short position exit
    strategy.exit("Short Exit",  stop  = strategy.position_avg_price * (1.0 + stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 - takeProfitPerc/100.0))

// -----------------------------------------------------
// Hide All Indicator Plots
// (We only show trade markers for entry & exit)
// -----------------------------------------------------
// Comment out or remove any plot() calls so chart stays clean.
//
// Example (commented out):
// plot(ema200, title="EMA 200", color=color.new(color.yellow, 0), linewidth=2)
// plot(rsiValue, title="RSI", color=color.new(color.blue, 0))
// plot(macdLine, title="MACD", color=color.new(color.teal, 0))
// plot(signalLine, title="Signal", color=color.new(color.purple, 0))


Relacionados

Más.