[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 565

 
TEXX:

Buenas tardes.

La modificación de la orden funciona parcialmente, ayúdame a averiguar cuál es el problema.

Se adjunta el código y el registro. He escrito en el registro lo que funciona y lo que no.....


Probablemente por esto.

        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;

La segunda condición casi nunca funcionará

 
Vinin:


Probablemente por esto.

La segunda condición casi nunca se cumplirá


¿Cómo se hace para que funcione?
 
TEXX:

¿pero cómo se hace para que funcione?

Busca el tema con un buscador - algo así como cómo comparar dos números de tipo double...
 
Roman.:

Busca el tema en el buscador - algo así como cómo comparar dos números de tipo double...


La normalización del precio de apertura ha ayudado, pero la condición sobre el cero y la parada no nula.... no funciona

¡¡¡GRACIAS a todos!!! Lo solucioné, mis manos están mal, escribí mal != y esa es la razón de todos los problemas.

 

¿Pueden decirme cómo averiguar el beneficio total de todas las órdenes abiertas?

OPS: Lo siento, enfermedad francesa - no académica...

AccountProfit()

 

Señores conocedores de MQL, ¿podrían decirme si es técnicamente posible hacer lo siguiente?

- Tomamos 100 (o cualquier otro número) trozos de la historia de las citas del pasado y los elegimos según algún principio conocido;

- Modelar una posición de compra abierta en esas 100 piezas y enumerar el Take Profit y el Stop Loss para que el beneficio total sea uno normal (es decir, hacemos un ajuste en 100 piezas separadas de la historia para que sólo funcione una orden en cada pieza, por lo que tenemos 100 órdenes en total), a continuación, hacer lo mismo para la posición de venta, con la enumeración de la toma y la parada que maximiza el beneficio;

- abrimos una operación real - compra o venta, con una toma y un stop, seleccionados en el historial.

Y todo ello en el marco del Asesor Experto.

El truco está en recoger no un trozo continuo de la historia, sino un conjunto de ellos separados, y lo hacemos cada vez después de cerrar una posición antes de abrir una nueva. Realmente he estado pensando en cómo hacerlo de forma lógica, pero no sé cómo hacerlo técnicamente usando MQL.

 
alexeymosc:

Señores de MQL, ¿podrían decirme si es técnicamente posible hacer lo siguiente?

- Tomamos 100 (o cualquier otro número) trozos de la historia de las citas del pasado y los elegimos según algún principio conocido;

- Modelar una posición de compra abierta en esas 100 piezas y enumerar el Take Profit y el Stop Loss para que el beneficio total sea uno normal (es decir, hacemos un ajuste en 100 piezas separadas de la historia para que sólo funcione una orden en cada pieza, por lo que tenemos 100 órdenes en total), a continuación, hacer lo mismo para la posición de venta, con la enumeración de la toma y la parada que maximiza el beneficio;

- abrimos una operación real - compra o venta, con una toma y un stop, seleccionados en el historial.

Y todo ello en el marco del Asesor Experto.

El truco está en recoger no un trozo continuo de la historia, sino un conjunto de ellos separados, y lo hacemos cada vez después de cerrar una posición antes de abrir una nueva. Realmente he estado pensando en cómo hacerlo de forma lógica, pero no sé cómo hacerlo técnicamente usando MQL.

Sobre las fracturas en ZigZag. La cuestión es que las fracturas se alternan una a una, es decir, se mueven hacia arriba, hacia abajo, hacia arriba, etc.
 
El EA necesita un pitido cuando todas las órdenes se cierran, por favor, ayudar a solucionar este o dar otra versión de trabajo.

Gracias.

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
rustein:
El EA necesita un pitido cuando todas las órdenes se cierran, por favor, ayudar a solucionar este o dar otra versión de trabajo.

Gracias.


Cómo ayudarle si

- no saben lo que devuelve la función CountTrades();

- no sabemos qué contiene la variable CloseSound;

- no se sabe si existe un archivo cuyo nombre (teóricamente) está contenido en CloseSound.

 
rustein:
El EA necesita un pitido cuando todas las órdenes se cierran, por favor, ayudar a solucionar este o dar otra versión de trabajo.

Gracias.


if (OrdersTotal() == 0) {
  if (UseSound)  {
     PlaySound(CloseSound);
   }
   UseSound = false;
} else {
   UseSound = true;
}
Razón de la queja: