Nueva York
Londres
Madrid
Tokyo
Sidney
MQL4 para Novatos I Imprimir Correo electrónico
Por X-Trader   
01 de Febrero de 2008



Bucles
Veamos ahora como crear una estructura de bucle (loop) en MQL. Recordemos que este tipo de estructura puede ser tipo For o While; ésta última la veremos en próximos artículos.

La estructura general de un bucle de tipo For en MQL es la siguiente:

for(Declaración de Contador; Condiciones para el bucle; Incremento del contador)    
{      
Código que se ejecutará en el bucle
}

Veamos en detalle la estructura anterior:

 

  • Declaración del Contador: siempre utilizaremos una variable de tipo int para el contador, que normalmente siempre será inicializada en 0.
  • Condiciones para el bucle: aquí indicaremos la condición o condiciones que, en caso de verificarse, permitirán que el bucle continúe ejecutándose; en caso contrario, el bucle finalizará.
  • Incremento del contador: aquí indicaremos en qué cantidad se incrementará el contador cada vez que termine un bucle. Normalmente, salvo que sea un caso especial, añadiremos una unidad al contador lo que se consigue añadiendo dos signos positivos (++) detrás del nombre de la variable que actúe como contador.


Seguramente un ejemplo aclare todo esto: supongamos que queremos calcular la media de todos los máximos que hay en el gráfico; lo haríamos del siguiente modo:

//Declaramos una variable para almacenar los máximos y la media

double CumHigh = 0.0;
double AveragePrice=0.0;

// Iniciamos el bucle: damos valor inicial 0 a la variable contador a, produciéndose el final del bucle se alcance el
// número total de barras que haya en el gráfico (Bars) y sumando una unidad a en cada iteración.
// En la variable CumHigh sumamos la barra de a periodos atras.

for(int a = 0; a < Bars; a++)
{ CumHigh += High[a]; }

// Calculamos la media dividiendo la suma total entre el nº de barras

AveragePrice = CumHigh/Bars;



Condiciones
Veamos ahora cómo se construyen condiciones en MQL. Básicamente la estructura es similar a la de otros lenguajes, utilizando la palabra If, por lo que un ejemplo debería ser suficiente para entenderlo:


int a = 10;  
int b = 0;     
if(a > 10 )    
{      b = 1;    }  
else    
{      b = 2;    }     
MessageBox("b=" + b,"."); 

En el ejemplo anterior, la condición viene entre paréntesis después de la palabra If. Dado que la condición es falsa (ya que a es igual a 10), al final del script, el valor de b será 2 ya que si no se verifica la condición pasamos al valor Else, que es el que nos determina qué sucederá si a es menor o igual a 10.

En MQL podemos utilizar diferentes operadores para realizar comparaciones: == (igual), != (distinto), > (mayor) , < (menor) , >= (mayor o igual) y <= (menor o igual).

Veamos un ejemplo en el que ahora se incluye un bucle dentro de una condición:

int a=0;
double b=0.0;
bool e;
if(a==0)
{ for(int c=0;c<Bars;c++)
{ b+=High[c]; }
if(b>500.0)
{ e=true; }
else
{ e=false; } }

El código anterior suma los máximos del gráfico si a es igual a 0; posteriormente si la suma es superior a 500.0 devuelve el valor verdadero mediante la variable e, o falso en caso contrario.

Por supuesto, las condiciones se pueden superponer unas sobre otras como en el siguiente ejemplo:

int a=0;
int result;
if(a==0)
{ result=1; }
else if(a==1)
{ result=2; }
else if(a==2)
{ result=3; }
else { result=4; }



Las condiciones se pueden complicar aún más introduciendo los valores lógicos && (AND) y || (OR). Por ejemplo:

int a=10;  
int b=20;     
if ( ((a>5) || (a<15)) && ( b==20))    
MessageBox("Me ha salido bien!","Ejemplo del uso de AND y OR");

En el próximo artículo veremos cómo construir complejas expresiones así como algunas aplicaciones.

(Continuará...)

Un saludo,
X-Trader
ARTÍCULOS RELACIONADOS
MQL4 para Novatos II
Trackback(0)
Comentarios (0)Add Comment

Escribir comentario

security code
Escribe los caracteres de la imagen


busy

 

Blogs de Bolsa - Top List

Buscar en X-Trader.net

Siguenos en:

Mercados

EN LOS FOROS

COMENTARIOS

Últimos Comentarios