Publi

Publi

Resultados 1 al 2 de 2


  1. #1

    antecessor


    Reputación:
    Poder de reputación: 8

    Venezuela
    Mensajes: 597
    Créditos: 2,154

    variable de condicion


    Publi
    Saludos.

    Por ejemplo, digamos que quiero colocar que la variable "ATR14" significa, no la ATR(14) sino que este sea mayor que 0.0005, ¿Se puede hacer esto en MQL4? ¿lo toma en cuenta? (para no escribir todo en ela condición "if").

    Es decir, que en vez de declarar:
    double ATR14= iATR(NULL, PERIOD_CURRENT, 14, 1);

    Y despues colocar:
    if (ATR14>0.0005)


    ¿Puedo colocar?:

    double ATR14= iATR(NULL, PERIOD_CURRENT, 14, 1)>0.0005;

    if (ATR) // y entonces aquí ya está tomando en cuenta de si en ATR es mayor a 0.0005.

    ¿Estó es correcto en mql4? ¿lo está tomando en cuenta así coloque la condición en la declaración de la variable? (note que tampoco estoy colocando "if(ATR==true)

    (he visto que los resultados del testeo son diferentes cuando coloco de una u otra forma, mas quisiera confirmar esto).

    Muchas gracias de antemano
    Foro de Forex Trading United

     

  2.                         
    Publi
  3. #2
    Avatar de yokinfx
    Erectus


    Reputación:
    Poder de reputación: 7

    Mensajes: 246
    Créditos: 1,326

    Re: variable de condicion


    Publi
    Cita Iniciado por trader201 Ver mensaje
    Saludos.

    Por ejemplo, digamos que quiero colocar que la variable "ATR14" significa, no la ATR(14) sino que este sea mayor que 0.0005, ¿Se puede hacer esto en MQL4? ¿lo toma en cuenta? (para no escribir todo en ela condición "if").

    Es decir, que en vez de declarar:
    double ATR14= iATR(NULL, PERIOD_CURRENT, 14, 1);

    Y despues colocar:
    if (ATR14>0.0005)


    ¿Puedo colocar?:

    double ATR14= iATR(NULL, PERIOD_CURRENT, 14, 1)>0.0005;

    if (ATR) // y entonces aquí ya está tomando en cuenta de si en ATR es mayor a 0.0005.

    ¿Estó es correcto en mql4? ¿lo está tomando en cuenta así coloque la condición en la declaración de la variable? (note que tampoco estoy colocando "if(ATR==true)

    (he visto que los resultados del testeo son diferentes cuando coloco de una u otra forma, mas quisiera confirmar esto).

    Muchas gracias de antemano
    Es interesante la cuestion que planteas.

    Lo primero es que no estoy seguro de que el compilador de mql4 lo soporte. Creo que un lenguaje como C no te daria mayor problema. Mayor problema, quiero decir, en cuanto a sintaxis. En cuanto a la logica, eso ya es otra cosa...

    Si el compilador de mql4 no te lo rechaza, el problema que planteas es un problema de precedencia de operadores: ¿Qué se ejecuta antes y qué se ejecuta despues? Busca en Google o en mql4.com por "operator precedence". Ahí podrás ver que el operador > tiene más precedencia que el operador de asignación =. O sea, que se ejecutará antes.

    Con lo que, primero se ejecutará la comparación
    Código:
    iATR(NULL, PERIOD_CURRENT, 14, 1)>0.0005
    Esa comparación devuelve true o false (ó 1 ó 0) dependiendo de si se cumple que la parte izquierda es mayor a la parte derecha o no.
    Y luego, se ejecuta la asignación
    Código:
    double ATR14= iATR(NULL, PERIOD_CURRENT, 14, 1)>0.0005
    Pero lo que le estás asignando a ATR14 es un booleano, o sea, un true o false (o, repito, 0 ó 1).

    Todo esto de lo digo sin haberlo probado en el compilador de mql4. Pruébalo, a ver si te da los resultados esperados o por el contrario se comporta "raro"...
    Foro de Forex Trading United



Publi
Publi


Aviso Legal
Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal