O indicador Ticks se destaca dos outros por mostrar o histórico diretamente sobre as barras do gráfico principal. Com ele, é possível visualizar claramente o histórico do "spread" e o processo de formação de cada barra. Além disso, ele apresenta de forma visual a formação da barra em tempo real.

Atenção
É importante ressaltar que, como o indicador mostra o histórico de ticks de todos os intervalos de tempo visíveis no gráfico, o número de ticks pode chegar a centenas de milhares ou até milhões. Essa carga pesada pode fazer com que o indicador funcione de forma lenta. Por exemplo, na escala mínima no H1, o intervalo visível pode abranger vários meses, resultando em um funcionamento muito lento para carregar e exibir todos esses ticks.
Se você pretende monitorar ticks, é mais lógico utilizar um período de tempo menor (até M5) e uma escala maior para visualizar o histórico de preços em detalhes (como mostrado na figura acima).
O indicador foi retirado de um blog e passou por pequenas modificações — havia problemas de overflow em arrays. Foram adicionadas (várias linhas) para preencher a área entre o LowAsk e o HighBid correspondentes. Muito do excesso foi removido da versão original — a estrutura OOP do indicador e arquivos mqh não utilizados.
Surpreendentemente, ele é estável (não possui buffers de indicador). Seu design está longe de ser otimizado, provavelmente porque muitos bugs na função CopyTicks não foram corrigidos na época em que foi escrito. No entanto, ele mostra os dados históricos corretamente e de forma bastante rápida (há espaço para aumentar a velocidade significativamente).
Fazer chamadas para este indicador via iCustom e IndicatorCreate não faz sentido — não há buffers de indicador. Ele serve apenas para visualização de histórico. E, na verdade, é considerado um indicador apenas por conta de uma coincidência de sua função principal — mostrar.
Por exemplo, funciona como um EA.
#property strict #include <fxsaber\ChartObjects\ChartObjectTicks.mqh> CHARTOBJECTTICKS ChartObject; void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam ) { EVENTBASE::MyEvent(id, lparam, dparam, sparam); } void OnTick( void ) { if (::ChartGetInteger(0, ::CHART_FIRST_VISIBLE_BAR) <= ::ChartGetInteger(0, ::CHART_VISIBLE_BARS)) ChartObject.Visual(); }
Ou seja, ele simplesmente utiliza um dos tipos de objetos gráficos interativos personalizados. Portanto, paradoxalmente, este indicador é apenas formalmente um indicador — a forma técnica do programa MT.
O nível de transparência para este objeto pode ser definido nos parâmetros de entrada. O indicador é autossuficiente, não utiliza bibliotecas padrão. Fazer uma captura de tela usando os meios do terminal pode ser problemático, pois pode não corresponder ao que o terminal exibe.
É compatível com o MetaTrader 4, mas, claro, não mostra nada (sem dados do CopyTicks).
Publicações relacionadas
- AllAverages v4.9 MT5: O Indicador Imperdível para Traders
- Buffers Horários para Coleta de Dados no MetaTrader 5
- EquiPeak Drawdown Tracker: Controle Eficiente para Seus EAs no MetaTrader 5
- Como Copiar e Colar Objetos Gráficos no MetaTrader 5 com o ChartObjectsCopyPaste
- Índice de Caminhada Aleatória: Um Indicador Essencial para MetaTrader 5