Errores, fallos, preguntas - página 733

 
ahora comprobado - los otros eventos de sonido tampoco funcionan.
 

Veo una situación extraña en el funcionamiento de los métodos para la apertura de posiciones en la clase CTrade (PositionOpen,Buy,Sell) - el Asesor Experto realmente abre una posición (puedo verlo en el terminal), pero estos métodos devuelven falso, _LastError=4756 (falló al enviar una solicitud de comercio). Mientras CTrade.ResultRetcode()=10008 (Orden colocada).

¿Me estoy perdiendo algo en el funcionamiento de los servidores de Alpari estos días o es un error?

 
blef:

ahora comprobado - otros eventos de sonido tampoco están funcionando.

¿Están activados los sonidos en el terminal?

 
Sí - habilitado, lo mismo ocurre en el servidor de ROBOFOREX.
 
ahora todos los eventos de sonido funcionan ==> en ambos terminales MQ y ROBOFOREX.
 

Creo un EA, lo ejecuto en un gráfico y abro una posición manualmente:

void OnTrade()
  {
//---
   if(OrdersTotal()!=0)
     {
      OrderSelect(OrderGetTicket(0));
      Print("Есть ордера OrdersTotal()=",OrdersTotal()," ",
            EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE))
            );
     }
   else
     {
      OrderSelect(OrderGetTicket(0));
      Print("Нет ордеров OrdersTotal()=",OrdersTotal()," ",
            EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE))
            );
     }
  }

Ejecuto el EA en un gráfico, abro manualmente una posición y me meto en las impresiones:

2012.05.02 16:27:10     Template Trades (EURUSD,M15)    Нет ордеров OrdersTotal()=0 ORDER_STATE_STARTED
2012.05.02 16:27:10     Template Trades (EURUSD,M15)    Нет ордеров OrdersTotal()=0 ORDER_STATE_STARTED
2012.05.02 16:27:10     Template Trades (EURUSD,M15)    Нет ордеров OrdersTotal()=0 ORDER_STATE_STARTED

¿Cómo es posible que reciba un evento de "comerciante" pero sin órdenes, pero estos tipos de "sin órdenes" siempre se inician.

Creo que esta mierda no funciona.

 
Y se comprueba el resultado de la ejecución
OrderSelect(OrderGetTicket(0));

¿Qué sentido tiene preguntar por el estado de una orden inexistente? ¿Y qué devolverá el segundo formulario en ese caso?

bool  OrderGetInteger(
   ENUM_ORDER_PROPERTY_INTEGER  property_id, // идентификатор свойства
   long&                long_var          // сюда примем значение свойства
   );
 
Rosh:

Y se comprueba el resultado de la ejecución

¿Qué sentido tiene preguntar por el estado de una orden inexistente? ¿Y qué devolverá el segundo formulario en este caso?

Sabía que ibas a seguir este camino de análisis de código.

¿Y por qué no le importa si hay una orden, ya que el evento del comerciante se ha disparado (al menos uno de ellos debe ser para establecer una orden), y OrdersTotal() dice que no hay ninguna orden?

 
Urain:

Sabía que ibas a ir por este camino de análisis de código.

¿Y por qué no le importa si hay una orden, ya que el evento de operaciones se ha disparado (al menos una de ellas debe ser por ajuste de orden), pero OrdersTotal() dice que no hay órdenes?

¿Tal vez se necesite PositionTotal()?
 

Este es el error que aparece cuando se conectan las clases

La plata cerró bien, pero el oro no.

Если проблема в проскальзывании, то не подскажите как его задавать?
if (myposition.Select(_Symbol))
{
 // закрыть открытую позицию по этому символу
 // величина проскальзывания была установлена ранее 
 mytrade.PositionClose(_Symbol);
}