TriZone Semafor
- Indicadores
-
Ahmed Hamed Hamed Eadwan
PORTUGUESE TRANSLATION — PORTUGUÊS
====================================
TITLE:
Desenvolvedor MQL5 e Trader | Fundador da R protocols
ABOUT:
Olá, sou Ahmed — um trader e desenvolvedor MQL5 baseado nos
Emirados Árabes Unidos, e fundador da R protocols. - Versão: 1.0
Se voce ja ficou olhando para um grafico coberto de setas ZigZag se perguntando quais realmente importam — este indicador foi construido para resolver essa frustracao.
TriZone Semafor executa tres algoritmos ZigZag independentes simultaneamente: Rapido (Period 5), Medio (Period 13) e Lento (Period 34). Quando detectam pivots na mesma vela, apenas o sinal mais significativo sobrevive. O nivel 3 sempre sobrepoe o nivel 2. O nivel 2 sempre sobrepoe o nivel 1. Uma seta limpa por vela por direcao — sem empilhamento, sem contagem dupla.
Por que tres niveis em vez de um
Um ZigZag simples trata todas as oscilacoes de forma igual. O mesmo indicador marca um retrocesso de duas velas e uma grande reversao de tendencia com setas identicas. TriZone classifica cada pivot por significancia para que voce leia a hierarquia do grafico de relance.
- Nivel 1 — Rapido: Pequenos retrocessos e pivots menores. A estrutura dentro da estrutura.
- Nivel 2 — Medio: Oscilacoes intraday e reacoes significativas. Os pivots que voce registra no seu diario de trading.
- Nivel 3 — Lento: Grandes viradas estruturais. Os pontos onde a continuacao da tendencia esta genuinamente em questao.
Cada nivel tem sua propria forma e cor de seta para que voce veja a hierarquia instantaneamente, sem consultar uma legenda.
Sistema de sinais exclusivos
Cada vela passa por uma regra: se um nivel superior reivindica um pivot nessa vela, todas as reivindicacoes de niveis inferiores sao removidas — nao escondidas, removidas. Isso acontece dentro do buffer do indicador antes de qualquer coisa chegar ao grafico. O grafico reflete o estado real, nao uma sobreposicao por camadas.
Modo anti-repaint
Com AntiRepaint = ON, um sinal so e desenhado depois que o numero configurado de velas de confirmacao tiver passado. A seta que voce ve ja passou sua janela de estabilidade e nao se movera. O indicador mostra o modo atual e a profundidade de confirmacao na barra de titulo do grafico — total transparencia sobre o que voce esta lendo.
Com AntiRepaint = OFF, os sinais aparecem imediatamente na vela em formacao. Util para referencia visual. Nao recomendado para logica automatizada.
Sistema de alertas
Os alertas sao enfileirados durante o calculo e entregues apenas depois que o filtro de exclusividade confirma que o sinal sobreviveu. Voce nunca recebera um popup por um sinal de nivel 1 que foi sobreposto pelo nivel 3 um momento depois. Um pivot confirmado — um alerta. Configuravel por nivel independentemente.
O que esta incluido
- Tres niveis de deteccao ZigZag com parametros totalmente independentes
- Prioridade exclusiva de sinais a nivel de buffer — o nivel mais alto vence por vela
- Alertas popup apenas em pivots confirmados — sem alertas fantasma
- Modo anti-repaint com barras de confirmacao configuraveis por nivel
- Qualquer simbolo, qualquer periodo — MetaTrader 5
- Arquivo unico — zero dependencias externas, sem DLL, sem includes personalizados
Ponto de partida recomendado
Abra H1 ou H4 com os parametros padrao. As profundidades padrao 5 / 13 / 34 seguem a sequencia padrao de Fibonacci — uma escolha natural para a maioria dos instrumentos e periodos.
Os pivots do nivel 3 sao sua referencia estrutural. O nivel 2 sao seus pontos de referencia intraday. O nivel 1 mostra a estrutura menor entre eles. Ajuste a profundidade (Period) e as barras de confirmacao (ConfirmBars) ao seu estilo.
Compatibilidade
MetaTrader 5 — qualquer corretora, qualquer simbolo, qualquer periodo. Sem bibliotecas externas. Sem importacao de DLL. Arquivo .ex5 unico, completamente autonomo.
Referencia iCustom — TriZone_Semafor
Buffers de saida
Apenas o nivel ativo mais alto e nao vazio por vela.
EMPTY_VALUE = sem pivot nessa barra/nivel.
Com AntiRepaint ON, leia em shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3) — padrao: shift >= 4.
| Buffer | Indice | Sinal | Conteudo |
|---|---|---|---|
| BufLow1 | 0 | BUY | Preco do pivot baixo nivel 1 — ZigZag rapido |
| BufHigh1 | 1 | SELL | Preco do pivot alto nivel 1 — ZigZag rapido |
| BufLow2 | 2 | BUY | Preco do pivot baixo nivel 2 — ZigZag medio |
| BufHigh2 | 3 | SELL | Preco do pivot alto nivel 2 — ZigZag medio |
| BufLow3 | 4 | BUY | Preco do pivot baixo nivel 3 — ZigZag lento |
| BufHigh3 | 5 | SELL | Preco do pivot alto nivel 3 — ZigZag lento |
Parametros de entrada
# = posicao na chamada iCustom() (a partir de 0, apos Symbol / Period / FileName)
| # | Nome | Tipo | Padrao | Intervalo | Descricao |
|---|---|---|---|---|---|
| NIVEL 1 — ZigZag Rapido | |||||
| 0 | Period1 | int | 5 | 2-500 | Profundidade de busca de pivots (barras) |
| 1 | Deviation1 | int | 1 | 1-100 | Desvio minimo em pontos |
| 2 | Backstep1 | int | 3 | 1-(P-1) | Barras minimas entre pivots consecutivos |
| 3 | HighSymbol1 | int | 159 | Wingdings | Seta para altos (159=ponto, 108=circulo, 116=diamante) |
| 4 | LowSymbol1 | int | 159 | Wingdings | Seta para baixos |
| 5 | ConfirmBars1 | int | 2 | 1-50 | Barras de confirmacao antes de fixar o sinal |
| NIVEL 2 — ZigZag Medio | |||||
| 6 | Period2 | int | 13 | 2-500 | Profundidade de busca de pivots |
| 7 | Deviation2 | int | 8 | 1-100 | Desvio minimo em pontos |
| 8 | Backstep2 | int | 5 | 1-(P-1) | Barras minimas entre pivots consecutivos |
| 9 | HighSymbol2 | int | 108 | Wingdings | Seta para altos |
| 10 | LowSymbol2 | int | 108 | Wingdings | Seta para baixos |
| 11 | ConfirmBars2 | int | 3 | 1-50 | Barras de confirmacao |
| NIVEL 3 — ZigZag Lento | |||||
| 12 | Period3 | int | 34 | 2-500 | Profundidade de busca de pivots |
| 13 | Deviation3 | int | 21 | 1-100 | Desvio minimo em pontos |
| 14 | Backstep3 | int | 12 | 1-(P-1) | Barras minimas entre pivots consecutivos |
| 15 | HighSymbol3 | int | 108 | Wingdings | Seta para altos |
| 16 | LowSymbol3 | int | 108 | Wingdings | Seta para baixos |
| 17 | ConfirmBars3 | int | 4 | 1-50 | Barras de confirmacao |
| GERENCIAMENTO DE INSTANCIA | |||||
| 18 | InstanceID | string | "A" | qualquer | Etiqueta unica — deve diferir de qualquer copia no grafico |
| 19 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Imprimir diagnostico no Diario |
| 20 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Coloque 1 (ON) ao usar via iCustom — suprime toda interface e alertas |
| ANTI-REPAINT | |||||
| 21 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = apenas sinais confirmados — necessario para logica EA estavel |
| 22 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = setas usam deslocamento retroativo seguro completo (mais rigoroso) |
| SISTEMA DE ALERTAS | |||||
| 23 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=Nenhum 1=Popup 2=Push 3=Todos — coloque 0 dentro do EA |
| 24 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | Alerta em pivots nivel 1 |
| 25 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerta em pivots nivel 2 |
| 26 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerta em pivots nivel 3 |
Total: 27 parametros (indices 0-26)
Exemplo 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; }
Erros comuns
| Erro | Sintoma | Correcao |
|---|---|---|
| Mesmo InstanceID que copia no grafico | INIT_PARAMETERS_INCORRECT | ID unico: "EA1" , "EA2" … |
| HeadlessMode = false no EA | Indicador desenha objetos + alertas para cada instancia EA | Coloque parametro #20 em true |
| Ler shift = 0 com AntiRepaint ON | EMPTY_VALUE sempre — barra ainda nao confirmada | Leia em shift >= 4 |
| AlertMode != 0 dentro do EA | Popups de Alert() bloqueiam execucao do Tester | Coloque parametro #23 em 0 |
| Nome de arquivo incorreto no iCustom | INVALID_HANDLE | Use nome exato: "TriZone_Semafor" |
| Sem IndicatorRelease no OnDeinit | Vazamento de memoria ao recarregar EA | Chame IndicatorRelease(g_tzsHandle) |
