Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
La clase para la elaboración del ER usando el buffer circular - indicador para MetaTrader 5
- Visualizaciones:
- 932
- Ranking:
- Publicado:
- 2014.01.15 08:56
- Actualizado:
- 2016.11.22 07:33
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Descripción
La clase CEROnRingBuffer está diseñada para calcular el indicador técnico Ratio de Eficiencia (ER) utilizado en el Adaptive Moving Average (Adaptive Moving Average, AMA) utilizando el algoritmo del buffer circular.
Declaración
class CEROnRingBuffer : public CArrayRing
Título
#include <IncOnRingBuffer\CEROnRingBuffer.mqh>
Archivo de la clase CEROnRingBuffer.mqh debe colocarse en la carpeta IncOnRingBuffer que es necesario establecer en MQL5\Include\. Se adjuntan a la descripción dos archivos con los ejemplos utilizados por la clase de esta carpeta. El archivo con la clase del búfer circular también debe estar en esta carpeta.
Métodos de la clase
//--- método de inicio: bool Init( // si error devuelve falso, si exitoso - verdadero int period = 34, // periodo de cálculo del ER int size_buffer = 256, // tamaño del buffer circular, número de dato almacenado bool as_series = false // verdadero, si timeseries, falso - si indexación habitual de los datos de entrada );
//--- método de cálculo basado en una serie temporal o buffer del indicador: int MainOnArray( // devuelve el número de lemenetos procesados const int rates_total, // tamaño de la matriz array[] const int prev_calculated, // elementos procesados en la llamada anterior const double &array[] // matriz de los valores de entrada );
//--- //--- método de cálculo basado en los elementos de las series separadas de la matriz
double MainOnValue( // devuelve el valor ER para el conjunto de elementos
const int rates_total, // tamaño de la matriz
const int prev_calculated, // elementos procesados de la matriz
const int begin, // desde donde los datos significativos del inicio de la matriz
const double value, // valor de los elementos de la matriz
const int index // índice de los elementos
);
//--- the methods of access to the data: int BarsRequired(); // Devuelve el número necesario de barras para dibujar el indicador string Name() // Devuelve el nombre del indicador int Period() // Devuelve el periodo de cálculo de ER int Size(); // Devuelve el tamaño del buffer circular
Es posible obtener los datos calculados del indicador desde el buffer circular a partir de la matriz habitual. Por ejemplo:
//--- the class with the methods of calculation of the ER indicator: #include <IncOnRingBuffer\CEROnRingBuffer.mqh> CEROnRingBuffer er; ... //+------------------------------------------------------------------+ //| Función de iteración del indicador personalizado | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- cálculo del indicador, según el precio de series de tiempo: er.MainOnArray(rates_total,prev_calculated,price); ... //--- utilizar los datos del buffer circular "er", // por ejemplo, copiar los datos en los buffers de los indicadores: for(int i=start;i<rates_total;i++) { ER_Buffer[i] = er[rates_total-1-i]; // linea del indicador } //--- valor de retorno de prev_calculated para la próxima llamada: return(rates_total); }
Tenga en cuenta que la indexación en el búfer circular es la misma que en la timeserie.
Ejemplos
- The Test_ER_OnArrayRB.mq5 file calculates the indicator based on price time series. Se demuestra la aplicación del método MainOnArray()
- El Test_ER_OnValueRB.mq5 demuestra el uso del método MainOnValue(). Al principio el indicador ER se calcula y se dibuja. Después sobre la base del buffer circular de este indicador se dibuja un ER uno.
El resultado del trabajo del Test_ER_OnArrayRB.mq5 con el tamaño del buffer circular de 256 elementos Al escribir el código fueron utilizados los desarrollos de MetaQuotes Software Corp., Integer y GODZILLA.
Los resultados del trabajo del Test_ER_OnValueRB.mq5 con el tamaño del buffer circular de 256 elementos
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1374
El indicador Woodies CCI Paterns
Pivot Lines TimeZoneEl indicador de niveles de Pivote, los subniveles Pivote y los niveles Camarilla, se muestran los buffers de indicadores y las líneas horizontales.
Este script visualiza diferentes subgráficos en una misma ventana de acuerdo con el número de pares de divisas en el menú de Observación del Mercado.
MultiTrend_Signal_KVNEl indicador del famoso trader Korykin