Funciones para obtener las propiedades básicas del gráfico actual

En muchos ejemplos del libro ya hemos tenido que utilizar Variables predefinidas, las cuales contienen las principales propiedades del gráfico y su símbolo de trabajo. Los programas MQL también tienen acceso a funciones que devuelven los valores de algunas de estas variables. No importa lo que se utilice, una variable o una función, por lo que puede utilizar los estilos de código fuente que prefiera.

Cada gráfico se caracteriza por un símbolo de trabajo y un marco temporal, que se pueden encontrar utilizando las funciones Symbol y Period, respectivamente. Además, MQL5 proporciona un acceso simplificado a las dos propiedades de símbolo más utilizadas: el tamaño del punto de precio (Point) y el número asociado de dígitos significativos (Digits) después del punto decimal en el precio.

string Symbol()

La función Symbol devuelve el nombre del símbolo del gráfico actual, es decir, el valor de la variable del sistema _Symbol. Para obtener el símbolo de un gráfico arbitrario, existe la función ChartSymbol, que opera a partir del identificador del gráfico. Hablaremos de los métodos para obtener identificadores de gráficos un poco más adelante.

ENUM_TIMEFRAMES Period()

La función Period devuelve el valor del marco temporal (ENUM_TIMEFRAMES) del gráfico actual, que corresponde a la variable _Period. Para obtener el marco temporal de un gráfico arbitrario, utilice la función ChartPeriod, y también necesita un identificador como parámetro.

double Point()

La función Point devuelve el tamaño en puntos del instrumento actual en la divisa de cotización, que es el mismo que el valor de la variable _Point.

int Digits()

La función devuelve el número de decimales después del punto decimal, que determina la precisión de la medición del precio del símbolo del gráfico actual, lo que equivale a la variable _Digits.

Otras propiedades de la herramienta actual le permiten obtener SymbolInfo-functions, que en un caso más general proporcionan un análisis de todos los instrumentos.

En el siguiente ejemplo sencillo del script ChartMainProperties.mq5 se registran las propiedades descritas en esta sección.

void OnStart()
{
   PRTF(_Symbol);
   PRTF(Symbol());
   PRTF(_Period);
   PRTF(Period());
   PRTF(_Point);
   PRTF(Point());
   PRTF(_Digits);
   PRTF(Digits());
   PRTF(DoubleToString(_Point_Digits));
   PRTF(EnumToString(_Period));
}

Para el gráfico EURUSD,H1, obtendremos las siguientes entradas de registro:

_Symbol=EURUSD / ok
Symbol()=EURUSD / ok
_Period=16385 / ok
Period()=16385 / ok
_Point=1e-05 / ok
Point()=1e-05 / ok
_Digits=5 / ok
Digits()=5 / ok
DoubleToString(_Point,_Digits)=0.00001 / ok
EnumToString(_Period)=PERIOD_H1 / ok