FORTS: OnTradeTransaction() Rückgabecodes - Seite 11

 
Dmitry Fedoseev:
Es ist nicht klar, in welchem Zustand sich der Auftrag befand.

Um einen Auftrag zu ENTFERNEN, ist es wichtig, dass er tatsächlich existiert und sich nicht in einem "Zwischenzustand" befindet.

Schauen Sie genau hin (mit allen Erklärungen):

https://www.mql5.com/ru/forum/58012/page9#comment_2074928

ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 9 - Категория: биржевой трейдинг
 
Михаил:

Um einen Auftrag zu ENTFERNEN, ist es wichtig, dass er tatsächlich existiert und sich nicht in einem "Zwischenzustand" befindet.

Schauen Sie genau hin (mit allen Erklärungen):

https://www.mql5.com/ru/forum/58012/page9#comment_2074928

Dennoch ist es interessant und könnte als klares Argument für den Dienst vonesk nützlich sein.
 
Dmitry Fedoseev:
Dennoch ist es interessant und könnte als klares Argument für die Servicedesk nützlich sein.

Sie glauben also, dass die Funktion CheckOrderState() nicht korrekt geschrieben ist?

P/S SD, leise wie immer....

 
Михаил:

Sie glauben also, dass die Funktion CheckOrderState() nicht korrekt geschrieben ist?

P/S SD, leise wie immer....

Ich weiß es nicht. Wenn es ORDER_STATE_PLACED war, handelt es sich wahrscheinlich um denselben Fehler.

Und wenn es ORDER_STATE_PARTIAL war, weiß ich es nicht. Alexander hat uns nichts über diesen Fall erzählt und vielleicht gibt es einige Feinheiten.

In jedem Fall kann die Funktion verbessert werden, um genau zu wissen, welchen Zustand die Bestellung hatte.

 
Dmitry Fedoseev:

Ich weiß es nicht. Wenn es ORDER_STATE_PLACED war, handelt es sich wahrscheinlich um denselben Fehler.

Und wenn es ORDER_STATE_PARTIAL war, weiß ich es nicht. Alexander hat uns nichts über diesen Fall erzählt, vielleicht gibt es einige Feinheiten.

In jedem Fall kann die Funktion verbessert werden, um zu erfahren, wie genau der Stand der Bestellung war.

Vielleicht kann es verbessert werden, aber (meiner Meinung nach) ist folgendes wichtig:

1. Wenn sich der Auftrag in einem Zwischenstadium befindet, d.h:

AUFTRAG_ZUSTAND_GESTARTET

AUFTRAGSZUSTAND_ANFORDERUNG_HINZUFUEGEN

AUFTRAG_ZUSTAND_ANFORDERUNG_ÄNDERN

AUFTRAG_ZUSTAND_ANFORDERUNG_STORNIEREN

dann kann nichts damit gemacht werden, also ORD_BUSY

(Ich sehe den Sinn dieser Staaten überhaupt nicht)

2. Wenn der Auftrag nicht in der Historie steht, existiert er dennoch und kann NUR

zwei Staaten:

AUFTRAG_ZUSTAND_TEILWEISE = ORD_EXIST_TEILWEISE

AUFTRAGSZUSTAND_PLATZIERT = ORD_EXIST

3. Alle diese Schlussfolgerungen stammen nicht "von der Decke", sondern aus der MQL5-Dokumentation,

und wenn die Entwickler irgendwelche "Eigenheiten" haben, MÜSSEN sie

skizzieren Sie sie im Handbuch!

4. Ich zum Beispiel bin kein Hellseher und kann nicht wissen, was die Entwickler mit

als sie diese oder jene Funktion geschrieben haben.

Was auch immer sie dir erklärt haben, das ist das Ergebnis!

P/S Natürlich können Sie etwas missverstehen, aber nicht in diesem Fall.

 

Warum gibt es keinen Rückgabecode, wenn der Auftrag vom Broker (Börse) "zurückgeschickt" wird?

case ORDER_NONE_REJECTED:
              Print( __FUNCTION__, ": Main ордер отклонён брокером(биржей). Билет = ", trans.order, " Причина: ", result.retcode, " ", result.retcode_external );
            break

2016.09.02 16:11:05.687 trader (GAZR-12.16,H1)    OnTradeTransaction: Main ордер отклонён брокером(биржей). Билет = 43595612 Причина: 0 0
2016.09.02 16:11:05.687 Trades  'xxxxx': exchange buy 9.00 GAZR-12.16 at market
2016.09.02 16:11:05.687 Trades  'xxxxx': accepted exchange buy 9.00 GAZR-12.16 at market
2016.09.02 16:11:05.687 Trades  'xxxxx': exchange buy 9.00 GAZR-12.16 at market placed for execution in 11.344 ms
2016.09.02 16:18:45.902 Trades  'xxxxx': buy limit 9.00 GAZR-3.17 at 14165
2016.09.02 16:18:45.908 Trades  'xxxxx': accepted buy limit 9.00 GAZR-3.17 at 14165
2016.09.02 16:18:45.909 Trades  'xxxxx': buy limit 9.00 GAZR-3.17 at 14165 placed for execution
 
prostotrader:

Warum gibt es keinen Rückgabecode, wenn der Auftrag vom Broker (Börse) "zurückgeschickt" wird?

Es gibt nicht immer einen solchen Code, wenn Sie die Ausführung einer Partei übertragen.

Wir werden die Gateways überprüfen und in Erwägung ziehen, diesen Rückgabecode auszufüllen, wenn wir die genauen Antworten finden.

 
Renat Fatkhullin:

Dieser Code ist nicht immer vorhanden, wenn Sie die Ausführung an eine Partei übergeben.

Wir werden die Gateways überprüfen und überlegen, ob wir diesen Rückgabecode einfügen.

Ich danke Ihnen.
 

Es gab heute eine Art Störung auf dem MT5-Server. Aufträge wurden ohne Grund wieder aufgenommen (0 0).....

Print( __FUNCTION__, ": Buy ордер отклонён брокером(биржей). Билет = ", trans.order,
                                   " Причина: ", result.retcode, " ", result.retcode_external );

2016.10.20 20:31:08.793 trader (PLT-12.16,H1)     OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614026 Причина: 0 0
2016.10.20 20:31:08.797 trader (TATN-12.16,H1)    StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614027  Ордер отклонён.
2016.10.20 20:31:08.797 trader (TATN-12.16,H1)    OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614027 Причина: 0 0
2016.10.20 20:31:08.801 trader (BR-12.16,M1)      StopTrading: Время сервера = 20:31:08; Статус ордера = SELL_ORDER; Билет = 46614028  Ордер отклонён.
2016.10.20 20:31:08.801 trader (BR-12.16,M1)      OnTradeTransaction: Sell ордер отклонён брокером(биржей). Билет = 46614028 Причина: 0 0
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1)    StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614029  Ордер отклонён.
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1)    OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614029 Причина: 0 0
2016.10.20 20:31:08.806 trader (MXI-12.16,M1)     StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614030  Ордер отклонён.
Grund der Beschwerde: