Publi

Publi

Resultados 1 al 8 de 8


  1. #1
    Avatar de victorin69
    Erectus


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 55
    Créditos: 335

    Modificar un EA ya creado.


    Publi
    Tengo un EA creado que lo programo a una hora determinada y me abre 2 operaciones de "buy stop" y "sell stop" a la vez.
    Bien, lo que desearía es que solo me abriese una de ellas en lugar de las 2, es decir o me abre la compra o me abre la venta.

    Podría alguien indicarme que es lo que tengo que modificar o eliminar en el código fuente?
    No soy programador tan solo quiero hacer esta pequeña modificación.

    Gracias anticipadas y saludos.
    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: Modificar un EA ya creado.

    Cita Iniciado por victorin69 Ver mensaje
    Tengo un EA creado que lo programo a una hora determinada y me abre 2 operaciones de "buy stop" y "sell stop" a la vez.
    Bien, lo que desearía es que solo me abriese una de ellas en lugar de las 2, es decir o me abre la compra o me abre la venta.

    Podría alguien indicarme que es lo que tengo que modificar o eliminar en el código fuente?
    No soy programador tan solo quiero hacer esta pequeña modificación.

    Gracias anticipadas y saludos.

    pues muchas opciones

    basicamente es un condicional IF..... pero pues si no eres programador te quedara como dificil.... con gusto te ayudo... me avisas.. saludo
    Foro de Forex Trading United


  4. #3
    Avatar de Wolfman
    Heidelbergensis


    Reputación:
    Poder de reputación: 15

    Mensajes: 2.052
    Créditos: 7.617

    Re: Modificar un EA ya creado.

    Cita Iniciado por victorin69 Ver mensaje
    Tengo un EA creado que lo programo a una hora determinada y me abre 2 operaciones de "buy stop" y "sell stop" a la vez.
    Bien, lo que desearía es que solo me abriese una de ellas en lugar de las 2, es decir o me abre la compra o me abre la venta.

    Podría alguien indicarme que es lo que tengo que modificar o eliminar en el código fuente?
    No soy programador tan solo quiero hacer esta pequeña modificación.

    Gracias anticipadas y saludos.

    Si tienes el programa fuente que tiene extencion mq4 puedes hacerlo y no deberia ser tan complicado, lo complicado es determinar cuando sea compra y cuando sea venta.

    debes de buscar la linea donde aparecen las condiciones que se deben de cumplir para que el expert ponga las dos ordenes pendienes, normalemente inician con la el comando IF

    si gustas puedes subir el expert para ayudarte mas rapido.

    Saludos y exitos
    Foro de Forex Trading United



    "La mente es como un paracaídas, sólo funciona si se abre. Albert Einstein

  5. #4
    Avatar de victorin69
    Erectus


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 55
    Créditos: 335

    Re: Modificar un EA ya creado.

    Hola compañeros, voy a hacer algo mejor que eso, ya que me habéis dicho donde está el código y lo que he hecho es un copiar y pegar aquí para que me digais que es lo que se debe modificar o eliminar. El EA no es mio y no se si puedo subirlo sin que el autor se llegue a molestar. No obstante le he hecho la consulta y estoy en espera de que me responda.

    Básicamente estas son las órdenes de compra y venta. Lo suyo sería que me diera la opción de escoger que me abra o solo "buy" o solo "sell" o ambas, pero sino tan solo necesito abrir una posición cuando yo crea que va a ser alcista o bajista cuando piense que el precio se va a desplomar. Es decir de modo simple tener 2 EAs uno que se llama VENTA y otro que se llame "COMPRA"

    Saludos a todos.

    __________________________________________________ _____________________________________________

    //+------------------------------------------------------------------+
    //| Check for Pending Stop Orders and Open Positions |
    //+------------------------------------------------------------------+
    int CheckOrdersCondition()
    {
    int result=0;
    for (int i=OrdersTotal()-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY) {
    result=result+1000;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL) {
    result=result+100;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUYSTOP) {
    result=result+10;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELLSTOP) {
    result=result+1;
    }
    }
    }
    return(result); // 0 means we have no trades
    }
    // Result Pattern
    // 1 1 1 1
    // | | | |
    // | | | -------- Sell Stop Order
    // | | --------Buy Stop Order
    // | --------Sell Position
    // --------Buy Position




    //+------------------------------------------------------------------+
    //| Open Buy Stop Pending Order |
    //+------------------------------------------------------------------+
    void OpenBuyStop()
    {
    int ticket,tries;
    tries = 0;
    if (!GlobalVariableCheck("InTrade")) {
    while (tries<3)
    {
    GlobalVariableSet("InTrade", CurTime()); // Set Lock Indicator (Semaphore Set)
    ticket = OrderSend(Symbol(),OP_BUYSTOP,LotsOptimized(),ho,1 ,hso,htp,TradeComment,Magic,0,Green);
    Write(logfile,"OpenBuyStop, OrderSend Executed, @ "+ho+" SL @ "+hso+" TP @ "+htp+" ticket="+ticket);
    GlobalVariableDel("InTrade"); // Clear Lock Indicator (Semaphore Del)
    if (ticket<=0) {
    Write(logfile,"Error Occurred : "+ErrorDescription(GetLastError()));
    tries++;
    } else tries = 3;
    }
    }
    }


    //+------------------------------------------------------------------+
    //| Open Sell Stop Pending Order |
    //+------------------------------------------------------------------+
    void OpenSellStop()
    {
    int ticket,tries;
    tries = 0;
    if (!GlobalVariableCheck("InTrade")) {
    while (tries<3)
    {
    GlobalVariableSet("InTrade", CurTime()); // Set Lock Indicator (Semaphore Set)
    ticket = OrderSend(Symbol(),OP_SELLSTOP,LotsOptimized(),lo, 1,lso,ltp,TradeComment,Magic,0,Red);
    Write(logfile,"OpenSellStop, OrderSend Executed, @ "+lo+" SL @ "+lso+" TP @ "+ltp+" ticket="+ticket);
    GlobalVariableDel("InTrade"); // Clear Lock Indicator (Semaphore Del)
    if (ticket<=0) {
    Write(logfile,"Error Occurred : "+ErrorDescription(GetLastError()));
    tries++;
    } else tries = 3;
    }
    }
    }


    __________________________________________________ ________________________________________________

    Gracias y saludos.
    Foro de Forex Trading United

     

  6. #5
    Avatar de Wolfman
    Heidelbergensis


    Reputación:
    Poder de reputación: 15

    Mensajes: 2.052
    Créditos: 7.617

    Re: Modificar un EA ya creado.

    Cita Iniciado por victorin69 Ver mensaje
    Hola compañeros, voy a hacer algo mejor que eso, ya que me habéis dicho donde está el código y lo que he hecho es un copiar y pegar aquí para que me digais que es lo que se debe modificar o eliminar. El EA no es mio y no se si puedo subirlo sin que el autor se llegue a molestar. No obstante le he hecho la consulta y estoy en espera de que me responda.

    Básicamente estas son las órdenes de compra y venta. Lo suyo sería que me diera la opción de escoger que me abra o solo "buy" o solo "sell" o ambas, pero sino tan solo necesito abrir una posición cuando yo crea que va a ser alcista o bajista cuando piense que el precio se va a desplomar. Es decir de modo simple tener 2 EAs uno que se llama VENTA y otro que se llame "COMPRA"

    Saludos a todos.

    __________________________________________________ _____________________________________________

    //+------------------------------------------------------------------+
    //| Check for Pending Stop Orders and Open Positions |
    //+------------------------------------------------------------------+
    int CheckOrdersCondition()
    {
    int result=0;
    for (int i=OrdersTotal()-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY) {
    result=result+1000;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL) {
    result=result+100;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUYSTOP) {
    result=result+10;
    }
    if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELLSTOP) {
    result=result+1;
    }
    }
    }
    return(result); // 0 means we have no trades
    }
    // Result Pattern
    // 1 1 1 1
    // | | | |
    // | | | -------- Sell Stop Order
    // | | --------Buy Stop Order
    // | --------Sell Position
    // --------Buy Position




    //+------------------------------------------------------------------+
    //| Open Buy Stop Pending Order |
    //+------------------------------------------------------------------+
    void OpenBuyStop()
    {
    int ticket,tries;
    tries = 0;
    if (!GlobalVariableCheck("InTrade")) {
    while (tries<3)
    {
    GlobalVariableSet("InTrade", CurTime()); // Set Lock Indicator (Semaphore Set)
    ticket = OrderSend(Symbol(),OP_BUYSTOP,LotsOptimized(),ho,1 ,hso,htp,TradeComment,Magic,0,Green);
    Write(logfile,"OpenBuyStop, OrderSend Executed, @ "+ho+" SL @ "+hso+" TP @ "+htp+" ticket="+ticket);
    GlobalVariableDel("InTrade"); // Clear Lock Indicator (Semaphore Del)
    if (ticket<=0) {
    Write(logfile,"Error Occurred : "+ErrorDescription(GetLastError()));
    tries++;
    } else tries = 3;
    }
    }
    }


    //+------------------------------------------------------------------+
    //| Open Sell Stop Pending Order |
    //+------------------------------------------------------------------+
    void OpenSellStop()
    {
    int ticket,tries;
    tries = 0;
    if (!GlobalVariableCheck("InTrade")) {
    while (tries<3)
    {
    GlobalVariableSet("InTrade", CurTime()); // Set Lock Indicator (Semaphore Set)
    ticket = OrderSend(Symbol(),OP_SELLSTOP,LotsOptimized(),lo, 1,lso,ltp,TradeComment,Magic,0,Red);
    Write(logfile,"OpenSellStop, OrderSend Executed, @ "+lo+" SL @ "+lso+" TP @ "+ltp+" ticket="+ticket);
    GlobalVariableDel("InTrade"); // Clear Lock Indicator (Semaphore Del)
    if (ticket<=0) {
    Write(logfile,"Error Occurred : "+ErrorDescription(GetLastError()));
    tries++;
    } else tries = 3;
    }
    }
    }


    __________________________________________________ ________________________________________________

    Gracias y saludos.

    Lo que tu quieres no es un Expert, quieres un indicador, ya que dices que el ea te permita a ti decidir que hacer, eso es lo mismo que convertirlo en indicador y en lugar de que mande la orden solo quieres que te de un aviso de esta menera la decicion es tuya, un expert se utiliza para que dadas las condiciones el realize todo sin necesidad del humano.

    Saludos
    Foro de Forex Trading United



    "La mente es como un paracaídas, sólo funciona si se abre. Albert Einstein

  7. #6
    Avatar de victorin69
    Erectus


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 55
    Créditos: 335

    Re: Modificar un EA ya creado.

    Cita Iniciado por Wolfman Ver mensaje
    Lo que tu quieres no es un Expert, quieres un indicador, ya que dices que el ea te permita a ti decidir que hacer, eso es lo mismo que convertirlo en indicador y en lugar de que mande la orden solo quieres que te de un aviso de esta menera la decicion es tuya, un expert se utiliza para que dadas las condiciones el realize todo sin necesidad del humano.

    Saludos
    No hombre no...no quiero un indicador...de hecho es un EA y esta sacado de un EA...

    Un EA que en lugar de abrir 2 ordenes abra solo una...o de compra o de venta...la hora a la que sale y con todo lo que sale ya esta configurado, solo quiero cambiar el número de órdenes.
    Foro de Forex Trading United

     

  8. #7
    Avatar de Wolfman
    Heidelbergensis


    Reputación:
    Poder de reputación: 15

    Mensajes: 2.052
    Créditos: 7.617

    Re: Modificar un EA ya creado.

    Cita Iniciado por victorin69 Ver mensaje
    No hombre no...no quiero un indicador...de hecho es un EA y esta sacado de un EA...

    Un EA que en lugar de abrir 2 ordenes abra solo una...o de compra o de venta...la hora a la que sale y con todo lo que sale ya esta configurado, solo quiero cambiar el número de órdenes.

    La parte del programa que has posteado solo revisa si hay ordenes abiertas, en todo caso no hay te crea las ordenes, lo que debes de encontrar es la parte donde el experte evalua las condiciones necesarias para operar, la logica del analisis para que ponga las ordenes pendientes,

    en esa linea hace un llamado a que funcion, o funciones ejecutara, en este ejemplo es la que ejecuta la BuyStop
    a todas las lineas exepto a la primera que empieza void y al primer corchete ponle delate esto // y solo deja un corchete al final, no borres nada solo ponle la doble implica eso vuele en texto o escrito y no lo ejecutara.

    Recueda cambiar el nombre del ea y hacer los cambios en otro para tener siempre el original por cualquier cosa, luego haz un backtest para ver si hace lo que quieres.

    Saludos.

    //+------------------------------------------------------------------+
    //| Open Buy Stop Pending Order |
    //+------------------------------------------------------------------+
    void OpenBuyStop()
    {
    int ticket,tries;
    tries = 0;
    if (!GlobalVariableCheck("InTrade")) {
    while (tries<3)
    {
    GlobalVariableSet("InTrade", CurTime()); // Set Lock Indicator (Semaphore Set)
    ticket = OrderSend(Symbol(),OP_BUYSTOP,LotsOptimized(),ho,1 ,hso,htp,TradeComment,Magic,0,Green);
    Write(logfile,"OpenBuyStop, OrderSend Executed, @ "+ho+" SL @ "+hso+" TP @ "+htp+" ticket="+ticket);
    GlobalVariableDel("InTrade"); // Clear Lock Indicator (Semaphore Del)
    if (ticket<=0) {
    Write(logfile,"Error Occurred : "+ErrorDescription(GetLastError()));
    tries++;
    } else tries = 3;
    }
    }
    }

    Fuente: EA MT4 Modificar un EA ya creado. - Responder al tema
    Foro de Forex Trading United



    "La mente es como un paracaídas, sólo funciona si se abre. Albert Einstein

  9. #8
    Avatar de victorin69
    Erectus


    Reputación:
    Poder de reputación: 2

    Espana
    Mensajes: 55
    Créditos: 335

    Re: Modificar un EA ya creado.


    Publi
    SOLUCIONADO!!!

    ...tan solo bastaba con borrar todo aquello que no quería, compilado y funcionando perfectamente.
    Actúo la lógica como en los mercados. Quizá ahora piense en hacerme programador
    Foro de Forex Trading United
    Última edición por victorin69; 09-11-2015 a las 11:54

     

Publi
Publi


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