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

    ¿Cuál es el error aquí? (intendando forzar la entrada en MQL4)


    Publi
    Estoy colocando en un EA, para forzar la entrada, que regrese a variabla justo antes de OrderSend en caso de no haberse producido este. Así:

    Código:
       int A=0;
       if (OrderSend(NULL, OP_BUY, 0.01, Ask, 5, SL, TP, NULL, 0, 0, clrNONE)!=true);
       return (A);
    La intención es que siempre que no abra la operación, regrese a la variable "A" para repetir la linea de OrderSend.

    Pero me sale mensaje de error al compilar diciendo:

    empty controlled statement found (cuando doy doble click a este envía el cursor a linea de OrderSend)
    'return' - 'void' function returns a value (cuando doy doble click a este, envía cursor a linea "return").

    ¿Alguien sabe de qué se trata esto?

    Gracias de antemano.
    Foro de Forex Trading United

     

  2.                         
    Publi
  3. #2
    Avatar de YHOYO
    antecessor


    Reputación:
    Poder de reputación: 5

    Colombia
    Mensajes: 324
    Créditos: 428

    Re: ¿Cuál es el error aquí? (intendando forzar la entrada en MQL4)


    Publi
    Cita Iniciado por trader201 Ver mensaje
    Estoy colocando en un EA, para forzar la entrada, que regrese a variabla justo antes de OrderSend en caso de no haberse producido este. Así:

    Código:
       int A=0;
       if (OrderSend(NULL, OP_BUY, 0.01, Ask, 5, SL, TP, NULL, 0, 0, clrNONE)!=true);
       return (A);
    La intención es que siempre que no abra la operación, regrese a la variable "A" para repetir la linea de OrderSend.

    Pero me sale mensaje de error al compilar diciendo:

    empty controlled statement found (cuando doy doble click a este envía el cursor a linea de OrderSend)
    'return' - 'void' function returns a value (cuando doy doble click a este, envía cursor a linea "return").

    ¿Alguien sabe de qué se trata esto?

    Gracias de antemano.
    hola

    pues creo que estas planteando mal el asunto... ya que lo que quieres es un bucle tipo while:
    en esencia se crea una variable booleana que controle si se abre o no la orden bool enviar_orden = true; y luego coloque el código como tal en el Ontick.... si haces un backtest veras que genera solo una orden.... supongo que tendrias que colocar otro tipo de variable o condición especificando cada cuanto crear ordenes...

    tambien le quite las variables de takeprofit y stoplost pero supongo que vos sabes como ponerlas.. saludos



    Código:
    //+------------------------------------------------------------------+
    //|                                                         test.mq4 |
    //|                                                    Diego Quevedo |
    //|                                                  www.doshape.com |
    //+------------------------------------------------------------------+
    #property copyright "Diego Quevedo"
    #property link      "www.doshape.com"
    #property version   "1.00"
    #property strict
    
    
     bool enviar_orden = true;
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //---
       
    //---
       return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
    //---
       
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
    //---
       while (enviar_orden == true)
       {
       bool orden= OrderSend(Symbol(), OP_BUY, 0.1, Ask, 5, 0, 0, NULL, 0, 0, clrNONE) ;
       
       if (orden!=true)
       {
       enviar_orden = true;
       Print("No se envio la orden");
       Comment("No se envio la orden");
       Alert("No se envio la orden");
    
    
       
       }
       else
       {
       enviar_orden = false;  
       Print("se envio la orden");
       Comment("se envio la orden");
       Alert("se envio la orden");
    
    
       }
    
    
       }
      }
    //+------------------------------------------------------------------+


    pd... aproposito... el return NO nos devuelve a la linea de A.... sino que devuelve un valor.... en este caso devolveria 0.... pero ni siquiera lo ves porque no usas Print ni nada para verlo.... saludos
    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