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
Clase de trazado del RSI usando el buffer circular - indicador para MetaTrader 5
- Visualizaciones:
- 1367
- Ranking:
- Publicado:
- 2014.01.15 09:02
- 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 CRSIOnRingBuffer está diseñada para el cálculo del indicador técnico índice de fRelative Strength Index, RSI) utilizando el algoritmo del buffer circular.
Declaración
class CRSIOnRingBuffer : public CArrayRing
Título
#include <IncOnRingBuffer\CRSIOnRingBuffer.mqh>
El archivo de la clase CRSIOnRingBuffer.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. Archivo con la clase del buffer circular y la clase de Media Móvil también debe estar en esta carpeta.
Métodos de la clase
//--- inicio del método: bool Init( // si error devuelve falso, si exitoso - verdadero int period = 14, // periodo del RSI ENUM_MA_METHOD method = MODE_SMMA, // método de suavizado int size_buffer = 256, // tamaño del buffer circular, númro 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 );
//--- el método de cálculo basado en los elementos de las series separadas de la matriz double MainOnValue( // devuelve el valor del RSI 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 comienzan los datos significativos de la matriz const double value, // valor de los elementos de la matrize const int index // el índice de los elemetos );
//--- the methods of access to data: int BarsRequired(); // Devuelve el número necesario de barras para dibujar el inficator string Name(); // Devuelve el nombre del indicador int Period(); // Devuelve el período string Method(); // Devuelve el método en forma de línea de texto 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:
//--- la clase con los métodos de cálculo del indicador RSI: #include <IncOnRingBuffer\CRSIOnRingBuffer.mqh> CRSIOnRingBuffer rsi; ... //+------------------------------------------------------------------+ //| Función iteracion 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: rsi.MainOnArray(rates_total,prev_calculated,price); ... //--- utilizar los datos del buffer circular "rsi", // por ejemplo, copiar los datos en el buffer de indicador: for(int i=start;i<rates_total;i++) RSI_Buffer[i] = rsi[rates_total-1-i]; // linea del indicador //--- devuelve el valor del prev_calculated para la siguiente 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 indicator calculates the Test_RSI_OnArrayRB.mq5 file on the basis of the price time series. Se demuestra la aplicación del método MainOnArray()
- El archivo Test_RSI_OnValueRB.mq5 muestra el uso del método MainOnValue(). Al principio el indicador RSI se calcula y se dibuja. Después sobre la base de este buffer circular del indicador se raza un RSI más.
Resultado del trabajo del Test_RSI_OnArrayRB.mq5 con el tamaño del búfer circular de 256 elementos Al escribir el código fueron utilizados los desarrollos de MetaQuotes Software Corp., Integer y GODZILLA.
Resultado del trabajo del Test_RSI_OnValueRB.mq5 con el tamaño del búfer circualr de 256 elementos
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1385
La prueba de normalidad de Shapiro-Wilk.
DDE - ServerExportar datos reales de MQL5 a Excel (DDE).
Sistema de trading basado en las señales que se obtienen del indicador BBands_Stop_v1.
Support Vector Machine Learning TraderEste Asesor Experto utiliza el aprendizaje por medio de los vectores de soporte para analizar el historial de precios y dar señales para operaciones futuras.