Fehler, Irrtümer, Fragen - Seite 733

 
jetzt überprüft - die anderen Sound-Events funktionieren auch nicht.
 

Ich sehe eine merkwürdige Situation in der Bedienung der Methoden für die Positionseröffnung in der CTrade-Klasse (PositionOpen,Buy,Sell) - der Expert Advisor öffnet tatsächlich eine Position (ich kann es im Terminal sehen), aber diese Methoden geben false zurück, _LastError=4756 (failed to send a trade request). While CTrade.ResultRetcode()=10008 (Auftrag erteilt).

Übersehe ich irgendetwas in der Funktionsweise der Alpari-Server heutzutage oder ist es ein Fehler?

 
blef:

jetzt überprüft - andere Sound-Events funktionieren auch nicht.

Sind die Töne im Terminal aktiviert?

 
Ja - aktiviert, das Gleiche passiert auf dem ROBOFOREX-Server.
 
jetzt funktionieren alle Sound-Events ==> sowohl auf MQ- als auch auf ROBOFOREX-Terminals.
 

Ich erstelle einen EA, lasse ihn auf einem Chart laufen und eröffne manuell eine Position:

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))
            );
     }
  }

Ich lasse den EA auf einem Chart laufen, eröffne manuell eine Position und steige in die Drucke ein:

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

Wie ist es möglich, dass ich ein "Trader"-Ereignis, aber keine Aufträge erhalte, aber ich erhalte immer den Typ "keine Aufträge".

Ich glaube, dieser Scheiß funktioniert einfach nicht.

 
Und Sie überprüfen das Ergebnis der Ausführung
OrderSelect(OrderGetTicket(0));

Welchen Sinn hat es, nach dem Status eines nicht existierenden Auftrags zu fragen? Und was ergibt das zweite Formular in diesem Fall?

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

Und Sie überprüfen das Ergebnis der Ausführung

Welchen Sinn hat es, nach dem Status eines nicht existierenden Auftrags zu fragen? Und was ergibt das zweite Formular in diesem Fall?

Ich wusste, dass Sie diesen Weg des Code-Parsing einschlagen würden.

Und warum interessiert es Sie nicht, ob es eine Bestellung gibt, da das Händlerereignis ausgelöst wurde (mindestens eines davon muss sein, um eine Bestellung zu setzen), und OrdersTotal() sagt, dass es keine Bestellung gibt?

 
Urain:

Ich wusste, dass Sie diesen Weg des Code-Parsing einschlagen würden.

Und warum interessiert es Sie nicht, ob es eine Bestellung gibt, da das Handelsereignis ausgelöst wurde (mindestens eines davon muss durch eine Bestellungseinstellung erfolgen), aber OrdersTotal() sagt, dass es keine Bestellungen gibt?

Vielleicht wird PositionTotal() benötigt?
 

Die folgende Fehlermeldung wurde angezeigt, als die Klassen verbunden wurden

Silber schloss gut ab, Gold jedoch nicht.

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