TriZone Semafor
- Indicadores
-
Ahmed Hamed Hamed Eadwan
SPANISH TRANSLATION — ESPAÑOL
===============================
TITLE:
Desarrollador MQL5 y Trader | Fundador de R protocols
ABOUT:
Hola, soy Ahmed — un trader y desarrollador MQL5 basado en
los Emiratos Árabes Unidos, y fundador de R protocols. - Versión: 1.0
Si alguna vez has mirado un gráfico cubierto de flechas ZigZag y te has preguntado cuáles realmente importan — este indicador fue creado para esa frustración.
TriZone Semafor ejecuta tres algoritmos ZigZag independientes simultáneamente: Rapido (Period 5), Medio (Period 13) y Lento (Period 34). Cuando detectan pivotes en la misma vela, solo sobrevive la senal mas significativa. El nivel 3 siempre anula al nivel 2. El nivel 2 siempre anula al nivel 1. Una flecha limpia por vela y direccion — sin apilamiento, sin doble conteo.
Por que tres niveles en lugar de uno
Un ZigZag simple trata todas las oscilaciones por igual. El mismo indicador marca un retroceso de dos velas y una gran inversion de tendencia con flechas identicas. TriZone clasifica cada pivote por significancia para que leas la jerarquia del grafico de un vistazo.
- Nivel 1 — Rapido: Pequenos retrocesos y pivotes menores. La estructura dentro de la estructura.
- Nivel 2 — Medio: Oscilaciones intradiarias y reacciones significativas. Los pivotes que registras en tu diario de trading.
- Nivel 3 — Lento: Giros estructurales mayores. Los puntos donde la continuacion de la tendencia esta genuinamente en cuestion.
Cada nivel tiene su propia forma y color de flecha para que veas la jerarquia al instante, sin consultar una leyenda.
Sistema de senales exclusivas
Cada vela pasa por una regla: si un nivel superior reclama un pivote en esa vela, todas las reclamaciones de niveles inferiores se eliminan — no se ocultan, se eliminan. Esto ocurre dentro del buffer del indicador antes de que algo llegue al grafico. El grafico refleja el estado real, no una superposicion por capas.
Modo anti-repaint
Con AntiRepaint = ON, una senal solo se dibuja despues de que hayan pasado el numero configurado de velas de confirmacion. La flecha que ves ya ha pasado su ventana de estabilidad y no se movera. El indicador muestra el modo actual y la profundidad de confirmacion en la barra de titulo del grafico — total transparencia sobre lo que estas leyendo.
Con AntiRepaint = OFF, las senales aparecen inmediatamente en la vela en formacion. Util para referencia visual. No recomendado para logica automatizada.
Sistema de alertas
Las alertas se ponen en cola durante el calculo y se entregan solo despues de que el filtro de exclusividad confirme que la senal sobrevivio. Nunca recibiras un popup por una senal de nivel 1 que fue anulada por el nivel 3 un momento despues. Un pivote confirmado — una alerta. Configurable por nivel de forma independiente.
Que incluye
- Tres niveles de deteccion ZigZag con parametros completamente independientes
- Prioridad exclusiva de senales a nivel de buffer — el nivel mas alto gana por vela
- Alertas popup solo en pivotes confirmados — sin alertas fantasma
- Modo anti-repaint con barras de confirmacion configurables por nivel
- Cualquier simbolo, cualquier temporalidad — MetaTrader 5
- Un solo archivo — cero dependencias externas, sin DLL, sin includes personalizados
Punto de partida recomendado
Abre H1 o H4 con los parametros por defecto. Las profundidades por defecto 5 / 13 / 34 siguen la secuencia estandar de Fibonacci — una eleccion natural para la mayoria de instrumentos y temporalidades.
Los pivotes del nivel 3 son tu referencia estructural. El nivel 2 son tus puntos de referencia intradiarios. El nivel 1 muestra la estructura menor entre ellos. Ajusta la profundidad (Period) y las barras de confirmacion (ConfirmBars) a tu estilo.
Compatibilidad
MetaTrader 5 — cualquier broker, cualquier simbolo, cualquier temporalidad. Sin bibliotecas externas. Sin importacion de DLL. Un solo archivo .ex5, completamente autonomo.
Referencia iCustom — TriZone_Semafor
Buffers de salida
Solo el nivel activo mas alto es no vacio por vela.
EMPTY_VALUE = sin pivote en esa barra/nivel.
Con AntiRepaint ON, lee en shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3) — por defecto: shift >= 4.
| Buffer | Indice | Senal | Contenido |
|---|---|---|---|
| BufLow1 | 0 | BUY | Precio del pivote bajo nivel 1 — ZigZag rapido |
| BufHigh1 | 1 | SELL | Precio del pivote alto nivel 1 — ZigZag rapido |
| BufLow2 | 2 | BUY | Precio del pivote bajo nivel 2 — ZigZag medio |
| BufHigh2 | 3 | SELL | Precio del pivote alto nivel 2 — ZigZag medio |
| BufLow3 | 4 | BUY | Precio del pivote bajo nivel 3 — ZigZag lento |
| BufHigh3 | 5 | SELL | Precio del pivote alto nivel 3 — ZigZag lento |
Parametros de entrada
# = posicion en la llamada a iCustom() (desde 0, despues de Symbol / Period / FileName)
| # | Nombre | Tipo | Defecto | Rango | Descripcion |
|---|---|---|---|---|---|
| NIVEL 1 — ZigZag Rapido | |||||
| 0 | Period1 | int | 5 | 2-500 | Profundidad de busqueda de pivotes (barras) |
| 1 | Deviation1 | int | 1 | 1-100 | Desviacion minima en puntos |
| 2 | Backstep1 | int | 3 | 1-(P-1) | Barras minimas entre pivotes consecutivos |
| 3 | HighSymbol1 | int | 159 | Wingdings | Flecha para maximos (159=punto, 108=circulo, 116=diamante) |
| 4 | LowSymbol1 | int | 159 | Wingdings | Flecha para minimos |
| 5 | ConfirmBars1 | int | 2 | 1-50 | Barras de confirmacion antes de fijar la senal |
| NIVEL 2 — ZigZag Medio | |||||
| 6 | Period2 | int | 13 | 2-500 | Profundidad de busqueda de pivotes |
| 7 | Deviation2 | int | 8 | 1-100 | Desviacion minima en puntos |
| 8 | Backstep2 | int | 5 | 1-(P-1) | Barras minimas entre pivotes consecutivos |
| 9 | HighSymbol2 | int | 108 | Wingdings | Flecha para maximos |
| 10 | LowSymbol2 | int | 108 | Wingdings | Flecha para minimos |
| 11 | ConfirmBars2 | int | 3 | 1-50 | Barras de confirmacion |
| NIVEL 3 — ZigZag Lento | |||||
| 12 | Period3 | int | 34 | 2-500 | Profundidad de busqueda de pivotes |
| 13 | Deviation3 | int | 21 | 1-100 | Desviacion minima en puntos |
| 14 | Backstep3 | int | 12 | 1-(P-1) | Barras minimas entre pivotes consecutivos |
| 15 | HighSymbol3 | int | 108 | Wingdings | Flecha para maximos |
| 16 | LowSymbol3 | int | 108 | Wingdings | Flecha para minimos |
| 17 | ConfirmBars3 | int | 4 | 1-50 | Barras de confirmacion |
| GESTION DE INSTANCIA | |||||
| 18 | InstanceID | string | "A" | cualquiera | Etiqueta unica — debe diferir de cualquier copia en el grafico |
| 19 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Imprimir diagnostico en el Diario |
| 20 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Pon en 1 (ON) al usar via iCustom — suprime toda interfaz y alertas |
| ANTI-REPAINT | |||||
| 21 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = solo senales confirmadas — requerido para logica EA estable |
| 22 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = las flechas usan el desplazamiento retroactivo seguro completo (mas estricto) |
| SISTEMA DE ALERTAS | |||||
| 23 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=Ninguno 1=Popup 2=Push 3=Todos — pon 0 dentro del EA |
| 24 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | Alerta en pivotes nivel 1 |
| 25 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerta en pivotes nivel 2 |
| 26 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerta en pivotes nivel 3 |
Total: 27 parametros (indices 0-26)
Ejemplo de codigo iCustom
int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor", 5, 1, 3, 159, 159, 2, // Nivel 1 13, 8, 5, 108, 108, 3, // Nivel 2 34, 21, 12, 108, 108, 4, // Nivel 3 "EA1", false, true, // Instancia + Headless true, false, // AntiRepaint + SafeArrows 0, false, false, false // Alertas OFF ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; }
Errores comunes
| Error | Sintoma | Solucion |
|---|---|---|
| Mismo InstanceID que copia en grafico | INIT_PARAMETERS_INCORRECT | ID unico: "EA1" , "EA2" … |
| HeadlessMode = false en EA | Indicador dibuja objetos + alertas por cada instancia EA | Pon parametro #20 en true |
| Leer shift = 0 con AntiRepaint ON | EMPTY_VALUE siempre — barra aun no confirmada | Lee en shift >= 4 |
| AlertMode != 0 dentro del EA | Popups de Alert() bloquean ejecucion del Tester | Pon parametro #23 en 0 |
| Nombre de archivo incorrecto en iCustom | INVALID_HANDLE | Usa nombre exacto: "TriZone_Semafor" |
| Sin IndicatorRelease en OnDeinit | Fuga de memoria al recargar EA | Llama IndicatorRelease(g_tzsHandle) |
