XTB Microsite
Inicio
Artículos
Descargas
Cotizaciones
Foro
Agenda
Noticias
Links
Boletín
BTS TraderTrader Watch
MQL4 para Novatos I Imprimir E-Mail
por X-Trader   
01/02/2008
 

 

Variables
Ahora que ya sabemos donde escribir, veamos cómo introducir variables. Básicamente el esquema que debemos usar es el siguiente:

[tipo variable] [nombre variable] = [valor variable];

Dentro de los tipos de variables tenemos los siguientes: int (entero), double (doble precisión), string (cadena de texto) y bool (booleano).

Veamos un ejemplo: si deseamos definir el tamaño de un stop para el EUR/USD. Para ello, podemos escribir:

double stoplosseurus = 0.0025;

En algunos casos, puede que no sea necesario asignar un valor inicial a la variable; así por ejemplo podemos escribir simplemente:

double stoplosseurus ;

Y asignarle posteriormente un valor.

Conviene recordar que en MQL4 se distingue el uso de mayúsculas y minúsculas por lo que las siguientes expresiones:
double HIGHPRICE; double highprice; double HighPrice; double highPrice;

declararán cuatro variables diferentes.

Asimismo, los nombres de las variables no pueden comenzar por números o símbolos.

Por último hay que tener en cuenta que las palabras del lenguaje MQL4 deben ir siempre en minúsculas. Por ejemplo, las expresiones:

DOUBLE hightPrice1;  Double hightPrice2;

producirán un error al compilar.


Una vez declaradas las variables, veamos qué se puede hacer con ellas:

Operaciones aritméticas

//Declaramos variables para el ejemplo
double a = 50.0;
double b = 2.0;   
double c;

// Suma(+): en la variable c sumamos los valores de a y b, obtenemos el valor 52.0
c = a + b;      

// Resta(-): en la variable c restamos los valores de a y b, obtenemos el valor 48.0  
c = a - b;      

// Multiplicación(*): en la variable c multiplicamos a por b, obtenemos el valor 100.0
c = a*b;        

// División(/): en la variable c dividimos el valor de a por b, obtenemos el valor 25.0   
c = a / b;

// También podemos combinar operaciones tal que c ahora valdría 104.0
c = (a + b)*b;
 

Generación de ventanas con mensajes
Todas las operaciones que acabamos de ver son realizadas correctamente cuando ejecutamos este script en Metatrader. Sin embargo, al ejecutarlo no tendremos ninguna confirmación visual de que todo va bien. Para ello, necesitamos utilizar una función muy útil, MessageBox().

Mediante dicha función podemos generar ventanas con mensajes informativos del estado de una secuencia de comandos. El esquema para utilizar esta función es el siguiente:

MessageBox("Mensaje que queremos mostrar.","Título de la Ventana");

Veamos un ejemplo de cómo podríamos utilizar esta función con el siguiente código:

int a = 50;   
int b = 100;     
MessageBox("Muy fácil. a+b=" + (a + b), "Resultado de la Suma");  

Como resultado obtenemos la siguiente ventana:

Image


Vectores (Arrays)
Pasamos a ver cómo se declaran vectores en MQL. El esquema para ello es el siguiente:

(Tipo de array) (Nombre del array) [Nº de elementos];

Por ejemplo, la sentencia:

double price[5];

nos creará un vector de 5 elementos de tipo Double.

¿Cómo podemos hacer referencia a cada uno de los componentes del array y darles un valor? Muy fácil: una vez hemos declarado el array "price" del ejemplo anterior, podemos dar un valor a su primer elemento de la siguiente forma:

price[0] = 1.2341;

Obsérvese que los índices de los arrays empiezan en 0, de tal forma que dicho valor se corresponde con el primer elemento del array. Del mismo price[1] = 1.2321; nos asignaría un valor al segundo elemento del array y así sucesivamente.

Por supuesto, podemos declarar un array asignándole valores iniciales:

double price[2] = {1.2234, 1.2421};

Aunque también es posible no especificar el número de elementos y dejar que Metatrader lo determine:

double price[] = {1.2234, 1.2421};

Asimismo, con los arrays también podemos realizar las mismas operaciones que hacíamos con las variables como se muestra en los siguientes ejemplos:

double price[2];
price[0] = 1.2234;   
price[1] = 1.2421;     
MessageBox("El precio medios es " + (price[0] + price[1]) / 2.0,"Precio medio");

Variables y Arrays de Serie
En el lenguaje MQL, existe una serie de variables y arrays que vienen de serie y que nos serán de gran utilidad a la hora de crear nuestro propio código:

double Open[];  // array de precios de apertura  
double High[]; // array de máximos
double Low[]; // array de mínimos.
double Close[]; //array de precios de cierre
double Volume[]; // array de volúmenes.
double Bid  // Último precio de compra
double Ask  // Último precio de venta

Por supuesto, podemos hacer referencia a un determinado valor del array; así, por ejemplo, High[0] hace referencia al último máximo del precio. El siguiente gráfico seguramente termine de aclararles del todo el asunto:

Image


Cómo pueden observar cada barra está indexada, siendo la barra 0 la última, la barra 1 la penúltima, etc.



 
Añadir a
del.icio.us
digg
Fresqui
menéame
n€góciame
reddit
Technorati