FORTS: OnTradeTransaction() Rückgabecodes - Seite 2

 
Михаил:

Sie und ich sprechen "verschiedene Sprachen".

Der Auftrag kann als Ergebnis einer Kreuztransaktion gelöscht werden,

und ein ORDER_STATE_CANCELED mit dem Rückgabecode "0".

Das hat nichts mit dem Makler zu tun.

Sie verstehen, dass MT5 eine universelle Plattform ist und dass der Broker (jeder Broker) bei der Anpassung an die Bedingungen eines bestimmten Gateways den Serverteil auf seine eigene Weise konfiguriert.

Was der Programmierer des Brokers auf den Server schreibt, wird zurückgegeben.

Daher sollte die Frage direkt mit der technischen Support-Abteilung des Brokers geklärt werden. Nur sie haben die Logs des Servers, nur sie können die Situation klären.

In diesem Fall kann ein außenstehender Beobachter nicht einmal sicher sein, dass es sich um echte Rückgabecodes handelt, da sie von Ihrem Code geschrieben werden und der Code nicht beigefügt ist.

Und die Protokollierung solcher schnellen Funktionen durch Drucker führt oft zu einem Durcheinander. Es wäre gut, die Situation zu reproduzieren (ich verstehe schwierig), und vorzugsweise mit String-Protokollierung gefolgt von Dumping in eine Datei.

Auf jeden Fall ist es unmöglich, das ohne einen CD-Broker herauszufinden.

 
Nikolay Demko:

Sie verstehen, dass MT5 eine universelle Plattform ist, und bei der Anpassung an die Bedingungen eines bestimmten Gateways konfiguriert der Broker (jeder Broker) den Serverteil auf seine eigene Weise.

Was der Programmierer des Brokers schreibt, wird der Server zurückgeben.

Daher sollte die Frage direkt mit der technischen Support-Abteilung des Brokers geklärt werden. Nur sie haben die Logs des Servers, nur sie können die Situation klären.

In diesem Fall kann ein außenstehender Beobachter nicht einmal sicher sein, dass es sich um echte Rückgabecodes handelt, da sie von Ihrem Code geschrieben werden und der Code nicht beigefügt ist.

Und die Protokollierung solcher schnellen Funktionen durch Drucker führt oft zu einem Durcheinander. Es wäre gut, die Situation zu reproduzieren (ich verstehe schwierig), und vorzugsweise mit String-Protokollierung gefolgt von Dumping in eine Datei.

Auf jeden Fall, ich wiederhole, ohne einen CD-Makler ist es unmöglich zu verstehen.

Lieber Nikolai!

Wenn JEDER Maklerprogrammierer "seine" Rückgabecodes schreibt....

Stell dir vor, was passieren würde :)

 
Михаил:

Lieber Nikolai!

Wenn JEDER Maklerprogrammierer "seine" Rückgabecodes schreibt....

Überlegen Sie, was passieren würde :)

Übertreiben Sie nicht, der Programmierer des Brokers konfiguriert den Server einmal vor dem Start, und zwar nicht irgendetwas, sondern nur aus dem verfügbaren Angebot.

Aber die Einrichtung des Servers ist eine intellektuelle Sache, hat der Hersteller Bestimmungen für Optionen gemacht, aber im Voraus einige Schemata der Einrichtung schwierig zu entwickeln, hängt es von welcher Art von Bedingungen, die Broker.

Daher wird die Konfiguration des Serverteils zum einen beim Broker vorgenommen. Der zweite Grund, warum Sie sich an den Broker wenden müssen, ist, dass er ein Protokoll des Serverteils hat, und nur wenn der Broker sagt, so-und-so, dieser Serverfehler ist bereits möglich, MQ, obwohl in diesem Fall, müssen Sie sich keine Sorgen machen, sie werden selbst den Entwickler kontaktieren.

 
Nikolay Demko:

Übertreiben Sie es nicht, der Programmierer des Brokers konfiguriert den Server einmal während der Vorbereitungen vor dem Start, und zwar nicht irgendetwas, sondern aus dem verfügbaren Set.

Aber die Einrichtung des Servers ist eine intelligente Sache, der Hersteller hat für die möglichen Optionen vorgesehen, aber es ist schwierig, im Voraus einige Konfigurationsschemata zu erarbeiten, es hängt davon ab, welche Art von Bedingungen ein Makler hat.

Daher wird die Konfiguration des Serverteils zum einen beim Broker vorgenommen. Der zweite Grund, warum Kontakt mit dem Makler, ist es, weil er eine Server-Seite protokolliert und nur, wenn der Makler sagt, so-und-so, dieser Server-Bug ist bereits möglich, MQ, obwohl in diesem Fall, müssen Sie sich keine Sorgen machen, sie selbst wird den Entwickler zu kontaktieren.

Antwort des Maklers:

Guten Tag.

Nein, diese Einstellung ist auf der Seite der Entwickler.

Ende letzten Jahres wurde die folgende Frage aufgeworfen:

Moskauer Börse verhängt Geldstrafen für fehlerhafte Transaktionen. Die vollständige Verordnung kann unterhttp://fs.moex.com/files/4266 eingesehen werden.

So werden zum Beispiel an der Börse Sanktionen verhängt:

Transaktionsart*.

Ergebnis der Ausführung (Fehlercode)*

Punktzahl Q

AddOrder

Cross-Trade aufgetreten (31)

Q1

Unzureichende Kundengelder (332)

Q2

Unzureichende Mittel der Maklerfirma (333)

Q3

FOK-Angebot nicht konsolidiert (4103)

Q4

DelOrder

Auftrag nicht gefunden (14)

Q5

MoveOrder

Cross-Dealing fand statt (31)

Q6

Es wurde kein Auftrag gefunden (50)

Q7

Unzureichende Kundengelder (332)

Q8

Unzureichende Mittel des Maklerunternehmens (333)

Q9

DelUserOrders

Die Transaktion wurde erfolgreich abgeschlossen,

und kein Auftrag wird gelöscht

Q10

Im MT5 gibt es keine anderen Rückgabecodes in den "Trade Server Return Codes" außer dem Rückgabecode "not enough client funds".

VonMetaQuotes ging die folgende Antwort ein

Hallo,

1. Leider ist das Problem der Übersetzung von Umtauschcodes in der einen oder anderen Form nicht einfach und erfordert eine Reihe von Änderungen. Wir suchen derzeit nach der geeignetsten Lösung. Höchstwahrscheinlich wird die erforderliche Funktionalität im Laufe des nächsten Jahres hinzugefügt werden.

2. In Bezug auf die Tabelle der fehlerhaften Transaktionen - unter Berücksichtigung der Tatsache, dass der MT5-Handelsserver eine Vorabprüfung der Handelsanfragen der Kunden durchführt (einschließlich der Kontrolle der Margin-Anforderungen), kann der Umtausch in 2 Fällen tatsächlich abgelehnt werden:

Vorgangsart*

Ausführungsergebnis (Fehlercode)*

Q-Punktzahl

AddOrder

Cross-Trade aufgetreten (31)

Q1

Unzureichende Kundengelder (332)

Q2

Unzureichende Mittel der Maklerfirma (333)

Q3

FOK-Angebot nicht konsolidiert (4103)

Q4

DelOrder

Auftrag nicht gefunden (14)

Q5

MoveOrder

Cross-Dealing fand statt (31)

Q6

Es wurde kein Auftrag gefunden (50)

Q7

Unzureichende Kundengelder (332)

Q8

Unzureichende Mittel des Maklerunternehmens (333)

Q9

DelUserOrders

Die Transaktion wurde erfolgreich abgeschlossen,

und kein Auftrag wird gelöscht

Q10


Beides ist praktisch unwahrscheinlich.

Herzliche Grüße,

Mikhail Baturov

Leiter der Benutzerunterstützung für Handelssysteme

Verwaltung von Handelssystemen Unterstützung

Otkritie Brokerage House

 

Manchmal sind die MQs bei einigen Antworten ratlos.

Beispiel:

MQ:"Beides ist praktisch unwahrscheinlich."

Es ist nicht verwunderlich, was der Grund für das Scheitern war!

Am 12.05.2015 gab es eine Änderung des MGNT-Symbols (die Kursstufe wurde 1,

Preise sollten ganze Zahlen sein)

Der Broker verfolgt wahrscheinlich nicht die Veränderungen an der Börse:

Wenn ich keinen Rückgabeschutz in meinem EA hätte,

dann würde ich in wenigen Sekunden Tausende von Transaktionen erhalten:

2015.05.15 10:00:10.051 Forts_trader (MGNT-6.15,H1)     StopTrading: Неправильная цена в запросе

Und eine solche Situation sollte auch "unwahrscheinlich" sein!


 

Liebe Entwickler!

Bitte antworten Sie, wann Sie endlich zahlen werden

Aufmerksamkeit auf die RETURN CODES des Handelsservers?

Wenn ein MT5-Server "streikt" oder eine Börse abstürzt, geschieht Folgendes:

Der Expert Advisor sendet Aufträge zum Löschen eines EXISTIERENDEN Auftrags, aber die Antwort kommt zurück

"Ungültige Anfrage" !!!! Und der Expert Advisor "bombardiert" den Server mit Aufträgen zum Löschen

bestellen.

//+------------------------------------------------------------------+
// Remove order                                                      |
//+------------------------------------------------------------------+
void COrder::Remove()
{
  if ( ticket > 0 )
  {
    if ( OrderSelect( ticket ) )
    {
      mem_magic = ulong( OrderGetInteger( ORDER_MAGIC ) );
      mem_tick = GetTickCount();
      req_id = 0;
      MqlTradeRequest request = {0};
      MqlTradeResult  result  = {0};
            
      request.action = TRADE_ACTION_REMOVE;
      request.order = ticket;
          
      if ( OrderSendAsync( request, result ) )
      {
        if ( result.retcode == TRADE_RETCODE_PLACED )
        { 
          req_id = result.request_id;
//---          
          switch( order_status )
          {
            case BUY_ORDER:  state = ORD_BUY_DO_CANCEL;
                             break;
                
            case SELL_ORDER: state = ORD_SELL_DO_CANCEL;
                             break;           
          } 
          SetTransCount( true );
        }
        else
        {
          mem_magic = 0;
          mem_tick = 0;
          CheckError( result.retcode, "Remove: Результат удаления ордера не верен! Причина: ", order_status, ticket );
        }  
      }
      else
      {
        mem_magic = 0;
        mem_tick = 0;
        CheckError( result.retcode, "Remove: Ордер не отослан! Причина: ", order_status, ticket );
      }
    }
    else
    {
      ticket = 0;
      modify_count = 0;
    }
  }
  else
  {
    modify_count = 0;
  }
}

Wie kann es eine falsche Anfrage geben, wenn der Auftrag AKTIV ist?

2015.09.15 15:27:31.402 Trades  'xxxxx': failed modify order #20619541 sell limit 35.00 BR-11.15 at 50.33000 sl: 0.00000 tp: 0.00000 -> 49.19000, sl: 0.00000 tp: 0.00000 [Invalid request]
2015.09.15 15:27:32.611 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
2015.09.15 15:27:34.163 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:42.815 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.006 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.358 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.562 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.572 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.593 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.892 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.007 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.769 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.789 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.819 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.879 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.900 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
 

Die ständige Bearbeitung des Beitrags hat wieder begonnen. Als ob dies das Thema für die Entwickler sichtbarer machen würde.

Sie wären besser dran, wenn Sie sie jeden Tag im Service Desk reiben würden, anstatt das Forum mit unsichtbaren Updates zu versorgen...

 
Andrey Khatimlianskii:

Die ständige Bearbeitung des Beitrags hat wieder begonnen. Als ob dies das Thema für die Entwickler sichtbarer machen würde.

Reiben Sie sie lieber jeden Tag im Service-Desk ein, anstatt das Forum mit unsichtbaren Updates zu versorgen...

Guten Morgen, Andrew!

Und auch dort antwortet niemand (alle haben "die Nase voll").

 
Und hier wird sich die Gemeinschaft der aktuellen Probleme bewusst sein.
 

Sind Sie, Andrei, gegen die Behebung von Fehlern in MT5 und

Sind Sie gegen die Behebung von Fehlern in MT5 und die Verbesserung der Handelsfunktionen der Plattform?