Publi

Publi

Resultados 1 al 5 de 5


  1. #1

    habilis


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 3
    Créditos: 99

    El Automatico me cierra ordenes en el momento que abro metatrader


    Publi
    Hola a todos.
    Tengo un EA en metatrader 4 que he logrado programar a duras penas ya que no soy programador y lo he hecho de forma autodidacta, lo tengo trabajando con un vps y el cierre de las ordenes las hago a traves de cierres parciales. El caso es que una vez que me entra una orden y entro en metatrader, compilo desde el metaeditor o inserto el EA en la ventana me realiza un cierre parcial aunque no se estén dando las condiciones de cierre.
    No entiendo porque ocurre esto, ya que con otros programas no ocurre, lo he probado con distintos brokers.

    Gracias de antemano.
    Foro de Forex Trading United

     

  2.                         
    Publi
  3. #2

    ergaster


    Reputación:
    Poder de reputación: 3

    Espana
    Mensajes: 25
    Créditos: 957

    Re: El Automatico me cierra ordenes en el momento que abro metatrader

    Cita Iniciado por Pepito454 Ver mensaje
    Hola a todos.
    Tengo un EA en metatrader 4 que he logrado programar a duras penas ya que no soy programador y lo he hecho de forma autodidacta, lo tengo trabajando con un vps y el cierre de las ordenes las hago a traves de cierres parciales. El caso es que una vez que me entra una orden y entro en metatrader, compilo desde el metaeditor o inserto el EA en la ventana me realiza un cierre parcial aunque no se estén dando las condiciones de cierre.
    No entiendo porque ocurre esto, ya que con otros programas no ocurre, lo he probado con distintos brokers.

    Gracias de antemano.
    Lo que te puedo recomendar es que eche un vistazo en tu oninit() por si has dejado algo sin querer ahí y si no, tendrás que comprobar en tu chequeo de ordenes.
    Yo siempre utilizo un chequeo de ordenes abiertas para filtrar las acciones de un EA dependiendo si hay ordenes abiertas o no.
    Por ejemplo:
    Código:
    //si no hay ordenes abiertas, buscar señal
    if(ChequearOrdenes()<1) BuscaSenalEntrada();
    else BuscarSenalCierre;
    
    
    int ChequearOrdenes()
    {   bool SelectControl=false; // controla si puede o no seleccionar una orden
       
       for(int i=0; i<TotalOrders(); i++)
       {
          SelectControl=OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
          if (SelectControl && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) 
          {
             CountMagicOrders++;
             if (CountMagicOrders<2) Ticket=OrderTicket(); //recoge el ticket de la primera orden
          }
       }
       return(CountMagicOrders);
    }

    con algo así, podrás controlar que haga algo si tienes ordenes abierta o que haga otra cosa si no tiene.
    espero que te funcione y suerte.
    Foro de Forex Trading United

     

  4. #3

    habilis


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 3
    Créditos: 99

    Re: El Automatico me cierra ordenes en el momento que abro metatrader

    Tengo una función que me detecta si tengo una orden abierta o ninguna, por que solo quiero tener una orden como máximo abierta, pero el problema es que como tengo un vps en el cual me está corriendo el programa las 24 horas del dia, en el momento que arranco metatrader, me hace un cierre parcial o cuando lo compilo desde el metaeditor y claro desde el oninit() no tengo nada relevante que me lo pueda activar ademas el programa ya esta funcionando en el vps.
    Por mas vueltas que le doy no veo el por que.

    Foro de Forex Trading United

     

  5. #4
    Avatar de carlessan
    Erectus


    Reputación:
    Poder de reputación: 4

    Mensajes: 86
    Créditos: 2,084

    Re: El Automatico me cierra ordenes en el momento que abro metatrader

    Muchos expertos no tienen en cuenta la situación de "reseteo" es decir, cuando el Meta se abre con operaciones del experto abiertas, o cuando se compila, se cambia una plantilla, un perfil o de timeframe. Todas estas acciones hacen que se ejecute el evento OnInit() e inmediatamente después el evento OnTick().

    Si en tu evento OnInit() no tienes nada relevante, es posible que debas calcular en qué situación se halla tu experto en el Ontick(), para que ante una reapertura del meta o "reset", el experto sepa inmediatamente si tiene órdenes abiertas, a que distancia del precio y si es necesario cerrarla o no. Para ello debes volver a recalcular las variables responsables de ese cierre parcial que te ejecuta. Esto es debido a que ante un "reset", las variables se eliminan y por lo tanto sus valores se pierden y es necesario recalcularlas para que mantengan la situación anterior al "reset". Se trata de una buena praxis para evitar que el experto se haga un lío al reiniciar la plataforma y no contemple la situación de antes del "reset", evitando que haga acciones no deseadas.

    Salu2
    Foro de Forex Trading United

     

  6. #5

    habilis


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 3
    Créditos: 99

    Re: El Automatico me cierra ordenes en el momento que abro metatrader


    Publi
    Hola muchas gracias por responder a mis dudas que al final he podido resolver con vuestra ayuda.
    El problema que tenia, era que tenia dos funciones que me realizaban los cierres parciales, uno cuando iba a favor y otro en contra, y a cada una de ellas les había asignado una variable, las cuales eran globales para poder ver su resultado en un "comment", la cosa es que las he colocado dentro del "OnTick" cuando ya ahy una orden abierta y se me a solucionado el problema.
    Espero que esto le pueda servir a alguien y vuelvo a daros las gracias por el tiempo que habéis utilizado en ayudarme.
    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