Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Und ausstehende Aufträge:((
Protokoll 1:
Versuch zu kaufen, Versuch 0 fehlgeschlagen, Fehler 6
Versuch zu kaufen, Versuch 1 fehlgeschlagen, Fehler 129
Versuch zu kaufen, Versuch 2 fehlgeschlagen, Fehler 129
Versuch zu kaufen, Versuch 3 fehlgeschlagen, Fehler 129
Versuch zu kaufen, Versuch 4 fehlgeschlagen, Fehler 129
Zickzack-Kauffehler: 4050
2.28000000, 0.02700000, 0.00000000
Versuch zu kaufen, Versuch 0 fehlgeschlagen, Fehler 6
Versuch zu kaufen, Versuch 1 erfolgreich
Die Bestellung wurde beim 7. Versuch geöffnet. Auf dem Weg dorthin wurden mehrere Fehlermeldungen angezeigt, die nichts mit der Realität zu tun hatten.
Protokoll 2.
7.9.2005 11:0:15, Signal: verkaufen7.9.2005 11:0:15 Versuch zu verkaufen, Versuch 0.
Ask: 1,24820000, StopLoss: 0,00600000, TakeProfit: 0,00000000
fehlgeschlagen, Fehler 6
7.9.2005 11:0:15 Versucht zu verkaufen, Versuch 1.
Ask: 1,24820000, StopLoss: 0,00600000, TakeProfit: 0,00000000
erfolgreich
Beim zweiten Versuch. Fehler Nummer sechs war das Thema eines ganzen Zweigs mit mehr als hundert Beiträgen. Auf Anraten der Entwickler, Rosh und Composter, wurde die Fehlerhäufigkeit von "ab und zu" auf "etwa einmal in fünf" reduziert. Aber er ist immer noch da.
Protokoll 3.
Ich versuche, eine Long-Position zu schließen, Ticket: 1784257
6.9.2005 12:0:13 Auftrag mit diesem Ticket noch vorhanden, erneuter Versuch
6.9.2005 12:0:13 Auftrag mit diesem Ticket noch vorhanden, erneuter Versuch
6.9.2005 12:0:13 Auftrag mit diesem Ticket noch vorhanden, erneuter Versuch
6.9.2005 12:0:13 Auftrag mit diesem Ticket noch vorhanden, erneuter Versuch
6.9.2005 12:0:13 Auftrag mit diesem Ticket noch vorhanden, erneuter Versuch
Bei fünf Fehlversuchen gab es KEINEN Fehlercode. Das Programm dachte, diese Stelle sei geschlossen. Ich habe das Ticket in der Schleife aufgefangen, sonst wäre das Problem nicht entdeckt worden.
Und so weiter.
{
int nTicket = OrderTicket();
SaveComment("\r\n\tVersuch, eine Long-Position zu schließen, Ticket: " + nTicket);
int nResult = OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
Sleep(10000);
if(nResult == -1)
{
int nError = GetLastError();
Alert(strExpertName + ", Fehler: " + nError);
}
}
Ich musste ein Zitat verwenden, um den Text fett zu machen.
Der Sinn von Sleep ist es, einfach zu warten, bis der Zustand, der den Fehler verursacht hat, verschwunden ist (Sie wissen schon, die Pings gehen durch). Denn wenn man bedenkt, dass der Handel die Kontrolle "übernimmt" und sie nicht mehr loslässt, bis er zurückkommt, dann sollte ein Fehler sofort angezeigt werden. Wenn nicht, ist es ein Fehler.
Die einzige mögliche Ausnahme ist meine Schleife, die nach einem Ticket für eine gerade geschlossene Position sucht. Aber auch hier können wir darüber streiten, wie sich das System idealerweise verhalten sollte.
Auch hier besteht das Problem nicht nur darin, dass die Fehler RÜCKGELEITET werden, sondern auch darin, dass die Fehlercodes von der Obergrenze genommen werden, und manchmal gibt es überhaupt keine Codes - der Erfolgscode der Operation wird zurückgegeben.
Wenn ich etwas nicht verstehe, erklären Sie es bitte.
1. Es wird eine SMS verschickt, die über die Absicht informiert, einen solchen Auftrag zu löschen.
2. Es wird versucht, die Bestellung zu stornieren
3. Das Ergebnis der Funktion OrderDelete() wird analysiert, und wenn es negativ ist (der Auftrag wurde nicht entfernt), dann
4. Es sendet eine SMS zur Bestätigung des Fehlers.
Gestern haben wir 2 SMS bekommen, alles nach den Regeln, aber die Bestellung wurde in der gleichen Sekunde storniert, laut den Protokollen.
Der EA hat also versucht, das Ergebnis der Auftragsstornierung einige Sekundenbruchteile früher zu erhalten, als er das Ergebnis bekommen hat. Es ist wie in dem Witz über die Chinesen, die Kartoffeln pflanzten und sie am nächsten Tag wieder ausgruben. Auf die Frage: "Reift er so schnell?", antworteten sie: "Nein, aber er beißt" :)
1. Ich habe diese ganze Aufregung um die tatsächlichen Bestellungen gemacht. Und wenn sie sich so verhalten, muss das behoben werden.
2) Die Idee ist, dass MT EAs in der Lage sein sollten, OHNE einen verzögerten Zyklus zu handeln. So sollte es sein.
Ich werde eine Verzögerung setzen, aber, wie man sagt, "ohne Vergnügen" :)
Ich glaube es selbst nicht, können die Entwickler erklären, wie falsch ich liege?
Etwas peinlich ist die Tatsache, dass es von 37 Beiträgen in diesem Thread nur einen einzigen von den Entwicklern gibt...
warum sich in eine bereits produktive Diskussion einmischen
und hier sind die Produkte =)
Ich habe einige Tests durchgeführt. Ein Expert Advisor eröffnet und schließt eine Position (abwechselnd kaufen und verkaufen). Mindestpause zwischen allen Geschäften - 10 Sek.
OrderSend Versuche: 996
Erfolgreich*: 888
Fehler**: 108
* - Mit "erfolgreichem" Versuch meine ich folgendes: orderSend lieferte Ticket-Nr., GetLastError lieferte 0, offene Position erfolgreich ausgewählt orderselect.
** - Alle Fehler #148 "trade context is busy" - das ist, was Slava im nächsten Thread gefragt hat - "was, wenn wir die isTradeAllowed-Prüfung deaktivieren?". Die Fehler begannen um 07:16:46 und häufen sich immer noch)
-----------------------------------------------------------------------------------------------------------------------
OrderClose attempts: 890
Successful*: 736
Fehler**: 154
* - mit "erfolgreichem" Schließversuch meine ich folgendes: orderclose gab true zurück, GetLastError gab 0 zurück, geschlossene Position erfolgreich ausgewählt orderselect in mod_history.
** - 152 Fehler #1 "kein Fehler", einer #6 und einer #138(requotes)
Die Situation, die gefilmt wurde, ist nicht eingetreten. D.h. alle geschlossenen Positionen wurden tatsächlich geschlossen.