Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

La clase simplificada del buffer circular CArrayRing256 - librería para MetaTrader 5

Visualizaciones:
779
Ranking:
(30)
Publicado:
2014.01.15 09:04
Actualizado:
2014.02.28 09:14
\MQL5\Include\IncOnRingBuffer\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Descripción

La clase CArrayRing256 es la versión simplificada del buffer circular CArrayRing , pero es más rápido y permite organizar la mini serie, indicador minibuffers, buffers de tamaño corto para almacenar datos intermedios corrientes dentro del EA o del indicador. 

Simplificación basada en la propiedad del uchar-variable, que se utiliza como el índice de la matriz. Por ejemplo, en el código

double array[UCHAR_MAX+1];  // datos del buffer circular
uchar  index=0;             // índice del elemento del buffer

while(!IsStopped())
  {
   array[++index];          // ir al siguiente elemento del buffer
   ...
  }

el índice de matriz siempre toma valor de 0 a 255 y nunca ir más allá del rango de la dimensión de la matriz. Permite eliminar toda revisión de los métodos asociados con la posible salida del índice más allá de la salida de la matriz al simplificar los métodos por sí mismos y aumentar la tasa de rendimiento. Pero el tamaño del búfer será siempre constante y tiene el tamaño de 256 elementos. Para muchas de las tareas es una alternativa aceptable a la clase universal de CArrayRing a cambio de un aumento de la tasa de trabajo.

Declaración

сlass CArrayRing256

Título

#include <IncOnRingBuffer\CArrayRing256.mqh>

El archivo de clase CArrayRing256.mqh debe colocarse en la carpeta IncOnRingBuffer que es necesario establecer en MQL5\Include\.

Métodos de la clase 

//--- método de inicio del buffer:
void Init(
   double volue=EMPTY_VALUE // valor para búferes de ubicación vacía
   );
//--- método para añadir un elemento nuevo en el búfer:
void Add(
   const double element     // valor de elemento añadido
   ); 
//--- el método vuelve a escribir el valor de los elementos con el conjunto de índices:
void Update(                // si error devuelve falso, si extitoso - verdadero
   const double element,    // nuevo valor del elemento
   const uchar  index=0     // índice del elemento
   );  
//--- el método devuelve el valor del elemento con el conjunto de índices:
double At(                  // returns the value of the element
   const uchar index        // índice del elemento
   ) const;
//--- método devuelve el valor de la última escritura en el elemento del buffer:
double Last() const;
//--- método sobrescribe último valor del elemento en el buffer:
void Last(
   const double element     // new value of the element
   );  
//--- el método devuelve el tamaño del buffer circular:
int Size();

Nota:

  • el tamaño del búfer circualr es siempre constante e igual a 256 elementos
  • en la realización del búfer circular dada la indexación es tomada como timeseries, es decir, lo opuesto a lo habitual 

Ejemplos

Uso de esta clase es similar a CArrayRing . Hay un par de diferencias:

  • El método Init() es utilizado para el inicio del buffer por el valor definitivo;
  • El método Resize() está ausente mientras el tamaño del búfer es siempre constante.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1379

Fractales X-barras Fractales X-barras

El indicador Fractales X-barras permite definir el número de barras a la izquierda y la derecha del fractal. Es bueno como para local, pero para extremos globales

Exp_BBSqueeze Exp_BBSqueeze

Este sistema de trading se basa en las señales que se obtienen del indicador BBSqueeze.

Exp_Bezier Exp_Bezier

Sistema de trading basado en el cambio de dirección de una curva de Bézier universal.

starter starter

Asesor Experto basado en los siguientes indicadores: Laguerre, CCI y MA.