[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1050

 

¿Cómo escribo la condición if(ordershistorytotal()"repuesto por un pedido")?

 
Stasjan:

¿Cómo escribo la condición if(ordershistorytotal()"repuesto por un pedido")?

Para ello, el valor anterior de OrdersHistoryTotal() debe ser almacenado en una variable estática, y los valores anteriores y actuales deben ser comparados en la condición. Si ha cambiado, entonces ha repuesto, ya que los valores no cambian en una dirección menor allí.
 
Reshetov:
Para ello, el valor anterior de OrdersHistoryTotal() debe ser almacenado en una variable estática, y los valores anteriores y actuales deben ser comparados en la condición. Si ha cambiado, entonces ha repuesto, ya que los valores no cambian hacia abajo allí.

¡¡¡gracias!!!
 
prom18:
Por favor, ayuda. El Asesor Experto pone dos colgantes BuyStop y SellStop por la señal. También hay una señal para abrir una orden pendiente de compra. Tengo que modificar una antigua orden de compra por las condiciones de la última señal. Lo hice a través de la función OrderModify(). No funcionó. Nos da un error 4051. Cómo seleccionar la orden requerida. Entiendo que debemos elegir el ticket, pero cómo determinar el ticket de la orden requerida (en este caso, se trata de BuyStop). Explica al menos la lógica de la acción. Gracias!

int ticket = -1;

...

OrderSelect(...);

if (OrderType() = OP_BuyStop) {

ticket = OrderTicket();

OrderModify(...);

return(0);

}

 
Reshetov:
Para ello, el valor anterior de OrdersHistoryTotal() debe ser almacenado en una variable estática, y los valores anteriores y actuales deben ser comparados en la condición. Si ha cambiado, entonces ha repuesto, ya que los valores no cambian hacia abajo allí.

¿Algún consejo para que sea igual?
 
Roman.:

1 es ciertamente poco. Depende mucho de la velocidad de ejecución de tus órdenes por parte del broker, depende de la velocidad (de internet) con la que des tus órdenes al broker, y probablemente de "algo" en la cuenta real de lo que nosotros (yo) no tenemos ni idea. Slava escribió, cómo el corredor cortó su pipsaur (por medio de la llamada "enfoque individual" a un cliente) el aumento de un mínimo de dist de 2,3 puntos a 18 - 20 puntos, ver una rama aquí https://forum.mql4.com/ru/37451/page10...
Puse 2 puntos en el "buffer" - todas las operaciones están abiertas ahora ) Gracias de nuevo.
 
Stasjan:

¿Algún consejo sobre cómo restablecerlo?

static prevhitorytotal = 0;

...

if (OrderHistoryTotal() != prevhistorytotal) {

// reposición de un pedido

}

prevhistorytotal = OrderHistoryTotal();

 
Reshetov:
Para ello, el valor anterior de OrdersHistoryTotal() debe ser almacenado en una variable estática, y los valores anteriores y actuales deben ser comparados en la condición. Si ha cambiado, entonces se ha repuesto, ya que los valores allí no se modifican a la baja.


static int totalh=Total de pedidos();

if(OrdersHistoryTotal()>totalh)

¿he entendido bien o no?

 
Reshetov:

static prevhitorytotal = 0;

...

if (OrderHistoryTotal() != prevhistorytotal) {

// reposición de un pedido

}

prevhistorytotal = OrderHistoryTotal();


¿Lo tienes?

 
Stasjan:


static int totalh=Total de pedidos();

No es correcto.

static int totalh=0; // Las variables estáticas se declaran antes de las llamadas start(), init() y deinit()

...

int inicio() {

...

if (OrderHistoryTotal() != totalh) {

// reposición de un pedido

}

totalh = OrderHistoryTotal();

...

}

Razón de la queja: