Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 5682
- Avaliação:
- Publicado:
- 2017.08.24 13:13
- Atualizado:
- 2017.09.06 10:38
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Versão disponível 2: Size of candles 2 (text).
O indicador reflete o tamanho da barra. O tamanho da vela é calculado pela fórmula: "minuendo" menos "subtraendo". "Minuendo" e "subtraendo" podem ser um dos seus quatro valores (open, high, low or close).
O número de barras, para os quais é exibido o tamanho, é limitado nos parâmetros de entrada (InpNumberOfBars). Este número permanece inalterado, mesmo se for aberta a última barra:
Sobre a sincronização de barras e objetos gráficos.
Contabilidade de objetos gráficos
Os nomes dos objetos são armazenados na matriz m_arr_names[], seu tamanho é igual ao parâmetro de entrada InpNumberOfBars. Por que usamos uma matriz em vez de uma variável simples de tipo string? É porque é uma espécie de base para o futuro.
Formando um nome de objeto
O nome do objeto correspondente à barra "index" é formado pela seguinte fórmula:
name[index] = m_prefix + ("high_" or "low_") + TimeToString(time[index])
Quando você precisa excluir todos os objetos
Como é sabido, os indicadores são descarregados nos seguintes casos:
- quando o indicador é removido do gráfico;
- quando o terminal é encerrado (se o indicador foi anexado ao gráfico);
- carregamento do modelo, (se o indicador foi anexado ao gráfico);
- fechamento do gráfico ao qual foi anexado o indicador;
- ao alterar o perfil, se o indicador foi anexado a um dos gráficos do perfil anterior;
- ao alterar o símbolo e/ou período do gráfico ao qual foi anexado o indicador;
- ao alterar os parâmetros de entrada do indicador.
Portanto, realizamos a remoção completa de objetos gráficos gerados:
- em OnDeinit()
- em OnInit() (isto é, no caso, se houver objetos órfãos não removidos)
- em OnCalculate(), quando prev_calculated==0.
Também limpamos a matriz m_arr_names[]:
- em OnCalculate(), quando prev_calculated==0 ou quando prev_calculated!=rates_total
Mantendo um número constante de objetos gráficos:
ao surgir uma nova barra (ou barras) no gráfico é desencadeada a condição prev_calculated!=rates_total. Neste caso, todos os objetos são removidos, enquanto a matriz m_arr_names[] é limpada.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/18269
![All information about the symbol](https://c.mql5.com/i/code/expert.png)
Todas as informações sobre o símbolo atual (informações extraídas do objeto da classe CSymbolInfo) sob a forma de painel de diálogo.
![RSI and Bollinger Bands](https://c.mql5.com/i/code/expert.png)
Estratégia de negociação segundo RSI e Bollinger Bands.
![cheduecoglioni](https://c.mql5.com/i/code/expert.png)
Esperamos que TP ou SL se executem, e, após isto, abrimos uma posição na direção oposta. Verifica se há fundos suficientes antes da abertura de posição. OnTradeTransaction.
![Biblioteca de alto desempenho iTimeSeries](https://c.mql5.com/i/code/library.png)
Esta biblioteca fornece veloz acesso ao TimeSeries, para implementar os métodos usuais MQL4 (por exemplo, iBarShift) em aplicativos sensíveis à latência em MQL5.