Novato en Metatrader!!! Necesito ayuda.

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
JLRC
Mensajes: 3
Registrado: 13 Nov 2008 08:10

Novato en Metatrader!!! Necesito ayuda.

Mensaje por JLRC »

Ante todo esla primera vez que escribo en este foro y despues de trabajar algun tiempo con prorealtime, quiero aprender Metatrader ya que segun todo lo leido en este foro es bastate mejor.
Yo estoy intentando aprender con el manual de MQL4 pero me surgen dudas que iré exponiendo poco a poco.
Por ejemplo, imaginaos que tengo guardado el maximo valor de N barras al cierre, en una variable, "llamemosla MX" y otra con el menor de esas mismas N barras al cierre tambien "llamemosla MN".
Pongamos por ejemplo que hago una media e esas dos sumando (MX+MN)/2.
Hasta ahí todo bien, pero la duda que tengo es.....

como sería el codigo para metatrader para poder comparar esa media de la barra actual con la barra anterior?????

Esquematicamente:
MX=MaximoValor[200](cierre)
MN=MinimoValor[200](cierre)
MEDIA=(MX+MN)/2
¿Como compararía el valor actual de Media en la barra actual, con el de la barra anterior con un (IF) por ejemplo?
if MEDIA(actuaL)<= MEDIA(anterior) entonces????


Espero que me haya explicado bien.
De todas formas gracias e antemano por vuestra ayuda y enhorabuena por este foro tan bueno y en el que se aprende tantas cosas.

Muchas Gracias.
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

Una pregunta obvia el hecho de comprobar si un valor es mayor igual o menor a otro, la respuesta es sí, pero supongo que lo preguntas porque la condición no te da los valores que debería dar, jejeje, bienvenido al mundo del MQL.

En su momento también me calenté la cabeza en buscar esa solución y llegué a la conclusión que cuando comparas dos valores “double” con diferentes dígitos la condición “if” en Metatrader puede no dar el resultado que debería dar. Para esto hay dos soluciones.

En este caso la variable “double” MEDIA puede dar valores decimales con distintas cantidades de dígitos detrás de la coma ya que se saca de una división.

Una solución es normalizar los valores:

If(NormalizeDouble(MEDIA(actual),Digits ) <= NormalizeDouble(MEDIA(anterior),Digits))

La otra solución es la que utilizo yo, que es restar los valores y compararlos con cero, de esta forma la condición solo compara si el valor resultante de la resta es positivo/negativo o cero y cambiar el chip pensando que el signo – “menos” de la resta lo sustituyes mentalmente por el <= a la hora de escribir el código para saber cuál es la condición.

If(MEDIA(actual) - MEDIA(anterior) <= 0)

Bueno, no sé si te habré ayudado en tu problema.
Responder

Volver a “Metatrader 4”