Descargar MetaTrader 5

Mira cómo descargar robots gratis

¿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

Indicadores

Clase de trazado del RSI usando el buffer circular - indicador para MetaTrader 5

| Spanish English Русский 中文 Deutsch 日本語 Português

Visualizaciones:
557
Ranking:
votos: 15
Publicado:
2014.01.15 09:02
Actualizado:
2016.11.22 07:33
\MQL5\Include\IncOnRingBuffer\
carrayring.mqh (6.64 KB)ver
\MQL5\Indicators\IncOnRingBuffer\

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

  1. 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()
  2. 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



Resultado del trabajo del Test_RSI_OnValueRB.mq5 con el tamaño del búfer circualr de 256 elementos

 

Al escribir el código fueron utilizados los desarrollos de MetaQuotes Software Corp., Integer y GODZILLA.

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

isNormalDist isNormalDist

La prueba de normalidad de Shapiro-Wilk.

DDE - Server DDE - Server

Exportar datos reales de MQL5 a Excel (DDE).

Exp_BBands_Stop Exp_BBands_Stop

Sistema de trading basado en las señales que se obtienen del indicador BBands_Stop_v1.

Support Vector Machine Learning Trader Support Vector Machine Learning Trader

Este 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.