FORTS. Fragen der Durchsetzung - Seite 124

 

Tritt auf die Bremse, sagten sie

 

Der Server ist wieder kaputt (((.

3 Minuten lang hängt er und dann[Zeitüberschreitung anfordern].

2019.01.04 14:18:20.427 Trades  'xxxxx': modify #97538997 buy limit 1.00 BR-3.19 -> price: 57.39, sl: 0.00, tp: 0.00) done in 47.866 ms
2019.01.04 14:18:28.399 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': accepted modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 placed for execution
2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)
2019.01.04 14:21:28.407 Trades  'xxxxx': failed modify order #97538868 buy 0.00 BR-3.19 at market sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 [Request timeout]

Discovery Server, Terminal Baujahr 1947.
Was ist zu tun?



 
Sergey Chalyshev:

Der Server ist wieder kaputt (((.

Er bleibt 3 Minuten lang hängen und dann[Zeitüberschreitung anfordern].

Discovery Server, Terminal Baujahr 1947.
Was sollte ich tun?



Serge!

Dies ist eine Art von Fehlschlag (ich habe ihn vorher nicht gesehen).

Dieser Auftrag wurde zum Preis von 57,51 vor der Änderung ausgeführt.

Vielleicht handelt es sich um eine Störung der Börse selbst, denn der MT5-Server hat um14:18:28.445 einen Auftrag zur Änderung an die Börse geschickt,

und die Transaktion wurde durchgeführt14:18:28.461

2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)

Etwas muss "eingefroren" in den Server (Austausch), und wenn "eingefroren", um nicht gefunden wurde, so[Request timeout].

Zu Ihrer Frage Was ist zu tun?

Die Antwort lautet OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD).

Hinzugefügt von

Ich verwende asynchrones Senden von Aufträgen und das folgende Modell der Auftragsverfolgung

//+------------------------------------------------------------------+
// Expert Trade Transaction function                                 |
//+------------------------------------------------------------------+
void OnTradeTransaction( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result )
{
  switch(trans.type)
  {
    case TRADE_TRANSACTION_REQUEST:
      //Получение тикета ордера
    break;
    case TRADE_TRANSACTION_DEAL_ADD:
      //Произошла сделка (отложенный ордер)
    break;
    case TRADE_TRANSACTION_HISTORY_ADD:
     //Ордера нет (исполнился, отменен и т.д)
    break;
    case TRADE_TRANSACTION_ORDER_UPDATE:
      switch(trans.order_state)
      {
        case ORDER_STATE_PLACED:
          //Ордер размешен (модификация)  
        break;
        case ORDER_STATE_PARTIAL:
          //Ордер исполнился частично 
        break;
        case ORDER_STATE_REJECTED:
        case ORDER_STATE_EXPIRED:
          //    
        break;                       
      }
    break;
  }
}
 
prostotrader:

Die Antwort ist, OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD) zu verwenden, dann verpassen Sie kein Geschäft und wissen, was mit dem Auftrag passiert ist.

Hinzugefügt von

Ich verwende asynchrones Senden von Aufträgen und das folgende Modell der Auftragsverfolgung

Hier ist die Frage:

Wenn wir das erforderliche OnTradeTransaction-Ereignis aus irgendeinem Grund verpasst haben (z. B. Internetausfall, verlorenes Paket, Neustart des Computers oder einfach nur ein Überlauf der Ereigniswarteschlange) - was ist unser nächster Schritt?

 
JRandomTrader:

Ich habe eine Frage:

Wenn wir aus irgendeinem Grund das richtige OnTradeTransaction-Ereignis verpasst haben (z. B. weil das Internet abgestürzt ist, ein Paket verloren gegangen ist, der Computer neu gestartet wurde oder einfach die Ereigniswarteschlange übergelaufen ist) - was ist dann unsere nächste Aktion?

Für jeden der von Ihnen genannten Fälle gibt es Maßnahmen.

Wenn Ihr Computer zum Beispiel neu gestartet wurde und wir ausstehende Aufträge hatten, prüfen wir nach dem Laden des Expert Advisors

die auf dieses Symbol gesetzten Aufträge überprüfen. (es gibt eine Menge Dinge zu berücksichtigen, aber alles kann gelöst werden)

 
Aleksey Vyazmikin:

Aus praktischer Sicht ist das zwar nützlich, aber es ist schwer vorstellbar, wie das Terminal dann bei der Synchronisierung von allem langsamer werden würde... und ob eine asynchrone Ankunft dieser Daten sinnvoll ist - ich bin mir nicht sicher.

Entschuldigen Sie die Einmischung, es ist wahrscheinlich nicht der richtige Zeitpunkt. Ich sitze gerade hier und lese das Thema erneut. Asynchron, wie man sagt). Das asynchrone Eintreffen von Daten über die Ereignisse in der Tasse kann nützlich sein, wenn Sie nur die Daten der Tasse analysieren. Das heißt, die Bewegung der Gebote auf den Ebenen. Wenn uns dann plötzlich jede Änderung des Zustands der Tasse zur Verfügung steht, können wir diese unabhängig davon nutzen, was als nächstes passiert. Es geht ungefähr so.

 
Andrey Gladyshev:

Ich entschuldige mich für die Einmischung, vielleicht ist es nicht der richtige Zeitpunkt. Ich sitze gerade hier und lese das Thema erneut. Asynchron, wie man sagt). Asynchrones Eintreffen von Daten über die Ereignisse in der Tasse kann nützlich sein, wenn Sie nur die Daten der Tasse analysieren. Das heißt, die Bewegung der Gebote auf den Ebenen. Wenn uns dann plötzlich jede Änderung des Zustands der Tasse zur Verfügung steht, können wir sie nutzen, unabhängig davon, was als Nächstes passiert. Es geht ungefähr so.

Soweit ich das verstanden habe, wird der Blindwert des Bechers von der Börse mit einer bestimmten Frequenz gesendet, d.h. jede Änderung ist nicht einfach zu erhalten.

Und ich verstehe immer noch nicht, was es damit zu tun haben soll. Vor allem, wenn die Daten mit einer Verzögerung kommen, wenn es starke Bewegungen gibt...
 
Aleksey Vyazmikin:

Soweit ich weiß, werden die Aktienkurse von der Börse mit einer bestimmten Häufigkeit übertragen, d. h. es gibt keine Möglichkeit, jede Änderung einfach abzurufen.

Und ich verstehe immer noch nicht, was es damit zu tun haben soll. Vor allem, wenn die Daten mit einer Verzögerung eintreffen, wenn es starke Bewegungen gibt...

Ich werde eine Gegenfrage stellen und sie dann beantworten. Wäre es möglich, aussagekräftigere Informationen über den Stand der Aktie zu erhalten, wenn ich buchstäblich an der Börse säße (oder besser gesagt, rechtzeitig)? Ich spreche zum Beispiel von Colocation.

 
Andrey Gladyshev:

Ich werde eine Gegenfrage stellen und sie dann beantworten. Wäre es möglich, aussagekräftigere (oder sollte ich sagen: zeitnahe) Informationen über den Stand der Aktie zu erhalten, wenn ich buchstäblich an der Börse sitzen würde? Ich spreche zum Beispiel von Colocation.

Der Austausch wird ebenfalls übertragen. Oder gehen Sie davon aus, dass es zu einem Verlust von Rateframes kommt?

 
Und es kommt darauf an, welche Börse. Ich ziehe unsere nicht in Betracht.