Errori, bug, domande - pagina 733

 
ora controllato - anche gli altri eventi sonori non funzionano.
 

Vedo una strana situazione nel funzionamento dei metodi per l'apertura delle posizioni nella classe CTrade (PositionOpen,Buy,Sell) - l'Expert Advisor apre effettivamente una posizione (posso vederlo nel terminale), ma questi metodi restituiscono false, _LastError=4756 (failed to send a trade request). Mentre CTrade.ResultRetcode()=10008 (ordine piazzato).

Mi manca qualcosa nel funzionamento dei server Alpari in questi giorni o è un bug?

 
blef:

ora controllato - anche altri eventi sonori non funzionano.

I suoni nel terminale sono abilitati?

 
Sì - abilitato, la stessa cosa accade sul server ROBOFOREX.
 
ora tutti gli eventi sonori funzionano ==> su entrambi i terminali MQ e ROBOFOREX.
 

Creo un EA, lo eseguo su un grafico e apro una posizione 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))
            );
     }
  }

Eseguo l'EA su un grafico, apro manualmente una posizione ed entro nelle stampe:

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

Come è possibile che io ottenga un evento "trader" ma nessun ordine, ma ottengo "nessun ordine" tipo iniziato e sempre.

Penso che questa merda non funzioni.

 
E si controlla il risultato dell'esecuzione
OrderSelect(OrderGetTicket(0));

Che senso ha chiedere lo stato di un ordine inesistente? E cosa restituirà il secondo modulo in questo caso?

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

E si controlla il risultato dell'esecuzione

Che senso ha chiedere lo stato di un ordine inesistente? E cosa restituirà il secondo modulo in questo caso?

Sapevo che saresti andato su questa strada dell'analisi del codice.

E perché non vi interessa se c'è un ordine, dato che l'evento trader si è attivato (almeno uno di essi deve essere per impostare un ordine), e OrdersTotal() dice che non c'è nessun ordine?

 
Urain:

Sapevo che saresti andato su questa strada dell'analisi del codice.

E perché non vi interessa se c'è un ordine, dato che l'evento trades è scattato (almeno uno di essi deve essere per impostazione dell'ordine), ma OrdersTotal() dice che non ci sono ordini?

Forse è necessario PositionTotal()?
 

Questo è l'errore che è stato visualizzato quando le classi sono state collegate

L'argento ha chiuso bene, ma l'oro no.

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