Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 93

 
ivann85:

programáticamente )))
¿Qué necesita encontrar exactamente? ¿El número de la lista? ¿Un billete? ¿Y si hay más de uno en la UE, este péndulo?
Si hay dos o tres cinco millones de ellos y todos tienen el mismo tipo y cuelgan del mismo par, ¿cuál se necesita?
 
alexey1979621:

paladín80


artmedia70



Así que ayúdame con el Asesor Experto- Voy a probarlo de usted programación (como el tema de trabajo), de lo contrario sólo me cuelgan o en dos meses, cuando todos los foros de violación algo va a funcionar.








Oh... ¿Y el número de tu nick no es por casualidad el número previsto de foros violados?

Escribir para ti es un juego de niños. Cincuenta dólares y es tuyo. Nota - un precio muy democrático, casi para nada :))

 
alexey1979621:

paladín80


artmedia70



Así que ayúdame con el Asesor Experto- Voy a probarlo de usted programación (como el tema de trabajo), de lo contrario sólo me cuelgan o en dos meses, cuando todos los foros de violación algo va a funcionar.








Hemos digerido un poco a su asesor, le hemos dicho los puntos débiles, qué hacer y cómo hacerlo, pero no podré hacer las correcciones. Hay mucho código propio que hacer.

... en silencio a la nube para optimizar...

 
ivann85:

programáticamente )))

Ya que no hay respuesta a la pregunta, aquí hay una función que devolverá el ticket del último pedido establecido:

// Возвращает тикет последнего установленного/открытого ордера
int TicketLastOrder(string sy, int op, int mn) {
   datetime t;
   int      i, j=-1, tic=0, k=OrdersTotal()-1;
   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()!=op)          continue;
         if (t<OrderOpenTime()) {
            t=OrderOpenTime();
            j=i;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS)) tic=OrderTicket();
   return(tic);
}
// -------------------------------------------------------------
/*
Ордера фильтруются по символу (sy), типу (op) и магику (mn)
Чтобы найти тикет последнего установленного ордера BuyLimit 
с магиком Magic на текущем графике,
нужно вызвать функцию с такими параметрами:
int Ticket=TicketLastOrder(Symbol(), OP_BUYLIMIT, Magic);
Если есть такой ордер, функция вернёт номер его тикета.
В противном случае, ф-ция вернёт ноль
*/
 

De vez en cuando, pero no constantemente, me sale un error 4200 cuando pongo una orden pendiente. Según la documentación, este error significa que el objeto ya existe:

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


¿Resulta que una orden de este tipo ya está en el mercado cuando se envía la orden pendiente?

 
hoz:

Ocasionalmente, pero no constantemente, recibo el error 4200 cuando coloco una orden pendiente. Según la documentación, este error significa que el objeto ya existe:

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


¿Resulta que la orden de este tipo ya está en el mercado cuando se envía la orden pendiente?

Este error se aplica a los objetos gráficos, no a las órdenes
 
¡Buenas noches, Víctor! Es extraño, ¡la orden pendiente no es un objeto! Tal vez tenga algún objeto que ya debería haber sido eliminado, pero no lo fue.
 

¿Pueden aconsejarme, amigos? Es la primera vez que escribo un EA que trabaja con varias órdenes pendientes al mismo tiempo, y me he preguntado... ¿qué errores puede haber al abrir órdenes pendientes? ¿En qué debemos centrarnos en la función de tratamiento de errores? ¿Podría haber errores como el 4 (el servidor de comercio está ocupado) o el 146 (el subsistema de comercio está ocupado)? Comparte si lo sabes.

 
Dozol:

¿Pueden aconsejarme, amigos? Es la primera vez que escribo un EA que trabaja con varias órdenes pendientes al mismo tiempo, y me he preguntado... ¿qué errores puede haber al abrir órdenes pendientes? ¿En qué debemos centrarnos en la función de tratamiento de errores? ¿Podría haber errores como el 4 (el servidor de comercio está ocupado) o el 146 (el subsistema de comercio está ocupado)? Comparte si lo sabes.

En el mundo real puede pasar de todo. Manejar, si es posible, los errores de negociación que puedan producirse.
 

Por favor, ¡acompáñeme!

Escribo los pedidos pendientes a una hora determinada

{

Definir la hora de apertura

}

if ((condition)==true)//
{
OrderSend ( OP_BUYSTOPP, parameters);// abrir una orden BuyStop pendiente
OrderSend ( OP_SELLSTOP, parameters);// abrir una orden SellStop pendiente
}

Creo que escribí la hora correctamente; la detecta pero por alguna razón, abre o bien Sell Stop o Buy Stop y no abre dos órdenes a la vez. Intento abrir dos órdenes pendientes de diferentes tipos (Bistop y Sellstop) al mismo tiempo y una por una. La pregunta parece ser primitiva, por favor ayude a los tontos) ¡Gracias!)