One Process / One Risk, de pares de trading a gestión de operaciones.

One Process / One Risk, de pares de trading a gestión de operaciones.

Una lección de Gestión de Riesgos desde la experiencia del Trading Profesional.

En los laboratorios de Gestión de Riesgos utilizando operaciones de trading como mesas de juego estratégicas, estábamos discutiendo lo conveniente que es operar solo un par y salimos con una potente guía de estudio:

Pero a nosotros nos interesa más hacer una transferencia conceptual muy potente para el enfoque de gestión industrial: el principio de “Operar un solo par” puede convertirse en “Gestionar un riesgo crítico a la vez, dentro de un proceso claramente delimitado”.

La clave es no copiar el trading literalmente, sino trasladar la lógica de concentración, especialización, memoria operacional y control de exposición.

Del Trading a la Fábrica

Trading — One PairGestión de Riesgos en fábrica
Elegir un solo parConcentrarse en un proceso / línea / flujo crítico
Conocer profundamente el comportamiento del parConocer profundamente el comportamiento del proceso
VolatilidadVariabilidad del proceso
Rango diarioRango normal de variación de producción, calidad, scrap, OEE, demanda, etc.
SpreadIncertidumbre / margen de error operativo
LiquidezDisponibilidad de materiales, capacidad, recursos y respuesta
Sesión de Londres/NYVentana operativa crítica: turno, cambio de modelo, arranque, mantenimiento, etc.
Stop LossLímite de control / condición de parada
Take ProfitObjetivo operacional
Lot sizeNivel de exposición al riesgo
CuentaPatrimonio / capacidad de absorción de pérdidas de la operación
1% de riesgoMáxima exposición aceptable por evento
Multi-pairAbrir demasiados frentes simultáneamente
One-pair masteryDominio profundo de un proceso crítico

1. El concepto central cambia

En trading:

No necesitas operar todo. Necesitas dominar una cosa.

En fábrica:

No necesitas controlar todo con la misma intensidad. Necesitas identificar qué procesos pueden destruir valor y concentrar allí la gestión.

Esto cambia bastante la filosofía tradicional de gestión de riesgos.

No significa ignorar los demás procesos. Significa asignar intensidad de gestión proporcional al riesgo.

Ejemplo

Una planta puede tener:

  • Recepción de materias primas
  • mezclado
  • termoformado
  • impresión
  • corte
  • empaque
  • almacén
  • Mantenimiento
  • despacho

Pero quizá el termoformado concentra:

  • 45% del consumo energético
  • 60% del scrap
  • Mayor variabilidad de espesor
  • Mayor costo de paro
  • Mayor impacto sobre entregas.

Entonces no tendría sentido dedicar la misma energía gerencial a todos.

Ese proceso es tu “XAUUSD”.


2. “One Pair” → “One Critical Value Stream”

Aquí creo que podemos convertirlo en una herramienta propia de la metodología.

ONE CRITICAL FLOW

Primero preguntamos:

¿Dónde está concentrada la mayor exposición de valor?

Y seleccionamos un flujo crítico.

Por ejemplo:

Materia prima → Extrusión → Termoformado → Inspección → Empaque

En lugar de abrir 15 proyectos simultáneos de mejora, se estudia ese flujo de extremo a extremo.

Se busca conocerlo hasta el punto de reconocer:

  • comportamiento normal
  • comportamiento anormal
  • restricciones
  • cuellos de botella
  • variabilidad
  • pérdidas
  • modos de falla
  • señales tempranas
  • capacidad de recuperación.

Exactamente como un trader que termina conociendo profundamente el comportamiento de un solo instrumento.


3. Volatilidad → Variabilidad operacional

Esta es probablemente la equivalencia más interesante.

En trading:

Alta volatilidad ≠ necesariamente mala.

Significa que el instrumento se mueve más y exige una gestión de riesgo diferente.

En fábrica:

Alta variabilidad ≠ necesariamente un proceso malo.

Pero sí significa que exige mayor control y mayor capacidad de absorción.

Por ejemplo:

VariableProceso estableProceso volátil
Scrap2–3%2–12%
Velocidad98–102% estándar75–115%
Espesor±2%±8%
Paros1 h/semana8 h/semana
Consumo energéticoestablealtamente variable

El error gerencial sería decir:

“Este proceso tiene problemas.”

La pregunta correcta sería:

“¿Cuál es su distribución normal de comportamiento y cuándo deja de ser normal?”

Eso es exactamente lo que hace un trader profesional con la volatilidad.


4. El Stop Loss industrial

Aquí podemos hacer una conexión especialmente poderosa para tu curso.

Un trader define:

“Si llega aquí, mi hipótesis quedó invalidada.”

En una operación industrial:

“Si llegamos aquí, nuestra condición de operación dejó de ser aceptable.”

Ejemplos:

Seguridad

  • Vibración > límite
  • Temperatura > límite
  • presión > límite
  • concentración > límite

Calidad

  • defecto > X%
  • dimensión fuera de especificación
  • tendencia de rechazo creciente

Producción

  • OEE < determinado nivel
  • velocidad < capacidad mínima
  • backlog > límite

Mantenimiento

  • MTBF cayendo
  • MTTR aumentando
  • condición crítica detectada.

Entonces:

STOP LOSS = condición objetiva de intervención.

No es una opinión del supervisor.


5. El gran error: “Multi-Pair Management”

Aquí la analogía se vuelve brutalmente útil para una gerencia.

El trader abre:

EUR/USD + XAU/USD + GBP/JPY + BTC + NASDAQ + petróleo…

y termina sin conocer realmente ninguno.

En fábrica sucede algo equivalente:

Lean + TPM + SMED + energía + scrap + digitalización + mantenimiento + seguridad + ESG + inventarios + productividad…

todo simultáneamente.

Resultado:

  • muchas reuniones
  • muchos KPIs
  • muchos proyectos
  • poca profundidad
  • poca ejecución
  • fatiga organizacional.

Es el equivalente industrial de tener 12 gráficos abiertos.


6. One-Pair → One Operational Focus

Podríamos establecer una regla:

ONE OPERATIONAL FOCUS

En cada ciclo de gestión:

1 proceso crítico

1 problema dominante

1 hipótesis causal

1 conjunto de controles

1 ventana de observación

1 decisión

No significa que la fábrica deje de operar el resto.

Significa que la capacidad cognitiva de la organización se concentra donde el impacto marginal de la gestión es mayor.


7. Y aquí aparece el concepto de “Risk Budget”

En trading:

No puedo arriesgar más del 1% de mi cuenta.

En fábrica:

No puedo permitir que un evento de determinado tipo consuma más de X% de mi capacidad, margen, servicio o seguridad operacional.

Podríamos construir un Operational Risk Budget:

Riesgo financiero

  • $ máximo de pérdida

Riesgo de capacidad

  • horas máximas de paro

Riesgo de calidad

  • % máximo de scrap/rechazo

Riesgo de servicio

  • pedidos máximos afectados

Riesgo energético

  • desviación máxima kWh/unidad

Riesgo ambiental

  • desviación máxima de emisiones/residuos

Riesgo de seguridad

  • tolerancia cero para ciertos eventos críticos

Y aquí hay una precisión importante:

No todos los riesgos pueden tratarse con un porcentaje.

En seguridad de personas, cumplimiento legal o riesgos catastróficos, el criterio puede ser ALARP, eliminación, ingeniería de controles o tolerancia cero, no simplemente “aceptar 1%”.


8. Las dos preguntas del “One Pair” se vuelven industriales

Nuestros estudios en Trading utilizan dos preguntas:

Q1 —¿Cuál es tu cuenta?

En fábrica:

¿Cuál es tu capacidad de absorción?

¿Estamos hablando de una línea de:

  • $100k/hora de producción?
  • $500k de inventario?
  • 8 horas de capacidad?
  • 2 días de inventario?
  • 50,000 unidades/día?

Q2 —¿Cuándo puedes operar?

En trading:

La sesión determina tu ventaja.

En fábrica:

La condición operacional determina tu exposición.

Por ejemplo:

  • arranque
  • cambio de formato
  • cambio de materia prima
  • turno nocturno
  • mantenimiento
  • alta demanda
  • producto nuevo
  • proveedor nuevo.

Una línea que normalmente tiene un riesgo bajo puede convertirse en alta exposición durante un cambio de formato.


9. El equivalente industrial de “Master the One Pair”

Podría quedar así:

No necesitas controlar cada variable al mismo nivel. Necesitas dominar las variables que controlan el comportamiento del proceso.

Y eso nos lleva directamente a Value Stream Mapping + Risk Management.

Primero:

¿Dónde se crea valor?

Después:

¿Dónde puede destruirse valor?

Después:

¿Qué variables anuncian que estamos entrando en una zona peligrosa?

Y finalmente:

¿Qué acción debemos ejecutar antes de que ocurra la pérdida?

Eso ya no es simplemente gestión de riesgos.

Es gestión anticipada de la variabilidad del flujo de valor.


10. Y ahora esto se convierte en una herramienta propia para la Gestión de Riesgo y a la Administración de las Operaciones

Esta es una versión industrial de la guía:

GUÍA ESENCIAL — OPERAR UN SOLO PROCESO

① ELIGE TU FLUJO CRÍTICO

¿Dónde está concentrado el mayor impacto?

② CONOCE SU COMPORTAMIENTO

¿Cuál es su variabilidad normal?

③ DEFINE SU EXPOSICIÓN

¿Cuánto valor puede perderse?

④ IDENTIFICA SUS SEÑALES

¿Qué indicadores anticipan la desviación?

⑤ DEFINE TU STOP OPERACIONAL

¿Cuándo debes intervenir?

⑥ OPERA CON FOCO

Un problema crítico → una hipótesis → una acción.

⑦ DOMINA ANTES DE ESCALAR

Primero estabilizar → después optimizar → finalmente replicar.

Cerrando con una frase equivalente a la del trading:

“No necesitas mejorar toda la fábrica. Necesitas dominar el flujo que más valor puede destruir.”

Validación Post-Ejecución del Pronóstico Institucional

Validación Post-Ejecución del Pronóstico Institucional

XAUUSD — Semana del 13 al 17 de julio de 2026

Metodología evaluada: ATC Suite (ATC Radar Institucional + Institutional Scoring Engine + Decision Matrix + Executive Brief)

Objetivo de la revisión

Evaluar objetivamente la calidad del análisis emitido antes de la apertura semanal, contrastándolo con el comportamiento real del mercado, e identificar oportunidades de mejora bajo principios de mejora continua, Lean Thinking y gestión profesional del riesgo.

Resumen Ejecutivo

La revisión evidencia que el análisis institucional anticipó correctamente el contexto macro, las zonas de liquidez relevantes y la secuencia operacional esperada, aun cuando durante la semana el mercado estuvo influenciado por noticias macroeconómicas y geopolíticas que incrementaron la volatilidad.

Desde una perspectiva de gestión de riesgos, el modelo no buscó predecir cada movimiento, sino identificar dónde existía mayor probabilidad de intervención institucional y dónde el riesgo era más eficiente.

Ese objetivo se cumplió de forma satisfactoria.

Comparación Pronóstico vs Realidad

AspectoPronósticoResultadoEvaluación
Contexto HTF bajista✅ Excelente
Zona institucional 4005–3980Identificada previamenteRespetada y generó rebote✅ Excelente
Esperar evidencia antes de comprarCorrecto✅ Excelente
Rebote técnico desde demandaProbableOcurrió✅ Correcto
Evitar compras en mitad del rangoCorrecto✅ Excelente
Zona de venta 4135–4160MarcadaPrecio aún no la alcanza⏳ Pendiente
Zona institucional 4185–4215Marcada como decisión mayorAún no visitada⏳ Vigente

Validación de Hipótesis

Hipótesis 1

La zona 4005–3980 concentraba liquidez institucional.

Resultado

Confirmada.

El mercado descendió directamente hacia esa región.

Posteriormente apareció absorción de ventas y comenzó un rebote.

Esto coincide con la lectura de:

  • Discount
  • Buy Side Liquidity
  • Mitigation
  • Demand Zone

Evaluación

✅ Confirmada

Hipótesis 2

No existía confirmación para compras antes de llegar a demanda.

Resultado.

Correcto.

Comprar antes de alcanzar la zona hubiera significado asumir riesgo innecesario.

El mercado continuó cayendo exactamente hasta la región institucional.

Evaluación

✅ Confirmada

Hipótesis 3

El contexto HTF seguía siendo bajista.

Resultado.

Aunque apareció un rebote importante, la estructura principal continúa descendente.

En H4 todavía no existe evidencia suficiente de reversión estructural.

Evaluación

✅ Confirmada

Validación del Institutional Scoring Engine

Score emitido

56 /100

Clasificación

WATCH

En retrospectiva, este puntaje fue consistente con el desarrollo del mercado.

No existía suficiente evidencia para aprobar un escenario Premium.

El mercado permaneció:

  • lateral
  • correctivo
  • dependiente de noticias

El ISE evitó clasificar prematuramente un escenario como institucional.

Evaluación

Excelente calibración del modelo.

Gestión del Riesgo

Uno de los mayores aciertos fue que el modelo priorizó:

Esperar evidencia.

En vez de:

Anticipar el rebote.

Desde una óptica de Risk Management, esto reduce:

  • operaciones innecesarias
  • entradas impulsivas
  • drawdowns evitables
  • exposición emocional

En términos Lean, esto equivale a eliminar desperdicio operativo (muda) derivado de decisiones sin confirmación.

Influencia de Eventos Exógenos

Durante la semana existieron movimientos acelerados asociados a:

  • noticias geopolíticas,
  • fortaleza/debilidad del DXY (visible en el gráfico aportado),
  • expectativas macroeconómicas sobre el dólar.

Estos factores generaron volatilidad adicional que no puede inferirse únicamente desde la estructura técnica.

No obstante, el modelo mantuvo su utilidad porque delimitó previamente las zonas donde esa volatilidad tenía mayor probabilidad de encontrar respuesta institucional.

Oportunidades de Mejora

1. Incorporar un Índice de Riesgo Macroeconómico (MRI)

El análisis podría incluir un indicador cualitativo que clasifique la semana según exposición a eventos externos:

  • 🟢 Baja volatilidad esperada
  • 🟡 Moderada
  • 🔴 Alta (CPI, FOMC, NFP, conflictos geopolíticos, etc.)

Esto ayudaría a ajustar expectativas sin alterar la lectura estructural.

2. Medir la precisión de las zonas

Conviene comenzar a registrar métricas como:

  • porcentaje de reacción por zona,
  • profundidad máxima de penetración,
  • tiempo hasta la reacción,
  • extensión del movimiento posterior.

Con suficientes muestras, ATC Suite podría construir estadísticas propias sobre la eficacia de sus zonas institucionales.

3. Crear un KPI de «Calidad del Pronóstico»

Más allá de acertar la dirección, evaluar:

  • precisión de niveles,
  • calidad del contexto,
  • gestión del riesgo,
  • eficiencia de las entradas,
  • control del drawdown.

Esto alinearía el análisis con métricas ejecutivas, no solo con resultados de mercado.

Lecciones Aprendidas

La revisión refuerza varios principios fundamentales de la metodología:

  • El contexto prevalece sobre la entrada.
  • Las zonas institucionales son áreas de evaluación, no órdenes automáticas.
  • La confirmación reduce riesgo, aunque implique entrar más tarde.
  • La calidad del proceso es más importante que el resultado aislado de una operación.

Conclusión

Desde una perspectiva de gobierno, gestión de riesgos y mejora continua, la metodología ATC Suite mostró un desempeño sólido durante la semana evaluada.

Los principales logros fueron:

  • anticipación correcta de las zonas de mayor interés institucional;
  • preservación del contexto bajista de alta temporalidad;
  • evitación de entradas prematuras mediante un enfoque basado en evidencia;
  • adecuada calibración del Institutional Scoring Engine (clasificación WATCH), coherente con un mercado sin confirmación estructural alcista.

Las oportunidades identificadas se orientan a fortalecer la metodología mediante la integración de variables macroeconómicas y la creación de indicadores cuantitativos de desempeño.

Evaluación global del proceso

DimensiónResultado
Precisión del contexto HTF9.5/10
Precisión de zonas institucionales9.5/10
Gestión del riesgo10/10
Adaptabilidad a volatilidad exógena8.5/10
Calidad metodológica9.5/10
Calificación global9.4/10

Siguientes pasos.

El siguiente paso natural para ATC Suite es evolucionar desde una herramienta de análisis hacia un sistema medible de inteligencia institucional. Cada pronóstico debería registrarse y auditarse posteriormente, generando indicadores históricos de precisión, eficacia de las zonas, control del riesgo y comportamiento bajo distintos regímenes de mercado. Ese enfoque convertiría la metodología en un sistema de mejora continua basado en evidencia, comparable a un cuadro de mando integral utilizado por una organización para optimizar sus procesos.

📊 XAUUSD | ¿Rebote técnico o continuación de la distribución institucional?

📊 XAUUSD | ¿Rebote técnico o continuación de la distribución institucional?

Este fin de semana contrastamos dos enfoques diferentes de lectura del mercado sobre XAUUSD.

El primero, una lectura técnica tradicional realizada por uno de los Directivos que toma el curso de Gestión de Riesgos bajo enfoque de Trading, basada en estructura multi-timeframe y niveles operativos.

El segundo, mi análisis mediante ATC Suite, una metodología enfocada en Smart Money Concepts (SMC), ICT, Wyckoff, Order Flow y evaluación institucional basada en evidencia estructural.

Lo interesante es que, aunque ambos parten de metodologías distintas, las conclusiones convergen en los niveles clave.

Coincidencias más relevantes

🔴 Contexto Macro

La estructura de fondo continúa siendo correctiva.

Aunque aparecen rebotes en temporalidades menores, el contexto de mayor jerarquía (D1 y H4) todavía mantiene presión bajista.

En gestión profesional del riesgo, el contexto siempre tiene prioridad sobre la entrada.


🟢 Zona de soporte institucional

Ambos análisis identifican como área crítica:

4005 – 4040

Desde la óptica institucional, esta zona concentra:

✅ Liquidez compradora (SSL)

✅ Mitigation Blocks

✅ Descuento (Discount)

✅ Probable absorción de órdenes

Mientras esta región permanezca defendida, el mercado conserva capacidad para generar rebotes técnicos.


🔴 Zona de oferta institucional

La primera zona donde esperaríamos presión vendedora es:

4135 – 4160

Y la verdadera prueba institucional continúa siendo:

4185 – 4215

En ATC Suite esta región reúne varios factores de confluencia:

• Bearish Order Blocks

• Liquidez de Buy Side

• Posible mitigación institucional

• Confluencia dinámica con medias

• Zona Premium del rango actual

No significa que el precio deba caer allí.

Significa que es donde tendría sentido que los participantes institucionales vuelvan a decidir.


Escenario con mayor probabilidad

La evidencia visible sugiere el siguiente flujo:

1️⃣ Impulso hacia 4135–4160.

2️⃣ Si el momentum continúa, extensión hacia 4185–4215.

3️⃣ En esa región evaluar:

  • Confirmación de ruptura (BOS + CHOCH + aceptación).
  • Rechazo institucional.
  • Distribución.
  • Toma de beneficios.

No anticipar.

Esperar evidencia.


Lo que muestra el Institutional Scoring Engine (ISE)

Nuestro modelo cuantitativo asigna actualmente un escenario WATCH (56/100).

¿Por qué?

Porque todavía no existe suficiente evidencia para clasificar el mercado como un setup institucional de alta calidad.

Aspectos pendientes:

  • CHOCH confirmado.
  • Market Structure Shift validado.
  • BOS alcista de mayor jerarquía.
  • Recuperación sostenida de la zona 4185–4215.

Hasta entonces, el sesgo estratégico sigue siendo de observación, no de persecución del precio.


La diferencia entre operar y gestionar riesgo

Muchos traders preguntan:

«¿Compra o venta?»

Los participantes institucionales hacen una pregunta distinta:

¿Existe suficiente evidencia para asumir este riesgo?

Ese cambio de enfoque transforma por completo la toma de decisiones.

En ATC Suite no buscamos adivinar el siguiente movimiento.

Buscamos determinar si el mercado ofrece una ventaja estadística respaldada por estructura, liquidez y contexto.

Porque en los mercados, como en la gestión empresarial, una buena decisión no siempre produce un buen resultado; pero una mala metodología casi siempre termina produciendo malos resultados.


Zonas a vigilar durante la semana

🟢 Compradores

  • 4085–4065
  • 4040–4020
  • 4005–3980

🔴 Vendedores

  • 4135–4160
  • 4185–4215

La clave no será el nivel en sí, sino cómo reaccione el precio cuando llegue a él.

La evidencia sigue teniendo la última palabra.


Análisis desarrollado mediante ATC Suite — ATC Radar Institucional + Institutional Scoring Engine + Decision Matrix + Executive Brief.

#XAUUSD #Gold #Trading #SmartMoney #ICT #SMC #OrderFlow #RiskManagement #TechnicalAnalysis #TradingView #ATCSuite #InstitutionalTrading #Liquidity #Wyckoff #alextorresconsulting

Alertas Institucionales con SMC: Mejora tu Trading

Alertas Institucionales con SMC: Mejora tu Trading

Este script SMC_BOS_FVG_OB_Pinbar_Sessions_Alerts, es un modelo institucional diseñado para identificar zonas de alta probabilidad basadas en estructura, liquidez y confirmación de intención. Su objetivo es estandarizar la lectura del mercado y ejecutar únicamente cuando se cumplen condiciones institucionales verificables.

A continuación, el manual que documenta la metodología, reglas operativas y ejemplos visuales para su aplicación profesional.

🎯 Objetivo

Este enfoque se fundamenta en:

  • Identificar dónde el mercado toma liquidez.
  • Esperar una ruptura estructural real (BOS).
  • Confirmar intención mediante pinbar institucional.
  • Ejecutar únicamente en mitigación institucional (FVG u OB).
  • Validar con la siguiente vela.
  • Filtrar por RR mínimo y sesión operativa.

Este proceso tiene el objetivo de eliminar ruido, reducir entradas falsas y alinear la ejecución con el comportamiento de mesas institucionales.

⚙️ Configuración Inicial

ParámetroDescripciónRecomendación
Left / Right barsSensibilidad de pivotes2–3 para intradía
RR mínimoRatio mínima para alertar entrada1.5 o superior
SesiónFiltro horarioAsia / Londres / NY según tu operativa
Dibujar zonaVisualización de FVG/OBActivado para backtest, desactivado para ejecución
AlertasActivar/desactivar eventosMantén activadas las de entrada y toque

🔍 Jerarquía de Confirmación

  1. Liquidity Taken → se limpia un extremo previo.
  2. Break of Structure (BOS) → ruptura real del último swing.
  3. Pinbar → rechazo fuerte institucional.
  4. Zona más cercana (FVG u OB) → punto de mitigación.
  5. Toque real de zona → precio entra en la zona.
  6. Confirmación de la siguiente vela → dirección validada.
  7. RR ≥ X y sesión válida → entrada activada.

🧩 Alertas Institucionales

El sistema genera alertas para:

  • BOS
  • Pinbar
  • Toque
  • Entrada

Cada alerta incluye:

  • Dirección (LONG/SHORT)
  • Entry
  • SL
  • TP
  • RR
  • Sesión

Esto permite operar sin estar pegado al gráfico.

TipoDescripciónMensaje 
BOSRuptura estructural“BOS ALCISTA/BAJISTA detectado” 
PinbarRechazo fuerte“Pinbar ALCISTA/BAJISTA detectado” 
ToqueMitigación real“TOQUE de zona (LONG/SHORT)” 
EntradaConfirmación completa“ENTRY LONG/SHORT ACTIVADAEntry: XSL: YTP: ZRR: nSesión: NY”

🧠 Interpretación Visual

  • Líneas amarillas: FVG (rango de desequilibrio).
  • Líneas naranjas: OB (última vela institucional).
  • Líneas rojas / verdes: SL y TP.
  • Línea amarilla continua: punto de entrada.

🧩 Reglas de Ejecución

  • No se anticipan entradas.
  • No se opera sin BOS.
  • No se opera sin pinbar.
  • No se opera sin toque real.
  • No se opera sin confirmación de la siguiente vela.
  • No se opera si RR < mínimo.
  • No se opera fuera de sesión.
  • SL siempre en el swing que generó la liquidez.
  • TP automático a 2R.

🧮 Optimización sugerida

SesiónCaracterísticasRecomendación
AsiaRango y acumulaciónPreparar liquidez
LondresExpansiónMayor frecuencia de BOS
NYManipulaciónMejor confirmación

Conclusiones

El sistema SMC Sniper permite ejecutar con precisión institucional, eliminando ruido y estandarizando la lectura del mercado. Su fortaleza radica en la secuencia lógica y la disciplina operativa.

Script para Pine

//@version=5
indicator("SMC_BOS_FVG_OB_Pinbar_Sessions_Alerts", overlay = true, max_labels_count = 500, max_lines_count = 500)
//---------------------------------------------------------
// INPUTS
//---------------------------------------------------------
left = input.int(2, "Left bars")
right = input.int(2, "Right bars")
showZone = input.bool(true, "Dibujar zona elegida (FVG u OB)")
// Alertas
alertBOS = input.bool(true, "Alerta: BOS detectado")
alertPinbar = input.bool(true, "Alerta: Pinbar detectado")
alertTouch = input.bool(true, "Alerta: Toque de zona")
alertEntry = input.bool(true, "Alerta: Entrada confirmada")
// Filtro de RR mínimo (ratio)
minRR = input.float(1.5, "RR minimo para alertar entrada", step = 0.1)
// Filtro de sesión
sessionChoice = input.string("Londres", "Sesion para alertar entrada", options = ["Asia", "Londres", "Nueva York"])
//---------------------------------------------------------
// SESIONES (ajusta horarios a tu broker si hace falta)
//---------------------------------------------------------
asiaSession = time(timeframe.period, "1800-0000")
londonSession = time(timeframe.period, "0200-0500")
newYorkSession = time(timeframe.period, "0700-1100")
inAsia = not na(asiaSession)
inLondon = not na(londonSession)
inNewYork = not na(newYorkSession)
sessionOK =
(sessionChoice == "Asia" and inAsia) or
(sessionChoice == "Londres" and inLondon) or
(sessionChoice == "Nueva York" and inNewYork)
//---------------------------------------------------------
// 1. Swings (estructura + liquidez)
//---------------------------------------------------------
swingHigh = ta.pivothigh(high, left, right)
swingLow = ta.pivotlow(low, left, right)
var float lastHigh = na
var float lastLow = na
if not na(swingHigh)
lastHigh := swingHigh
if not na(swingLow)
lastLow := swingLow
//---------------------------------------------------------
// 2. Liquidity Taken
//---------------------------------------------------------
liqBuy = not na(lastHigh) and high > lastHigh
liqSell = not na(lastLow) and low < lastLow
//---------------------------------------------------------
// 3. BOS
//---------------------------------------------------------
bosBull = liqBuy and close > lastHigh
bosBear = liqSell and close < lastLow
//---------------------------------------------------------
// 4. FVG
//---------------------------------------------------------
bullFVG = low[1] > high[2]
bearFVG = high[1] < low[2]
var float fvgTop = na
var float fvgBot = na
if bullFVG
fvgTop := low[1]
fvgBot := high[2]
if bearFVG
fvgTop := high[2]
fvgBot := low[1]
//---------------------------------------------------------
// 5. OB (Order Block)
//---------------------------------------------------------
var float obHigh = na
var float obLow = na
if bosBull
obHigh := high[1]
obLow := low[1]
if bosBear
obHigh := high[1]
obLow := low[1]
//---------------------------------------------------------
// 6. Pinbar Confirmation
//---------------------------------------------------------
body = math.abs(close - open)
upperWick = high - math.max(close, open)
lowerWick = math.min(close, open) - low
pinbarBull = lowerWick >= body * 2 and close > open
pinbarBear = upperWick >= body * 2 and close < open
//---------------------------------------------------------
// 7. ELECCION AUTOMATICA: FVG u OB (la mas cercana)
//---------------------------------------------------------
var float zone = na
var bool isFVG = false
// LONG
if bosBull and pinbarBull and not na(fvgBot) and not na(obHigh)
distFVG = math.abs(close - fvgBot)
distOB = math.abs(close - obHigh)
if distFVG < distOB
zone := fvgBot
isFVG := true
else
zone := obHigh
isFVG := false
// SHORT
if bosBear and pinbarBear and not na(fvgTop) and not na(obLow)
distFVG = math.abs(close - fvgTop)
distOB = math.abs(close - obLow)
if distFVG < distOB
zone := fvgTop
isFVG := true
else
zone := obLow
isFVG := false
//---------------------------------------------------------
// 8. TOQUE DE ZONA
//---------------------------------------------------------
touch = not na(zone) and low <= zone and high >= zone
//---------------------------------------------------------
// 9. CONFIRMACION DE LA SIGUIENTE VELA
//---------------------------------------------------------
bullNextConfirm = touch[1] and close > open and close > (low + (high - low) * 0.5)
bearNextConfirm = touch[1] and close < open and close < (high - (high - low) * 0.5)
//---------------------------------------------------------
// 10. ENTRADA FINAL + RR (ratio)
//---------------------------------------------------------
var float entry = na
var float sl = na
var float tp = na
var float rrRatio = na
// LONG
if bullNextConfirm
entry := zone[1]
sl := lastLow
tp := entry + (entry - sl) * 2.0
risk = math.abs(entry - sl)
reward = math.abs(tp - entry)
rrRatio := risk > 0 ? reward / risk : na
// SHORT
if bearNextConfirm
entry := zone[1]
sl := lastHigh
tp := entry - (sl - entry) * 2.0
risk = math.abs(sl - entry)
reward = math.abs(entry - tp)
rrRatio := risk > 0 ? reward / risk : na
//---------------------------------------------------------
// 11. DIBUJAR ZONA ELEGIDA
//---------------------------------------------------------
if showZone and not na(zone)
if isFVG
line.new(bar_index, fvgTop, bar_index - 1, fvgTop, extend = extend.right, color = color.new(color.yellow, 70))
line.new(bar_index, fvgBot, bar_index - 1, fvgBot, extend = extend.right, color = color.new(color.yellow, 70))
else
line.new(bar_index, zone, bar_index - 1, zone, extend = extend.right, color = color.new(color.orange, 70))
//---------------------------------------------------------
// 12. PLOTS
//---------------------------------------------------------
plot(entry, "Entry", color = color.new(color.yellow, 0), style = plot.style_linebr)
plot(sl, "SL", color = color.new(color.red, 0), style = plot.style_linebr)
plot(tp, "TP", color = color.new(color.green, 0), style = plot.style_linebr)
//---------------------------------------------------------
// 13. ALERTAS INSTITUCIONALES (simplificadas)
//---------------------------------------------------------
// BOS
if alertBOS and bosBull
alert("BOS ALCISTA detectado (LONG)", alert.freq_once_per_bar)
if alertBOS and bosBear
alert("BOS BAJISTA detectado (SHORT)", alert.freq_once_per_bar)
// PINBAR
if alertPinbar and pinbarBull
alert("Pinbar ALCISTA detectado", alert.freq_once_per_bar)
if alertPinbar and pinbarBear
alert("Pinbar BAJISTA detectado", alert.freq_once_per_bar)
// TOQUE
if alertTouch and touch
dir = bosBull ? "LONG" : bosBear ? "SHORT" : "NA"
alert("TOQUE de zona (" + dir + ")", alert.freq_once_per_bar)
// ENTRADA FINAL (con filtros RR + sesion)
entryLong = bullNextConfirm and not na(rrRatio) and rrRatio >= minRR and sessionOK
entryShort = bearNextConfirm and not na(rrRatio) and rrRatio >= minRR and sessionOK
if alertEntry and entryLong
msgLong = "ENTRY LONG | Entry: " + str.tostring(entry, format.mintick) +
" | SL: " + str.tostring(sl, format.mintick) +
" | TP: " + str.tostring(tp, format.mintick) +
" | RR: " + str.tostring(rrRatio, format.mintick) +
" | Sesion: " + sessionChoice
alert(msgLong, alert.freq_once_per_bar)
if alertEntry and entryShort
msgShort = "ENTRY SHORT | Entry: " + str.tostring(entry, format.mintick) +
" | SL: " + str.tostring(sl, format.mintick) +
" | TP: " + str.tostring(tp, format.mintick) +
" | RR: " + str.tostring(rrRatio, format.mintick) +
" | Sesion: " + sessionChoice
alert(msgShort, alert.freq_once_per_bar)

Ejemplo visual

En esta imagen vemos la entrada un poco mas arriba de la línea amarilla (por el lag de tiempo del trader), luego del ticker Alcista, triangulo verde a las 820 del 20262005  (este viene del script publicado antes de esta publicación: https://alextorres.consulting/2026/05/15/como-leer-el-mercado-integracion-del-panel-multitimeframe/), nos indica un TP que se cumple una hora después (20260520 0915) y sin tocar SL (línea roja en el gráfico), en un momento volátil del XAUUSD ese 20 de mayo del 2026 que se esperaba las FOMC Meeting Minutes a las 12 pm:

Ilustraciòn tomada de https://www.forexfactory.com

Cómo Leer el Mercado: Integración del Panel Multitimeframe

Cómo Leer el Mercado: Integración del Panel Multitimeframe

Integración del Panel Multitimeframe y el Mapa de Sesiones

🧠 1. Fundamento Institucional

El mercado no se mueve por azar.
Cada desplazamiento responde a intenciones institucionales: acumulación, manipulación y distribución.
El objetivo del trader profesional es leer esas intenciones, no adivinarlas.

Por eso, este sistema combina dos herramientas:

  • Panel Multitimeframe Institucional → lectura fractal de tendencia y fuerza.
  • Mapa de Sesiones → lectura contextual de comportamiento por zonas horarias (Asia, Londres, Nueva York).

Juntas forman una visión completa del flujo institucional:
quién mueve el mercado, cuándo lo hace y hacia dónde lo empuja.

🧩 2. Estructura del análisis

Paso 1 – Análisis macro (D1 y H4)

Empieza con las temporalidades mayores; luego de que la sesión de Nueva York lleva al menos 30 minutos, yo opero en el horario diurno de América.
Dibuja las zonas clave: FVG, fractalidad, order blocks, zonas de liquidez.
Estas líneas son tu mapa institucional: muestran dónde el dinero grande entra o sale.

El Sesgo General del panel te indica si esas zonas están alineadas con el flujo institucional.
Si el sesgo es 🟢 alcista, prioriza zonas de demanda (long o compras); si es 🔴 bajista, enfócate en zonas de oferta (short o ventas).

Paso 2 – Contexto de sesiones

Usa el Mapa de Sesiones para observar cómo actuaron las tres principales zonas horarias:

  • Asia → acumulación o manipulación inicial.
  • Londres → expansión o ruptura.
  • Nueva York → distribución o reversión.

El panel te muestra qué sesión fue la más volátil y su dirección.
Esto te permite entender quién tuvo el control del día y si el movimiento actual tiene respaldo institucional.

Paso 3 – Ejecución operativa (3 m – 5 m – 1 m)

Aquí entra la precisión.
Operas solo con la tendencia del panel inferior izquierdo.
Esperas una reversión local (bajista → alcista o viceversa) y entras con confirmación.

Tu entrada se apoya en:

  • Cambio de color o dirección en el panel.
  • Reacción en zona institucional (FVG, order block, fractal).
  • Confirmación sobre VWAP.

El Sesgo General actúa como filtro maestro:
si el sesgo es alcista, tus compras tienen respaldo institucional; si es bajista, tus ventas están alineadas con el flujo dominante.

⚙️ 3. Fundamento técnico del Sesgo General

La línea Sesgo General resume el comportamiento de las cuatro temporalidades clave (D1, H4, H1, M15) en una sola lectura ejecutiva. Su función es mostrar la coherencia o divergencia institucional entre los distintos marcos de análisis.

🧩 Qué mide exactamente?

  1. Cuenta cuántos timeframes están alineados en dirección alcista o bajista.
  2. Evalúa la fuerza institucional del movimiento:
    • Si 3 o 4 TF coinciden → tendencia sólida y con respaldo institucional.
    • Si 2 TF coinciden → mercado mixto o en transición.
    • Si 1 TF domina → ruido o manipulación local.
  3. Asigna color y texto dinámico:
    • 🟢 Verde → mayoría alcista (sesgo comprador).
    • 🔴 Rojo → mayoría bajista (sesgo vendedor).
    • 🟡 Amarillo → mixto o indeciso.

⚙️ Cómo se interpreta operativamente

SituaciónLectura del Sesgo GeneralAcción sugerida
🟢 Alcista 3/4 TF o 4/4 TFAlta coherencia institucionalBuscar entradas en retrocesos alcistas o confirmaciones sobre VWAP
🔴 Bajista 3/4 TF o 4/4 TFSesgo vendedor dominanteBuscar ventas en retrocesos bajistas o rupturas bajo VWAP
🟡 Mixto 2/4 TFMercado en transiciónEsperar confirmación o consolidación antes de operar

💡 Ventaja institucional

El Sesgo General te da una visión macro instantánea sin cambiar de gráfico. Es como tener un “panel de control” que te dice si el mercado está alineado o fragmentado, permitiéndote:

  • Filtrar operaciones que van contra el flujo institucional.
  • Evitar entradas en zonas de indecisión.
  • Sincronizar tus setups con la dirección dominante del día.

🧘 4. Psicología y disciplina

El Sesgo General también cumple una función psicológica:
te obliga a esperar confirmación, evitando el overtrading y el revenge trading.

  • Si el sesgo no está alineado, no operas.
  • Si el sesgo cambia, revalúas.
  • Si el sesgo confirma, ejecutas con convicción.

La paciencia se convierte en tu ventaja institucional.
Operas solo cuando el mercado y las temporalidades están sincronizados.

5. Scripts utilizados en Pine de TradingView

Panel

//@version=5
indicator("EMAs personalizables + VWAP + Cruces (Modular)", overlay=true)
// === INPUTS DE VISIBILIDAD ===
showEmaShort = input.bool(true, "Mostrar EMA corta")
showEmaLong = input.bool(true, "Mostrar EMA larga")
showVWAP = input.bool(true, "Mostrar VWAP")
showSignals = input.bool(true, "Mostrar cruces")
// === INPUTS DE PERIODOS ===
emaShortLen = input.int(9, "Periodo EMA corta", minval=1)
emaLongLen = input.int(21, "Periodo EMA larga", minval=1)
// === INPUTS DE COLORES ===
emaShortColor = input.color(color.blue, "Color EMA corta")
emaLongColor = input.color(color.orange, "Color EMA larga")
vwapColor = input.color(color.purple, "Color VWAP")
// === INPUTS DE GROSOR ===
emaShortWidth = input.int(2, "Grosor EMA corta", minval=1, maxval=5)
emaLongWidth = input.int(2, "Grosor EMA larga", minval=1, maxval=5)
vwapWidth = input.int(1, "Grosor VWAP", minval=1, maxval=5)
// === INPUTS DE ESTILO ===
emaShortStyleOpt = input.string("line", "Estilo EMA corta", options=["line","histogram","area","columns","circles","stepline"])
emaLongStyleOpt = input.string("line", "Estilo EMA larga", options=["line","histogram","area","columns","circles","stepline"])
vwapStyleOpt = input.string("line", "Estilo VWAP", options=["line","histogram","area","columns","circles","stepline"])
// === CONVERSIÓN DE ESTILO ===
emaShortStyle = emaShortStyleOpt == "histogram" ? plot.style_histogram :
emaShortStyleOpt == "area" ? plot.style_area :
emaShortStyleOpt == "columns" ? plot.style_columns :
emaShortStyleOpt == "circles" ? plot.style_circles :
emaShortStyleOpt == "stepline" ? plot.style_stepline : plot.style_line
emaLongStyle = emaLongStyleOpt == "histogram" ? plot.style_histogram :
emaLongStyleOpt == "area" ? plot.style_area :
emaLongStyleOpt == "columns" ? plot.style_columns :
emaLongStyleOpt == "circles" ? plot.style_circles :
emaLongStyleOpt == "stepline" ? plot.style_stepline : plot.style_line
vwapStyle = vwapStyleOpt == "histogram" ? plot.style_histogram :
vwapStyleOpt == "area" ? plot.style_area :
vwapStyleOpt == "columns" ? plot.style_columns :
vwapStyleOpt == "circles" ? plot.style_circles :
vwapStyleOpt == "stepline" ? plot.style_stepline : plot.style_line
// === EMAs ===
emaShort = ta.ema(close, emaShortLen)
emaLong = ta.ema(close, emaLongLen)
// === VWAP ===
vwapLine = ta.vwap(close)
// === PLOTS ===
plot(showEmaShort ? emaShort : na, title="EMA corta", color=emaShortColor, linewidth=emaShortWidth, style=emaShortStyle)
plot(showEmaLong ? emaLong : na, title="EMA larga", color=emaLongColor, linewidth=emaLongWidth, style=emaLongStyle)
plot(showVWAP ? vwapLine : na, title="VWAP", color=vwapColor, linewidth=vwapWidth, style=vwapStyle)
// === CRUCES ===
cruceAlcista = ta.crossover(emaShort, emaLong)
cruceBajista = ta.crossunder(emaShort, emaLong)
plotshape(showSignals and cruceAlcista, title="Cruce Alcista", style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), size=size.small, text="▲ Alcista")
plotshape(showSignals and cruceBajista, title="Cruce Bajista", style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, text="▼ Bajista")
// === ALERTAS ===
alertcondition(cruceAlcista, title="Alerta Cruce Alcista", message="EMA corta cruzó arriba de EMA larga")
alertcondition(cruceBajista, title="Alerta Cruce Bajista", message="EMA corta cruzó abajo de EMA larga")
// === PANEL INSTITUCIONAL MULTITF (CORREGIDO + SESGO GENERAL) ===
// === CÁLCULOS BASE TF ACTUAL ===
diff = math.abs(emaShort - emaLong)
maxDiff = ta.highest(diff, 200)
intensity = maxDiff == 0.0 ? 0.0 : diff / maxDiff
fuerzaPct = math.round(intensity * 100)
tendencia = emaShort > emaLong ? "Alcista" : emaShort < emaLong ? "Bajista" : "Neutral"
vwapEstado = close > vwapLine ? "Sobre VWAP" : close < vwapLine ? "Bajo VWAP" : "En VWAP"
// === COLOR PARA TF ACTUAL Y VWAP ===
colorActual = emaShort > emaLong ? color.lime : emaShort < emaLong ? color.red : color.yellow
colorVWAP = close > vwapLine ? color.lime : close < vwapLine ? color.red : color.yellow
// === FUNCIÓN MULTITF (datos + color) ===
f_tfData(tf) =>
emaS = request.security(syminfo.tickerid, tf, ta.ema(close, emaShortLen))
emaL = request.security(syminfo.tickerid, tf, ta.ema(close, emaLongLen))
d = math.abs(emaS - emaL)
maxD = request.security(syminfo.tickerid, tf, ta.highest(math.abs(emaS - emaL), 200))
inten = maxD == 0.0 ? 0.0 : d / maxD
fuerza = math.round(inten * 100)
tend = emaS > emaL ? "Alcista" : emaS < emaL ? "Bajista" : "Neutral"
col = emaS > emaL ? color.lime : emaS < emaL ? color.red : color.yellow
[tend, fuerza, col]
// === MULTITIMEFRAME ===
[d1T, d1F, d1C] = f_tfData("D")
[h4T, h4F, h4C] = f_tfData("240")
[h1T, h1F, h1C] = f_tfData("60")
[m15T, m15F, m15C] = f_tfData("15")
// === SESGO GENERAL ===
alcistas = (d1T == "Alcista" ? 1 : 0) + (h4T == "Alcista" ? 1 : 0) + (h1T == "Alcista" ? 1 : 0) + (m15T == "Alcista" ? 1 : 0)
bajistas = (d1T == "Bajista" ? 1 : 0) + (h4T == "Bajista" ? 1 : 0) + (h1T == "Bajista" ? 1 : 0) + (m15T == "Bajista" ? 1 : 0)
sesgoGeneral = alcistas > bajistas ? "🟢 Alcista " + str.tostring(alcistas) + "/4 TF" :
bajistas > alcistas ? "🔴 Bajista " + str.tostring(bajistas) + "/4 TF" : "🟡 Mixto"
sesgoColor = alcistas > bajistas ? color.lime : bajistas > alcistas ? color.red : color.yellow
// === PANEL ===
var table infoPanel = table.new(position.bottom_left, 2, 8, border_width=1, frame_color=color.new(color.white, 80))
// Encabezados
table.cell(infoPanel, 0, 0, "TF Actual", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 1, "D1", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 2, "H4", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 3, "H1", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 4, "M15", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 5, "VWAP", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 6, "Sesgo General", text_color=color.white, bgcolor=color.black)
table.cell(infoPanel, 0, 7, "", text_color=color.white, bgcolor=color.black)
// Valores
table.cell(infoPanel, 1, 0, tendencia + ", " + str.tostring(fuerzaPct) + "%", text_color=colorActual, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 1, d1T + ", " + str.tostring(d1F) + "%", text_color=d1C, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 2, h4T + ", " + str.tostring(h4F) + "%", text_color=h4C, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 3, h1T + ", " + str.tostring(h1F) + "%", text_color=h1C, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 4, m15T + ", " + str.tostring(m15F) + "%", text_color=m15C, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 5, vwapEstado, text_color=colorVWAP, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 6, sesgoGeneral, text_color=sesgoColor, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 7, "", text_color=sesgoColor, bgcolor=color.new(color.black, 0))

Panel de Sesiones

//@version=5
indicator("Panel Sesiones – OHLC + Rango + Dirección + Resumen", overlay=true, max_labels_count=500)
//────────────────────────────────────────────
// INPUTS
//────────────────────────────────────────────
showPanel = input.bool(true, "Mostrar Panel")
showAsia = input.bool(true, "Asia")
showLondon = input.bool(true, "Londres")
showNY = input.bool(true, "Nueva York")
// Timeframe fijo configurable
fixedTF = input.timeframe("5", "Timeframe fijo para cálculos")
useFixedTF = input.bool(true, "Usar timeframe fijo para cálculos")
// Sesiones (CST México)
asiaSess = input.session("0000-0500", "Sesión Asia")
londonSess = input.session("0200-1000", "Sesión Londres")
nySess = input.session("0730-1500", "Sesión Nueva York")
// Columnas
colShowSession = input.bool(true, "Columna: Sesión")
colShowOpen = input.bool(true, "Columna: Apertura")
colShowHigh = input.bool(true, "Columna: Máximo")
colShowLow = input.bool(true, "Columna: Mínimo")
colShowClose = input.bool(true, "Columna: Cierre")
colShowRange = input.bool(true, "Columna: Rango")
colShowDirection = input.bool(true, "Columna: Dirección")
// Colores
colorAsia = color.new(color.gray, 0)
colorLondon = color.new(color.blue, 0)
colorNY = color.new(color.orange, 0)
//────────────────────────────────────────────
// FUNCIONES
//────────────────────────────────────────────
inSession(sess) =>
time(timeframe.period, sess) != 0
f_sessionOHLC(sess) =>
var float hi = na
var float lo = na
var float op = na
var float cl = na
if inSession(sess)
hi := na(hi) ? high : math.max(hi, high)
lo := na(lo) ? low : math.min(lo, low)
op := na(op) ? open : op
cl := close
[op, hi, lo, cl]
f_sessionClosed(sess) =>
not inSession(sess) and inSession(sess)[1]
//────────────────────────────────────────────
// TIMEFRAME BASE
//────────────────────────────────────────────
tfSource = useFixedTF ? fixedTF : timeframe.period
[asiaOp, asiaHi, asiaLo, asiaCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(asiaSess))
[londonOp, londonHi, londonLo, londonCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(londonSess))
[nyOp, nyHi, nyLo, nyCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(nySess))
//────────────────────────────────────────────
// VALORES FINALES DE SESIÓN (INDEPENDIENTES DEL TF DEL GRÁFICO)
//────────────────────────────────────────────
var float asiaOpFinal = na
var float asiaHiFinal = na
var float asiaLoFinal = na
var float asiaClFinal = na
var float londonOpFinal = na
var float londonHiFinal = na
var float londonLoFinal = na
var float londonClFinal = na
var float nyOpFinal = na
var float nyHiFinal = na
var float nyLoFinal = na
var float nyClFinal = na
// Detectar cierre de sesión usando el timeframe fijo
[asiaClosed, londonClosed, nyClosed] = request.security(syminfo.tickerid, tfSource, [f_sessionClosed(asiaSess), f_sessionClosed(londonSess), f_sessionClosed(nySess)])
if asiaClosed
asiaOpFinal := asiaOp[1]
asiaHiFinal := asiaHi[1]
asiaLoFinal := asiaLo[1]
asiaClFinal := asiaCl[1]
if londonClosed
londonOpFinal := londonOp[1]
londonHiFinal := londonHi[1]
londonLoFinal := londonLo[1]
londonClFinal := londonCl[1]
if nyClosed
nyOpFinal := nyOp[1]
nyHiFinal := nyHi[1]
nyLoFinal := nyLo[1]
nyClFinal := nyCl[1]
//────────────────────────────────────────────
// PANEL
//────────────────────────────────────────────
var table panel = table.new(position.top_right, 7, 5, border_width=1)
// Variables para resumen fijo
var string resumenFijo = na
var color colorFijo = na
f_fillRow(_row, _name, _op, _hi, _lo, _cl, _bgColor) =>
dir = (not na(_cl) and not na(_op)) ? (_cl > _op ? "Alcista" : _cl < _op ? "Bajista" : "Neutro") : "-"
rangeVal = (not na(_hi) and not na(_lo)) ? _hi - _lo : na
rangeStr = not na(rangeVal) ? str.tostring(rangeVal, format.mintick) : "-"
if colShowSession
table.cell(panel, 0, _row, _name, bgcolor=_bgColor)
if colShowOpen
table.cell(panel, 1, _row, na(_op) ? "-" : str.tostring(_op, format.mintick), bgcolor=_bgColor)
if colShowHigh
table.cell(panel, 2, _row, na(_hi) ? "-" : str.tostring(_hi, format.mintick), bgcolor=_bgColor)
if colShowLow
table.cell(panel, 3, _row, na(_lo) ? "-" : str.tostring(_lo, format.mintick), bgcolor=_bgColor)
if colShowClose
table.cell(panel, 4, _row, na(_cl) ? "-" : str.tostring(_cl, format.mintick), bgcolor=_bgColor)
if colShowRange
table.cell(panel, 5, _row, rangeStr, bgcolor=_bgColor)
if colShowDirection
table.cell(panel, 6, _row, dir, bgcolor=_bgColor)
[rangeVal, dir]
//────────────────────────────────────────────
// RENDER PANEL + RESUMEN
//────────────────────────────────────────────
if showPanel
// Encabezados
table.cell(panel, 0, 0, "SESIÓN", bgcolor=color.black, text_color=color.white)
table.cell(panel, 1, 0, "APERTURA", bgcolor=color.black, text_color=color.white)
table.cell(panel, 2, 0, "MÁXIMO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 3, 0, "MÍNIMO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 4, 0, "CIERRE", bgcolor=color.black, text_color=color.white)
table.cell(panel, 5, 0, "RANGO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 6, 0, "DIRECCIÓN", bgcolor=color.black, text_color=color.white)
row = 1
[rangeAsia, dirAsia] = f_fillRow(row, "Asia", asiaOpFinal, asiaHiFinal, asiaLoFinal, asiaClFinal, color.new(colorAsia, 80))
row += 1
[rangeLondon, dirLondon] = f_fillRow(row, "Londres", londonOpFinal, londonHiFinal, londonLoFinal, londonClFinal, color.new(colorLondon, 80))
row += 1
[rangeNY, dirNY] = f_fillRow(row, "Nueva York", nyOpFinal, nyHiFinal, nyLoFinal, nyClFinal, color.new(colorNY, 80))
row += 1
//────────────────────────────────────────────
// RESUMEN
//────────────────────────────────────────────
validRanges = array.new_float()
if not na(rangeAsia)
array.push(validRanges, rangeAsia)
if not na(rangeLondon)
array.push(validRanges, rangeLondon)
if not na(rangeNY)
array.push(validRanges, rangeNY)
maxRange = array.size(validRanges) > 0 ? array.max(validRanges) : na
string sesionMasVolatil = "—"
string dirMasVolatil = "—"
if not na(maxRange)
if rangeAsia == maxRange
sesionMasVolatil := "Asia"
dirMasVolatil := dirAsia
else if rangeLondon == maxRange
sesionMasVolatil := "Londres"
dirMasVolatil := dirLondon
else if rangeNY == maxRange
sesionMasVolatil := "Nueva York"
dirMasVolatil := dirNY
string resumen = ""
color colorResumen = color.new(color.gray, 70)
if useFixedTF
if na(resumenFijo) and sesionMasVolatil != "—"
resumenFijo := "Sesión más volátil: " + sesionMasVolatil + " – " + dirMasVolatil
if dirMasVolatil == "Alcista"
colorFijo := color.new(color.green, 0)
else if dirMasVolatil == "Bajista"
colorFijo := color.new(color.red, 0)
else
colorFijo := color.new(color.gray, 70)
resumen := na(resumenFijo) ? "Sesión más volátil: —" : resumenFijo
colorResumen := na(colorFijo) ? color.new(color.gray, 70) : colorFijo
else
resumen := "Sesión más volátil: " + sesionMasVolatil + " – " + dirMasVolatil
if dirMasVolatil == "Alcista"
colorResumen := color.new(color.green, 0)
else if dirMasVolatil == "Bajista"
colorResumen := color.new(color.red, 0)
else
colorResumen := color.new(color.gray, 70)
table.cell(panel, 0, 4, resumen, bgcolor=colorResumen, text_color=color.white)

🧭 6. Conclusión operativa

El sistema completo te da una visión de flujo institucional en tiempo real:

  1. Mapa macro (líneas SMC) → estructura y zonas de reacción.
  2. Mapa de Sesiones → comportamiento por zonas horarias.
  3. Panel Multitimeframe → fuerza y dirección fractal.
  4. Sesgo General → confirmación institucional y disciplina operativa.

Este enfoque no busca adivinar el mercado, sino leerlo con precisión.
Y esa precisión es lo que diferencia al trader impulsivo del trader institucional.

#Trading #ForexTrading #InstitutionalTrading #SmartMoneyConcepts #RiskManagement

7. Resultados de Testing Real

A una semana de pruebas, los resultados son prometedores en XAUUSD.

Interpretación Ejecutiva de Resultados

1. El sistema es rentable, pero aún está en fase de optimización

Una tasa de acierto del 64.18% indica que la lectura de mercado y la selección de entradas tienen una precisión sólida.
Sin embargo, el factor de ganancia de 1.1 revela algo importante:

El sistema gana más veces de las que pierde, pero todavía no capitaliza completamente sus operaciones ganadoras.

En términos institucionales:

  • La ventaja estadística existe.
  • La gestión del trade todavía tiene espacio para mejorar eficiencia.
  • El edge ya es positivo y sostenible si se mantiene la disciplina.

2. El riesgo está relativamente controlado

Los datos muestran:

  • Operaciones ganadoras promedio: +$3.17
  • Operaciones perdedoras promedio: -$5.15

Esto significa que:

  • Las pérdidas individuales son mayores que las ganancias promedio.
  • El sistema depende actualmente de la frecuencia de acierto para mantenerse rentable.

Ejecutivamente, esto sugiere:

Prioridad estratégica:

Mejorar el manejo de salida y dejar correr más las operaciones válidas.

No necesariamente necesitas “ganar más veces”.
Necesitas:

  • aumentar ligeramente el profit promedio,
  • o reducir marginalmente la pérdida promedio.

Con pequeños ajustes, el factor de ganancia podría escalar rápidamente a 1.3–1.5.

3. Excelente control emocional y operativo

El tiempo medio de retención es extremadamente revelador:

Tipo de operaciónTiempo
Ganadoras28 min
Perdedoras34 min

Esto transmite algo muy importante:

No existe una sobreexposición emocional extrema.

La diferencia entre trades positivos y negativos es pequeña.
Eso normalmente significa:

  • disciplina operativa,
  • ejecución consistente,
  • ausencia de “revenge trading” agresivo,
  • y capacidad de cortar operaciones relativamente rápido.

Muchos traders minoristas muestran exactamente lo contrario:

  • pérdidas enormes en duración,
  • ganancias cortas por miedo.

Aquí no se observa ese patrón destructivo.

4. Los resultados grandes confirman capacidad de captura

Las operaciones destacadas en Gold muestran capturas de:

  • +52 USD
  • +33 USD
  • +32 USD
  • +28 USD

Eso confirma que:

  • el sistema sí identifica movimientos con expansión,
  • existe capacidad real de explotar volatilidad,
  • y el trader no depende únicamente de micro-scalps.

Esto es clave porque valida:

“La estrategia puede escalar”.

Diagnóstico Ejecutivo Final

Fortalezas

✅ Alta tasa de acierto
✅ Consistencia operativa
✅ Control emocional visible en tiempos de exposición
✅ Capacidad de capturar movimientos amplios
✅ Sistema estadísticamente positivo

Áreas de mejora

⚠️ Profit factor aún bajo para escalamiento agresivo
⚠️ Ganancia promedio pequeña frente a pérdida promedio
⚠️ Optimización pendiente en gestión de salida y runners

Conclusión Estratégica

Los datos muestran algo más valioso que una simple rentabilidad:

Existe estructura operativa repetible.

Y eso, en trading profesional, es mucho más importante que un resultado aislado.

La consistencia ya está construida.
Ahora el siguiente nivel consiste en:

  • optimizar el R:R,
  • aumentar eficiencia de salida,
  • y convertir precisión en crecimiento exponencial controlado.

📘 MANUAL DE USO – PANEL DE SESIONES (OHLC + Rango + Dirección + Resumen Institucional)

📘 MANUAL DE USO – PANEL DE SESIONES (OHLC + Rango + Dirección + Resumen Institucional)

1. Introducción

El Panel de Sesiones es un indicador institucional diseñado para mostrar, de forma clara y compacta:

  • Los valores OHLC (Apertura, Máximo, Mínimo, Cierre) de cada sesión.
  • El rango (High – Low).
  • La dirección (Alcista, Bajista o Neutro).
  • Un resumen automático que identifica la sesión más volátil y su dirección.
  • La opción de trabajar con un timeframe fijo (M3, M5, M15…) para mantener los valores estables sin importar el timeframe del gráfico.

Este panel está optimizado para análisis institucional, backtesting visual y toma de decisiones rápidas.

2. Objetivo del Indicador

El objetivo es ofrecer una vista ejecutiva de las tres sesiones principales:

  • Asia
  • Londres
  • Nueva York

Mostrando:

  • Cómo se comportó cada sesión.
  • Qué tan amplia fue su volatilidad.
  • En qué dirección cerró.
  • Cuál fue la sesión dominante del día.

3. Configuración Inicial

El indicador incluye varios parámetros configurables desde el panel de Inputs.

3.1. Mostrar/Ocultar Panel

Permite activar o desactivar el panel completo.

3.2. Selección de Sesiones

Puedes activar o desactivar individualmente:

  • Asia
  • Londres
  • Nueva York

3.3. Timeframe Fijo

Este es uno de los elementos clave del indicador.

  • fixedTF: selecciona el timeframe base (ej. M3, M5, M15).
  • useFixedTF:
    • ON → El panel y el resumen se calculan exclusivamente desde el timeframe fijo.
    • OFF → El panel se adapta dinámicamente al timeframe del gráfico.

Ventaja:
Cuando useFixedTF = true, cambiar el timeframe del gráfico no altera los valores del panel.

4. Columnas del Panel

El panel muestra hasta 7 columnas:

  1. Sesión
  2. Apertura (Open)
  3. Máximo (High)
  4. Mínimo (Low)
  5. Cierre (Close)
  6. Rango (High – Low)
  7. Dirección (Alcista / Bajista / Neutro)

Cada columna puede activarse o desactivarse según tus necesidades.

5. Cálculo de OHLC por Sesión

El indicador calcula los valores OHLC de cada sesión usando:

  • El timeframe fijo (si está activado).
  • O el timeframe del gráfico (si está desactivado).

El cálculo es robusto y funciona correctamente en cualquier timeframe, incluso si la sesión no coincide con el cierre exacto de una vela.

6. Cierre de Sesión y Valores Finales

El indicador detecta automáticamente el cierre real de cada sesión, sin depender del timeframe del gráfico.

Cuando una sesión termina:

  • Se guardan sus valores finales.
  • Estos valores permanecen estables durante el resto del día.
  • El panel siempre muestra los datos de la última sesión completada.

7. Rango y Dirección

7.1. Rango

Es la diferencia entre el máximo y el mínimo de la sesión:

Rango = High – Low

7.2. Dirección

Se determina comparando el cierre con la apertura:

  • Alcista → Cierre > Apertura
  • Bajista → Cierre < Apertura
  • Neutro → Cierre = Apertura

8. Resumen Institucional

En la última fila del panel aparece un resumen:

“Sesión más volátil: Londres – Bajista”

Este resumen identifica:

  • La sesión con mayor rango.
  • Su dirección.
  • Su color (verde, rojo o gris).

Modo Fijo

Cuando useFixedTF = true:

  • El resumen se calcula una sola vez.
  • Permanece estable aunque cambies de timeframe.

Modo Dinámico

Cuando useFixedTF = false:

  • El resumen se recalcula en cada timeframe.
  • Útil para análisis intradía.

9. Interpretación del Panel

9.1. Lectura rápida

El panel permite identificar en segundos:

  • Qué sesión tuvo mayor volatilidad.
  • Qué sesión dominó el día.
  • Si el mercado estuvo tendencial o lateral.
  • Si hubo continuidad o reversión entre sesiones.

9.2. Ejemplos

Ejemplo 1 – Día tendencial alcista

  • Asia: Alcista
  • Londres: Alcista
  • NY: Alcista
  • Resumen: “Londres – Alcista”

Ejemplo 2 – Reversión

  • Asia: Alcista
  • Londres: Bajista
  • NY: Bajista
  • Resumen: “Nueva York – Bajista”

Ejemplo 3 – Volatilidad en Asia

  • Asia: Rango amplio
  • Londres: Rango pequeño
  • NY: Rango medio
  • Resumen: “Asia – Neutro”

10. Recomendaciones de Uso

  • Usa fixedTF = M5 para análisis institucional.
  • Usa fixedTF = M3 para scalping.
  • Usa fixedTF = M15 para swing trading.
  • Mantén useFixedTF = true si quieres estabilidad entre timeframes.
  • Cambia a useFixedTF = false si quieres ver cómo se comporta cada sesión en distintos marcos.

11. Ventajas del Indicador

  • Claridad institucional.
  • Datos consistentes entre timeframes.
  • Resumen automático.
  • Ideal para backtesting visual.
  • Perfecto para presentaciones, reportes y análisis ejecutivos.
  • Diseño limpio y profesional.

12. Conclusión

Este indicador te permite entender el comportamiento diario del mercado de forma inmediata, precisa y visualmente clara.
Es una herramienta diseñada para traders que buscan orden, consistencia y análisis institucional.

13. Script de Pine para uso en Trading View

//@version=5
indicator("Panel Sesiones – OHLC + Rango + Dirección + Resumen", overlay=true, max_labels_count=500)
//────────────────────────────────────────────
// INPUTS
//────────────────────────────────────────────
showPanel = input.bool(true, "Mostrar Panel")
showAsia = input.bool(true, "Asia")
showLondon = input.bool(true, "Londres")
showNY = input.bool(true, "Nueva York")
// Timeframe fijo configurable
fixedTF = input.timeframe("5", "Timeframe fijo para cálculos")
useFixedTF = input.bool(true, "Usar timeframe fijo para cálculos")
// Sesiones (CST México)
asiaSess = input.session("0000-0500", "Sesión Asia")
londonSess = input.session("0200-1000", "Sesión Londres")
nySess = input.session("0730-1500", "Sesión Nueva York")
// Columnas
colShowSession = input.bool(true, "Columna: Sesión")
colShowOpen = input.bool(true, "Columna: Apertura")
colShowHigh = input.bool(true, "Columna: Máximo")
colShowLow = input.bool(true, "Columna: Mínimo")
colShowClose = input.bool(true, "Columna: Cierre")
colShowRange = input.bool(true, "Columna: Rango")
colShowDirection = input.bool(true, "Columna: Dirección")
// Colores
colorAsia = color.new(color.gray, 0)
colorLondon = color.new(color.blue, 0)
colorNY = color.new(color.orange, 0)
//────────────────────────────────────────────
// FUNCIONES
//────────────────────────────────────────────
inSession(sess) =>
time(timeframe.period, sess) != 0
f_sessionOHLC(sess) =>
var float hi = na
var float lo = na
var float op = na
var float cl = na
if inSession(sess)
hi := na(hi) ? high : math.max(hi, high)
lo := na(lo) ? low : math.min(lo, low)
op := na(op) ? open : op
cl := close
[op, hi, lo, cl]
f_sessionClosed(sess) =>
not inSession(sess) and inSession(sess)[1]
//────────────────────────────────────────────
// TIMEFRAME BASE
//────────────────────────────────────────────
tfSource = useFixedTF ? fixedTF : timeframe.period
[asiaOp, asiaHi, asiaLo, asiaCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(asiaSess))
[londonOp, londonHi, londonLo, londonCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(londonSess))
[nyOp, nyHi, nyLo, nyCl] = request.security(syminfo.tickerid, tfSource, f_sessionOHLC(nySess))
//────────────────────────────────────────────
// VALORES FINALES DE SESIÓN (INDEPENDIENTES DEL TF DEL GRÁFICO)
//────────────────────────────────────────────
var float asiaOpFinal = na
var float asiaHiFinal = na
var float asiaLoFinal = na
var float asiaClFinal = na
var float londonOpFinal = na
var float londonHiFinal = na
var float londonLoFinal = na
var float londonClFinal = na
var float nyOpFinal = na
var float nyHiFinal = na
var float nyLoFinal = na
var float nyClFinal = na
// Detectar cierre de sesión usando el timeframe fijo
[asiaClosed, londonClosed, nyClosed] = request.security(syminfo.tickerid, tfSource, [f_sessionClosed(asiaSess), f_sessionClosed(londonSess), f_sessionClosed(nySess)])
if asiaClosed
asiaOpFinal := asiaOp[1]
asiaHiFinal := asiaHi[1]
asiaLoFinal := asiaLo[1]
asiaClFinal := asiaCl[1]
if londonClosed
londonOpFinal := londonOp[1]
londonHiFinal := londonHi[1]
londonLoFinal := londonLo[1]
londonClFinal := londonCl[1]
if nyClosed
nyOpFinal := nyOp[1]
nyHiFinal := nyHi[1]
nyLoFinal := nyLo[1]
nyClFinal := nyCl[1]
//────────────────────────────────────────────
// PANEL
//────────────────────────────────────────────
var table panel = table.new(position.top_right, 7, 5, border_width=1)
// Variables para resumen fijo
var string resumenFijo = na
var color colorFijo = na
f_fillRow(_row, _name, _op, _hi, _lo, _cl, _bgColor) =>
dir = (not na(_cl) and not na(_op)) ? (_cl > _op ? "Alcista" : _cl < _op ? "Bajista" : "Neutro") : "-"
rangeVal = (not na(_hi) and not na(_lo)) ? _hi - _lo : na
rangeStr = not na(rangeVal) ? str.tostring(rangeVal, format.mintick) : "-"
if colShowSession
table.cell(panel, 0, _row, _name, bgcolor=_bgColor)
if colShowOpen
table.cell(panel, 1, _row, na(_op) ? "-" : str.tostring(_op, format.mintick), bgcolor=_bgColor)
if colShowHigh
table.cell(panel, 2, _row, na(_hi) ? "-" : str.tostring(_hi, format.mintick), bgcolor=_bgColor)
if colShowLow
table.cell(panel, 3, _row, na(_lo) ? "-" : str.tostring(_lo, format.mintick), bgcolor=_bgColor)
if colShowClose
table.cell(panel, 4, _row, na(_cl) ? "-" : str.tostring(_cl, format.mintick), bgcolor=_bgColor)
if colShowRange
table.cell(panel, 5, _row, rangeStr, bgcolor=_bgColor)
if colShowDirection
table.cell(panel, 6, _row, dir, bgcolor=_bgColor)
[rangeVal, dir]
//────────────────────────────────────────────
// RENDER PANEL + RESUMEN
//────────────────────────────────────────────
if showPanel
// Encabezados
table.cell(panel, 0, 0, "SESIÓN", bgcolor=color.black, text_color=color.white)
table.cell(panel, 1, 0, "APERTURA", bgcolor=color.black, text_color=color.white)
table.cell(panel, 2, 0, "MÁXIMO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 3, 0, "MÍNIMO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 4, 0, "CIERRE", bgcolor=color.black, text_color=color.white)
table.cell(panel, 5, 0, "RANGO", bgcolor=color.black, text_color=color.white)
table.cell(panel, 6, 0, "DIRECCIÓN", bgcolor=color.black, text_color=color.white)
row = 1
[rangeAsia, dirAsia] = f_fillRow(row, "Asia", asiaOpFinal, asiaHiFinal, asiaLoFinal, asiaClFinal, color.new(colorAsia, 80))
row += 1
[rangeLondon, dirLondon] = f_fillRow(row, "Londres", londonOpFinal, londonHiFinal, londonLoFinal, londonClFinal, color.new(colorLondon, 80))
row += 1
[rangeNY, dirNY] = f_fillRow(row, "Nueva York", nyOpFinal, nyHiFinal, nyLoFinal, nyClFinal, color.new(colorNY, 80))
row += 1
//────────────────────────────────────────────
// RESUMEN
//────────────────────────────────────────────
validRanges = array.new_float()
if not na(rangeAsia)
array.push(validRanges, rangeAsia)
if not na(rangeLondon)
array.push(validRanges, rangeLondon)
if not na(rangeNY)
array.push(validRanges, rangeNY)
maxRange = array.size(validRanges) > 0 ? array.max(validRanges) : na
string sesionMasVolatil = "—"
string dirMasVolatil = "—"
if not na(maxRange)
if rangeAsia == maxRange
sesionMasVolatil := "Asia"
dirMasVolatil := dirAsia
else if rangeLondon == maxRange
sesionMasVolatil := "Londres"
dirMasVolatil := dirLondon
else if rangeNY == maxRange
sesionMasVolatil := "Nueva York"
dirMasVolatil := dirNY
string resumen = ""
color colorResumen = color.new(color.gray, 70)
if useFixedTF
if na(resumenFijo) and sesionMasVolatil != "—"
resumenFijo := "Sesión más volátil: " + sesionMasVolatil + " – " + dirMasVolatil
if dirMasVolatil == "Alcista"
colorFijo := color.new(color.green, 0)
else if dirMasVolatil == "Bajista"
colorFijo := color.new(color.red, 0)
else
colorFijo := color.new(color.gray, 70)
resumen := na(resumenFijo) ? "Sesión más volátil: —" : resumenFijo
colorResumen := na(colorFijo) ? color.new(color.gray, 70) : colorFijo
else
resumen := "Sesión más volátil: " + sesionMasVolatil + " – " + dirMasVolatil
if dirMasVolatil == "Alcista"
colorResumen := color.new(color.green, 0)
else if dirMasVolatil == "Bajista"
colorResumen := color.new(color.red, 0)
else
colorResumen := color.new(color.gray, 70)
table.cell(panel, 0, 4, resumen, bgcolor=colorResumen, text_color=color.white)

📘 MAPA INSTITUCIONAL DE SESIONES

📘 MAPA INSTITUCIONAL DE SESIONES

Cómo se comporta cada mercado, quién impulsa, quién corrige y por qué Asia rellena los vacíos de Londres


🎯 1. Estructura general del día institucional

Tres sesiones, tres roles distintos.
El precio no se mueve igual porque cada sesión tiene distinta liquidez, participantes y objetivos.

🟦 ASIA — Consolida y corrige

  • Volumen bajo.
  • Rango estrecho (Asian Range).
  • Reequilibra el precio → rellena FVG/imbalances.
  • Ajuste de inventarios de market makers.
  • Prepara el terreno para Londres.

Rol: Consolidación + Corrección + Relleno de vacíos.


🟩 LONDRES — Impulsa

  • Alta liquidez institucional.
  • Rompe el Asian Range.
  • Crea tendencia del día.
  • Genera desequilibrios (FVG, imbalances).
  • Movimientos direccionales limpios.

Rol: Impulso + Creación de desequilibrios.


🟥 NUEVA YORK — Decide

  • Mayor volumen del día.
  • Confirma o revierte lo que Londres inició.
  • Barridas de liquidez (liquidity grabs).
  • Movimientos violentos en apertura y cierre.
  • Crea nuevos desequilibrios.

Rol: Confirmación o reversión + Barridas + Decisión del día.


🧩 2. ¿Por qué Asia rellena los vacíos de Londres?

No es magia. Es mecánica de mercado.

✔ 1. Menor liquidez → precio vuelve al equilibrio

Sin órdenes grandes, el precio tiende a suavizar los excesos previos.

✔ 2. Los algoritmos buscan eficiencia

Los desequilibrios creados por Londres/NY suelen ser rellenados en sesiones de bajo volumen.

✔ 3. Market makers ajustan inventarios

Antes de Londres necesitan volver a zonas de valor.

✔ 4. Asia opera dentro del “fair value”

Por eso rellena FVG, imbalances y vuelve a zonas institucionales.


📐 3. Mapa visual del flujo del día

00:00–05:00 CST — ASIA

  • Rango estrecho
  • Correcciones
  • Relleno de FVG
  • Reequilibrio

02:00–04:00 CST — Pre-Londres

  • Pequeñas trampas
  • Liquidez inducida
  • Últimos ajustes

02:00–10:00 CST — LONDRES

  • Ruptura del Asian Range
  • Impulso direccional
  • Creación de FVG
  • Tendencia del día

07:30–15:00 CST — NUEVA YORK

  • Confirmación o reversión
  • Barridas
  • Movimientos violentos
  • Cierre del día

🎛 4. Cómo usar esto en tu sistema (aplicado a XAUUSD, DXY, USDJPY)

Paso 1 — Marca el Asian Range

Te da el “campo de batalla” del día.

Paso 2 — Identifica los FVG creados por Londres

Son los desequilibrios que Asia suele rellenar.

Paso 3 — Observa si Asia reequilibra

Si Asia rellena → Londres tendrá un movimiento más limpio.
Si Asia NO rellena → Londres suele ir a rellenar primero.

Paso 4 — Opera retrocesos en Londres

Tu estilo de vender retrocesos en tendencia bajista encaja perfecto aquí.

Paso 5 — NY decide

Si Londres marcó tendencia, NY la confirma o la revierte.


🧭 5. Plantilla institucional para tus análisis diarios

Puedes copiar esto y usarlo cada mañana:

1. Asian Range:

  • Alto:
  • Bajo:
  • ¿Rellenó FVG? Sí/No
  • ¿Consolidó? Sí/No

2. Londres:

  • ¿Rompió el Asian Range?
  • ¿Creó FVG?
  • ¿Dirección dominante?

3. NY:

  • ¿Confirma o revierte?
  • ¿Barrida previa?
  • ¿Liquidez objetivo?

Glosario

He aquí algunos conceptos utilizados en este artículo que podrían resultarte interesantes:

Un imbalance es un fallo en la eficiencia del mercado donde un flujo masivo de órdenes unilaterales desplaza el precio agresivamente, dejando niveles sin negociar. Esta «deuda» de liquidez actúa como un imán técnico que el precio tiende a buscar para reequilibrarse antes de validar la continuidad de una tendencia.

Un FVG es un desequilibrio de liquidez entre tres velas donde los extremos de la primera y la tercera no se solapan, dejando un vacío en el precio. Funciona como un imán de alta probabilidad que el mercado tiende a rellenar para corregir ineficiencias antes de continuar su tendencia estructural.

No confundas un movimiento rápido con un imbalance operativo. Un movimiento veloz con mechas largas que se solapan no es un imbalance, es volatilidad. El verdadero desequilibrio es aquel que deja espacio en blanco entre los extremos de las velas circundantes. Si el precio no deja una «huella» de ineficiencia clara, no hay obligación de que regrese pronto.

Debes entender que el imbalance es un cambio de estado en el sistema, mientras que la volatilidad es solo una oscilación térmica. No operes el movimiento; opera la aceptación o rechazo de los niveles de volumen que ese movimiento deja atrás.

Si no ves un vacío claro en el perfil de volumen, no hay imbalance; solo hay gente operando con pánico.

En la próxima publicación encontrarás una herramienta, un script para Pine donde podrás ver información importante de las sesiones de mercado directo en tu Trading View.

📘 MANUAL DE USO – Indicador “EMAs personalizables + VWAP + Cruces (Modular)”

📘 MANUAL DE USO – Indicador “EMAs personalizables + VWAP + Cruces (Modular)”

1. Introducción

El indicador EMAs personalizables + VWAP + Cruces (Modular) es una herramienta diseñada para ofrecer una lectura clara, flexible y profesional de la estructura del mercado mediante:

  • Dos medias móviles exponenciales (EMA corta y EMA larga).
  • La línea VWAP institucional.
  • Señales visuales de cruces entre EMAs.
  • Un panel institucional que resume tendencia, fuerza, distancia, relación con VWAP y sesgo general.

Este indicador es ideal para traders que buscan simplicidad, modularidad y una lectura ejecutiva del mercado.

2. Objetivo del Indicador

El objetivo es proporcionar:

  • Una lectura clara de la tendencia mediante EMAs.
  • Confirmación institucional mediante VWAP.
  • Señales de cruce para entradas o cambios de sesgo.
  • Un panel que sintetiza la información en un vistazo.
  • Configuración modular para activar solo lo que necesitas.

3. Componentes del Indicador

El indicador está compuesto por cuatro módulos principales:

3.1. EMAs (Exponential Moving Averages)

  • EMA corta (por defecto 9).
  • EMA larga (por defecto 21).
  • Ambas totalmente configurables en:
    • Periodo
    • Color
    • Grosor
    • Estilo de línea

3.2. VWAP (Volume Weighted Average Price)

  • Línea institucional que muestra el precio promedio ponderado por volumen.
  • Útil para identificar zonas de valor y desequilibrio.

3.3. Señales de Cruce

  • Flecha verde (▲) cuando la EMA corta cruza por encima de la EMA larga.
  • Flecha roja (▼) cuando la EMA corta cruza por debajo.
  • Activables/desactivables desde el panel.

3.4. Panel Institucional

Incluye:

  • Tendencia actual
  • Fuerza porcentual
  • Distancia entre EMAs
  • Intensidad (nube)
  • Estado respecto a VWAP
  • Termómetro visual
  • Sesgo general

Todo con colores dinámicos y fondo adaptativo.

4. Inputs del Indicador

4.1. Visibilidad

Puedes activar o desactivar cada módulo:

  • Mostrar EMA corta
  • Mostrar EMA larga
  • Mostrar VWAP
  • Mostrar señales de cruce

Esto permite usar el indicador como:

  • Sistema completo
  • Solo EMAs
  • Solo VWAP
  • Solo señales
  • O cualquier combinación

4.2. Periodos

Define los periodos de cálculo:

  • EMA corta (default 9)
  • EMA larga (default 21)

Puedes adaptarlos a tu estilo:

  • Scalping → 5/13
  • Intradía → 9/21
  • Swing → 20/50

4.3. Colores

Cada línea tiene su propio color configurable:

  • EMA corta
  • EMA larga
  • VWAP

4.4. Grosor

Controla el grosor de cada línea (1–5).

4.5. Estilo de Línea

Puedes elegir entre:

  • Line
  • Histogram
  • Area
  • Columns
  • Circles
  • Stepline

Esto permite adaptar el indicador a tu estilo visual.

5. Señales de Cruce

El indicador detecta automáticamente:

Cruce Alcista

  • EMA corta cruza por encima de EMA larga
  • Señal: ▲ verde
  • Ubicación: debajo de la vela

Cruce Bajista

  • EMA corta cruza por debajo de EMA larga
  • Señal: ▼ roja
  • Ubicación: arriba de la vela

Estas señales pueden usarse como:

  • Confirmación de entrada
  • Cambio de sesgo
  • Filtro de tendencia

6. Panel Institucional

El panel aparece en la esquina inferior izquierda y muestra:

6.1. Tendencia

Determina si:

  • EMA corta > EMA larga → Alcista
  • EMA corta < EMA larga → Bajista
  • Igual → Neutral

Color dinámico:

  • Verde → Alcista
  • Rojo → Bajista
  • Amarillo → Neutral

6.2. Fuerza (%)

Mide qué tan separadas están las EMAs respecto al máximo histórico reciente.

Interpretación:

  • 0–40% → Débil
  • 40–70% → Tendencia moderada
  • 70–100% → Tendencia fuerte

6.3. Distancia entre EMAs

Valor numérico de separación entre ambas EMAs.

Útil para:

  • Identificar compresión
  • Detectar expansión
  • Medir momentum

6.4. Intensidad (Nube)

Valor entre 10 y 90 que representa la fuerza relativa.

6.5. Estado respecto a VWAP

  • ▲ Sobre VWAP → Sesgo alcista institucional
  • ▼ Bajo VWAP → Sesgo bajista institucional
  • ⚪ En VWAP → Zona de equilibrio

6.6. Termómetro Visual

Barra de 10 bloques:

  • Más bloques llenos → mayor fuerza
  • Color dinámico según tendencia

6.7. Sesgo General

Combinación de:

  • Tendencia
  • Fuerza
  • Relación con VWAP

Puede ser:

  • 🟢 Fuerte Alcista
  • 🔴 Fuerte Bajista
  • 🟡 Tendencia Débil
  • 🟡 Neutral

7. Cómo Usarlo en tu Trading

7.1. Confirmación de Tendencia

  • EMA corta > EMA larga
  • Precio sobre VWAP
  • Fuerza > 60%

→ Sesgo alcista confiable.

7.2. Entradas por Cruce

  • Cruce alcista → buscar compras
  • Cruce bajista → buscar ventas

7.3. Filtros Institucionales

  • No operar contra VWAP
  • Evitar señales con fuerza < 40%
  • Confirmar con el termómetro

7.4. Gestión de Riesgo

  • Entrar en retrocesos hacia EMA corta
  • Salir cuando fuerza cae por debajo de 30%
  • Evitar operar cuando el panel marca “Neutral”

8. Recomendaciones Finales

  • Mantén el indicador limpio: activa solo lo que necesitas.
  • Usa VWAP como filtro institucional.
  • No operes cruces débiles.
  • Observa la fuerza y el termómetro antes de entrar.
  • El panel es tu brújula: úsalo para confirmar contexto.

9. Conclusión

Este indicador combina simplicidad, modularidad y lectura institucional en un solo paquete.
Es ideal para traders que buscan claridad, confirmación y una visión ejecutiva del mercado.

10. Script en Pine

//@version=5
indicator("EMAs personalizables + VWAP + Cruces (Modular)", overlay=true)

// === INPUTS DE VISIBILIDAD ===
showEmaShort = input.bool(true, "Mostrar EMA corta")
showEmaLong  = input.bool(true, "Mostrar EMA larga")
showVWAP     = input.bool(true, "Mostrar VWAP")
showSignals  = input.bool(true, "Mostrar cruces")

// === INPUTS DE PERIODOS ===
emaShortLen = input.int(9,  "Periodo EMA corta", minval=1)
emaLongLen  = input.int(21, "Periodo EMA larga", minval=1)

// === INPUTS DE COLORES ===
emaShortColor = input.color(color.blue,   "Color EMA corta")
emaLongColor  = input.color(color.orange, "Color EMA larga")
vwapColor     = input.color(color.purple, "Color VWAP")

// === INPUTS DE GROSOR ===
emaShortWidth = input.int(2, "Grosor EMA corta", minval=1, maxval=5)
emaLongWidth  = input.int(2, "Grosor EMA larga", minval=1, maxval=5)
vwapWidth     = input.int(1, "Grosor VWAP",      minval=1, maxval=5)

// === INPUTS DE ESTILO ===
emaShortStyleOpt = input.string("line", "Estilo EMA corta", options=["line","histogram","area","columns","circles","stepline"])
emaLongStyleOpt  = input.string("line", "Estilo EMA larga", options=["line","histogram","area","columns","circles","stepline"])
vwapStyleOpt     = input.string("line", "Estilo VWAP",      options=["line","histogram","area","columns","circles","stepline"])

// === CONVERSIÓN DE ESTILO ===
emaShortStyle = emaShortStyleOpt == "histogram" ? plot.style_histogram :
     emaShortStyleOpt == "area" ? plot.style_area :
     emaShortStyleOpt == "columns" ? plot.style_columns :
     emaShortStyleOpt == "circles" ? plot.style_circles :
     emaShortStyleOpt == "stepline" ? plot.style_stepline : plot.style_line

emaLongStyle = emaLongStyleOpt == "histogram" ? plot.style_histogram :
     emaLongStyleOpt == "area" ? plot.style_area :
     emaLongStyleOpt == "columns" ? plot.style_columns :
     emaLongStyleOpt == "circles" ? plot.style_circles :
     emaLongStyleOpt == "stepline" ? plot.style_stepline : plot.style_line

vwapStyle = vwapStyleOpt == "histogram" ? plot.style_histogram :
     vwapStyleOpt == "area" ? plot.style_area :
     vwapStyleOpt == "columns" ? plot.style_columns :
     vwapStyleOpt == "circles" ? plot.style_circles :
     vwapStyleOpt == "stepline" ? plot.style_stepline : plot.style_line

// === EMAs ===
emaShort = ta.ema(close, emaShortLen)
emaLong  = ta.ema(close, emaLongLen)

// === VWAP ===
vwapLine = ta.vwap(close)

// === PLOTS ===
plot(showEmaShort ? emaShort : na, title="EMA corta", color=emaShortColor, linewidth=emaShortWidth, style=emaShortStyle)
plot(showEmaLong  ? emaLong  : na, title="EMA larga", color=emaLongColor,  linewidth=emaLongWidth,  style=emaLongStyle)
plot(showVWAP     ? vwapLine : na, title="VWAP",      color=vwapColor,     linewidth=vwapWidth,     style=vwapStyle)

// === CRUCES ===
cruceAlcista = ta.crossover(emaShort, emaLong)
cruceBajista = ta.crossunder(emaShort, emaLong)

plotshape(showSignals and cruceAlcista, title="Cruce Alcista", style=shape.triangleup,   location=location.belowbar, color=color.new(color.lime, 0), size=size.small, text="▲ Alcista")
plotshape(showSignals and cruceBajista, title="Cruce Bajista", style=shape.triangledown, location=location.abovebar,  color=color.new(color.red, 0),  size=size.small, text="▼ Bajista")

// === ALERTAS ===
alertcondition(cruceAlcista, title="Alerta Cruce Alcista", message="EMA corta cruzó arriba de EMA larga")
alertcondition(cruceBajista, title="Alerta Cruce Bajista", message="EMA corta cruzó abajo de EMA larga")
// =========================
// PANEL INSTITUCIONAL (ESQUINA SUPERIOR IZQUIERDA)
// =========================
var table infoPanel = table.new(position.bottom_left, 2, 7, border_width=1, frame_color=color.new(color.white, 80))

// Cálculos base
diff    = math.abs(emaShort - emaLong)
maxDiff = ta.highest(diff, 200)
intensity = maxDiff == 0.0 ? 0.0 : diff / maxDiff
opacity = 90 - (intensity * 70)
opacity := math.min(math.max(opacity, 10.0), 90.0)
tendencia = emaShort > emaLong ? "▲ Alcista" : emaShort < emaLong ? "▼ Bajista" : "⚪ Neutral"
fuerzaPct = math.round(intensity * 100)
distancia = diff
vwapEstado = close > vwapLine ? "▲ Sobre VWAP" : close < vwapLine ? "▼ Bajo VWAP" : "⚪ En VWAP"

// Termómetro visual (0–100% → 10 bloques)
blocks = math.round(fuerzaPct / 10)
barra = ""
for i = 1 to 10
    barra += i <= blocks ? "▓" : "░"
// Colores dinámicos
tendColor     = emaShort > emaLong ? color.new(color.lime, 0) : emaShort < emaLong ? color.new(color.red, 0) : color.new(color.yellow, 0)
fuerzaColor   = fuerzaPct > 70 ? color.new(color.lime, 0) : fuerzaPct > 40 ? color.new(color.yellow, 0) : color.new(color.red, 0)
vwapTextColor = close > vwapLine ? color.new(color.lime, 0) : close < vwapLine ? color.new(color.red, 0) : color.new(color.yellow, 0)
termColor     = tendColor
// Sesgo general
sesgo      = "🟡 Neutral"
sesgoColor = color.new(color.yellow, 0)
if fuerzaPct > 70 and emaShort > emaLong and close > vwapLine
    sesgo      := "🟢 Fuerte Alcista"
    sesgoColor := color.new(color.lime, 0)
else if fuerzaPct > 70 and emaShort < emaLong and close < vwapLine
    sesgo      := "🔴 Fuerte Bajista"
    sesgoColor := color.new(color.red, 0)
else if fuerzaPct > 40
    sesgo      := "🟡 Tendencia Débil"
    sesgoColor := color.new(color.yellow, 0)
// Fondo institucional y adaptativo (más transparente para no tapar líneas)
bgPanel   = color.new(color.black, 85)
bgDynamic = bgPanel
if sesgo == "🟢 Fuerte Alcista"
    bgDynamic := color.new(color.lime, 90)
else if sesgo == "🔴 Fuerte Bajista"
    bgDynamic := color.new(color.red, 90)
else if sesgo == "🟡 Tendencia Débil"
    bgDynamic := color.new(color.yellow, 90)
// Encabezados
table.cell(infoPanel, 0, 0, "Tendencia",       text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 1, "Fuerza (%)",      text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 2, "Distancia EMAs",  text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 3, "Intensidad nube", text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 4, "VWAP",            text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 5, "Termómetro",      text_color=color.white, bgcolor=bgDynamic)
table.cell(infoPanel, 0, 6, "Sesgo General",   text_color=color.white, bgcolor=bgDynamic)
// Valores
table.cell(infoPanel, 1, 0, tendencia,                         text_color=tendColor,     bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 1, str.tostring(fuerzaPct) + "%",      text_color=fuerzaColor,   bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 2, str.tostring(distancia, format.mintick), text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 3, str.tostring(opacity),              text_color=color.white,   bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 4, vwapEstado,                         text_color=vwapTextColor, bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 5, barra,                              text_color=termColor,     bgcolor=color.new(color.black, 0))
table.cell(infoPanel, 1, 6, sesgo,                              text_color=sesgoColor,    bgcolor=color.new(color.black, 0))

11. Y se ve así:

Guía de sistema híbrido de Trading para XAUUSD y más

Guía de sistema híbrido de Trading para XAUUSD y más

 

📘 SISTEMA HÍBRIDO DE TRADING

Guía visual institucional

Optimizado para XAUUSD, DXY, USDJPY y BTCUSD

  1. Introducción

Este manual presenta un sistema híbrido diseñado para scalping e intradía, combinando estructura, impulso, volumen y dirección institucional.

Está optimizado para usarse en TradingView y ejecutarse en Vantage Raw ECN o en Capital.

La idea es analizar si es viable y hasta qué punto es simple.

  1. Filosofía del sistema

El sistema se sostiene en cuatro pilares:

  1. Dirección institucional (VWAP)
    Define si el día favorece compras o ventas.
  2. Impulso (EMA20)
    Marca la velocidad del movimiento.
  3. Estructura (EMA50)
    Determina si la tendencia es sostenible.
  4. Confirmación (Volumen)
    Valida si el movimiento tiene fuerza real.

3. Configuración de TradingView

Estética institucional

  • Fondo gris neutro
  • Velas verdes/rojas suaves
  • Líneas limpias, sin franjas
  • Acentos en azul petróleo y naranja suave

Paneles

  • Panel principal: precio + EMA20 + EMA50 + VWAP
  • Panel inferior: volumen filtrado
  • Panel opcional: ATR
  1. Indicadores y parámetros

EMA20

  • Color: azul petróleo
  • Grosor: 2

EMA50

  • Color: naranja suave
  • Grosor: 2

VWAP diario

  • Color: morado institucional
  • Reinicio automático

Volumen filtrado

  • Panel separado
  • MA20 del volumen

ATR 14

  • Línea blanca
  • Grosor: 1
  1. Estructura del Mercado
Tipo de tendenciaNivel 1Nivel 2Nivel 3Nivel 4
Tendencia AlcistaPrecio ↑EMA20 ↑EMA50 ↑VWAP ↑
Tendencia BajistaPrecio ↓EMA20 ↓EMA50 ↓VWAP ↓

Interpretación:

  • Si el precio está por encima de todo → compras.
  • Si está por debajo → ventas.
  • Si está dentro del VWAP → evitar operar.

  1. Reglas de Entrada

Entrada Alcista

  1. Precio rompe EMA20 con vela sólida
  2. EMA20 > EMA50
  3. VWAP debajo del precio
  4. Volumen creciente
  5. Spread bajo (<0.3 en XAUUSD)
  6. ATR moderado

Entrada Bajista

  1. Precio rompe EMA20 hacia abajo
  2. EMA20 < EMA50
  3. VWAP arriba del precio
  4. Volumen creciente
  5. Spread bajo
  6. ATR moderado

7. Reglas de Salida

  • Volumen cae → salida parcial
  • Precio toca EMA50 → salida total
  • Vela contraria fuerte con volumen → salida inmediata
  • Spread se amplía → no continuar
  1. Gestión de Riesgo
  • Riesgo por operación: 0.5% – 1%
  • Máximo diario: 2%
  • Stop-loss recomendado:
    • XAUUSD: 1.5 × ATR
    • DXY: 1 × ATR
  • Break-even automático al avanzar 1R
  1. Checklist Operativo

Antes de operar, responde:

  1. ¿Estoy en Londres o NY?
  2. ¿El spread está bajo?
  3. ¿EMA20 y EMA50 están alineadas?
  4. ¿VWAP confirma la dirección?
  5. ¿El volumen acompaña?
  6. ¿ATR está en rango normal?
  7. ¿Mi riesgo está dentro del 1%?

Si una respuesta es NO → no operas.

  1. Ejemplos Visuales (Descriptivos)

Ejemplo de Compra Ideal

  • Precio rompe EMA20
  • VWAP queda abajo
  • Volumen sube
  • EMA20 cruza EMA50
  • Entrada en retroceso a EMA20

Ejemplo de Venta Ideal

  • Precio rompe EMA20 hacia abajo
  • VWAP arriba
  • Volumen sube
  • Entrada en pullback a EMA20
  1. Errores Comunes
  • Operar dentro del VWAP
  • Entrar sin volumen
  • Operar en Asia
  • Ignorar el spread
  • No respetar el 1% de riesgo
  1. Rutina Diaria del Trader

Antes de operar

  • Revisar calendario económico
  • Marcar zonas clave
  • Dibujar sesiones
  • Ver ATR y spread

Durante la sesión

  • Esperar confirmaciones
  • No perseguir el precio
  • Mantener disciplina

Después de operar

  • Registrar trades
  • Evaluar emociones
  • Ajustar reglas si es necesario.

 

📘 HORARIOS OFICIALES DE MERCADOS

Zona horaria: El Salvador (CST‑6)

Aplicable a Capital.com

🟩 1. Tabla Institucional de Apertura y Cierre

InstrumentoApertura OficialMini‑cierres diariosCierre SemanalNotas Operativas
XAUUSD (Oro)Domingo — 4:00 pm3:00 pm – 4:00 pmViernes — 4:00 pmSigue horario CME Globex. Pausa diaria obligatoria.
USDJPY (Forex)Domingo — 4:00 pmNingunoViernes — 4:00 pmForex 24/5 continuo.
DXY (Índice del dólar)Domingo — 5:00 pmNingunoViernes — 4:00 pmAbre 1 hora después del mercado FX.
QQQ (ETF NASDAQ)Lunes — 8:30 amNingunoLunes — 3:00 pmHorario regular del NASDAQ. Sin pre‑market ni after‑hours en Capital.com.

🟦 2. Notas Institucionales por Activo

XAUUSD (Oro)

  • Apertura semanal: domingo 4:00 pm
  • Mini‑cierre diario: 3:00–4:00 pm
  • Cierre semanal: viernes 4:00 pm
  • Relevancia: activo de alta liquidez y volatilidad; respeta estrictamente las pausas CME.

USDJPY

  • Apertura semanal: domingo 4:00 pm
  • Sin pausas intradía
  • Cierre semanal: viernes 4:00 pm
  • Relevancia: par mayor, comportamiento estable en sesiones asiáticas.

DXY

  • Apertura semanal: domingo 5:00 pm
  • Sin pausas intradía
  • Cierre semanal: viernes 4:00 pm
  • Relevancia: índice clave para correlaciones macro (XAUUSD, USDJPY, índices).

QQQ

  • Apertura diaria: 8:30 am (lunes a viernes)
  • Cierre diario: 3:00 pm
  • Relevancia: proxy del NASDAQ 100; útil para medir apetito de riesgo tecnológico.

 

Sistema híbrido – Resumen Ejecutivo

Objetivo: decisiones rápidas basadas en estructura, impulso, volumen y VWAP.

Componentes clave:

  • VWAP: dirección institucional
  • EMA20: impulso
  • EMA50: estructura
  • Volumen: confirmación
  • ATR: riesgo

Condiciones de entrada:

  • Ruptura de EMA20
  • Alineación EMA20–EMA50
  • VWAP confirma
  • Volumen creciente
  • Spread bajo

Condiciones de salida:

  • Volumen cae
  • Toca EMA50
  • Vela contraria fuerte

Riesgo:

  • 0.5–1% por operación
  • 2% máximo diario

Sesiones recomendadas:

  • Londres
  • Nueva York

Ahora seguiré probando otras estrategias con la idea de ir simplificando la operación.

Stay tuned folks!