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:
- 937
- Avaliação:
- Publicado:
- 2014.01.14 15:11
- Atualizado:
- 2016.11.22 07:33
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
A classe CArrayRing256 é a versão simplificada do buffer anel CArrayRing, é mais rápida e permite organizar a mini-série temporal, minibuffers do indicador, buffers de tamanhos curtos para armazenar dados intermediários de fluxo dentro do Expert Advisor ou indicador.
A simplificação com base na propriedade uchar-variable que é usada como índice da array. Por exemplo, no código
double array[UCHAR_MAX+1]; // os dados do buffer anel uchar index=0; // índice dos elementos de buffer while(!IsStopped()) { array[++index]; // vá para o próximo elemento de buffer ... }
o índice da array sempre assume o valor de 0 a 255 e nunca irá além da dimensão da array. Permite remover toda a verificação de métodos associados com a eventual saída de índice, além da saída da array, pela simplificação dos métodos por si e aumento a taxa de desempenho. O tamanho do buffer será sempre constante e terá o tamanho de 256 elementos. Para muitas tarefas é uma alternativa aceitável para a classe universal CArrayRing em troca de um aumento da taxa de trabalho.
Declaração
сlass CArrayRing256
Título
#include <IncOnRingBuffer\CArrayRing256.mqh>
O arquivo de classe CArrayRing256.mqh deve ser colocado na pasta IncOnRingBuffer que precisam ser criada em MQL5\Include\.
Métodos de classe
//--- Método de inicialização do buffer: void Init( double volue=EMPTY_VALUE // valor para a localização de buffers vazios );
//--- o método de adição de novo elemento no buffer: void Add( const double element // valor do elemento adicionado );
//--- o método substitui o valor do elemento com o índice configurado: bool Update( // Se com erro vai retornar "false", se bem sucedida - "true" const double element, // novo valor do elemento const int index=0 // índice de elementos );
//--- O método retorna o valor do elemento com o índice configurado double At( // retorna o valor do elemento const uchar index // índice de elementos ) const;
//--- o método retorna o valor da última escrita no elemento buffer: double Last() const;
//--- O método substitui o último valor do elemento no buffer: void Last( const double element // novo valor do elemento );
//--- método do retorno do tamanho do buffer anel: int Size();
Nota:
- o tamanho do buffer anel é sempre constante e igual a 256 elementos
- na realização obtida do buffer anel, a indexação é feita em série temporal, isto é, o oposto ao usual
Exemplos:
A utilização desta classe é semelhante a CArrayRing. Mas existem algumas diferenças:
- O método init() é usado para inicialização do buffer pelo valor definido;
- O método de Resize() está ausente com o tamanho da memória intermédia sendo sempre constante.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/1379

Composite High-Low Momentum Indicator por William Blau.

O arquivo CSV foi desenvolvido para escrever notícias econômicas, mas houve um problema que o Terminal não distingue as linhas, exatamente o número necessário quando se trabalha com o arquivo CSV. É por isso que eu decidi compartilhar minha solução deste problema.

A segunda versão (editado e adicionada) do indicador alternativo para a definição de tendências com base nas barras de ruptura e da distância das extremidades. Os níveis de ruptura e tamanho das tendências anteriores são adicionados.

Ergodic CSI-Oscillator por William Blau.