Fehler, Irrtümer, Fragen - Seite 2068

 

Ein recht interessanter Überblick über die neue WebAssembly-Technologieunter https://habrahabr.ru/post/342180/

WebAssembly (WASM) — новый бинарный формат, позволяющий запускать код в браузере...

Anwendungen von WebAssembly:

-Geringere Ladezeit
-Höhere Berechnungsgeschwindigkeit
C/C++-fertigen Code verwenden


In Anbetracht der Mediengerüchte über einen möglichen Webdienst für die MQL-Code-Kompilierung,
Es stellt sich die berechtigte Frage nach der Durchführbarkeit des Projekts, benutzerdefinierte Expert Advisors direkt über einen auf WebAssembly basierenden Browser auszuführen.
Знакомство с WebAssembly
Знакомство с WebAssembly
  • 2012.11.17
  • habrahabr.ru
Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна. Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других...
 
Andrey Khatimlianskii:

Löschen Sie die Protokolle, dann macht es mehr Sinn. Sowohl der Expert Advisor als auch das Terminal.

Registerkarte Terminal

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

Registerkarte Experte

        Line 8103: 2    16:29:01.266    Forex V2 EURNZD,M1: open #4448742  sell 0.02 EURNZD at 1.68131 ok
        Line 8104: 0    16:29:01.266    Forex V2 EURNZD,M1: Order #4448742  open

        Line 10145: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 1 закрытия/удаления ордера #4448742  Ошибка: 3
        Line 10146: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10147: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 2 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10148: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10149: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 3 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10150: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10151: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 4 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10152: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10153: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 5 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10154: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10155: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 6 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10156: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10157: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 7 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10158: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10159: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 8 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10160: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10161: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 9 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10162: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10163: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 10 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10164: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10165: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 11 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10166: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10167: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 12 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10168: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10169: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 13 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10170: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10171: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 14 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10172: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10173: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 15 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10174: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10175: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 16 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10176: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10177: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 17 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10178: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10179: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 18 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10180: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10181: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 19 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10182: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10183: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 20 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10184: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10185: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 21 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10186: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10187: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 22 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10188: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10189: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 23 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10190: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10191: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 24 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10192: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10193: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 25 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10194: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10195: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 26 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10196: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10197: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 27 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10198: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10199: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 28 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10200: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10201: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 29 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10202: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        Line 10203: 0   20:37:39.760    ExpertName EURNZD,H1: Неудачная попытка 30 закрытия/удаления ордера #4448742  Ошибка: 4108
        Line 10204: 3   20:37:39.760    ExpertName EURNZD,H1: unknown ticket 4448742 for OrderClose function
        
        Line 10243: 2   20:37:39.760    ExpertName EURNZD,H1: close #4448742  sell 0.02 EURNZD at 1.68131 at price 1.68356

Nach Fehler 3 findet kein wirklicher Abschluss mehr statt. Ich habe es verstanden.

Expert Advisor 1 schließt und der zweite versucht, dieselbe Position zur gleichen Zeit zu schließen.

Ich habe die Arbeitslogik korrigiert, und es treten jetzt keine Fehler mehr auf.


ABER: Die Fehlernummer ändert sich von #3 zu #4108, wenn die an OrderClose() übergebenen Parameter innerhalb der Schleife unverändert bleiben.

Warum wird zuerst Fehler Nr. 3 und dann Fehler Nr. 4108 ausgelöst? - Das ist die Frage, die bleibt.

{Wenn wir uns die Zeitabläufe ansehen, dann haben wir einen Versuch, einen gesperrten Auftrag zu schließen (in diesem Fall wird der Fehler 139 selbst nicht angezeigt), aber nachdem er geschlossen wurde (und der Auftrag somit entsperrt ist), erhalten wir Fehler 3 }.


Warum gibt das Terminal keine spezifische Fehlermeldung aus, dass der Auftrag blockiert ist, sondern nur die allgemeine Fehlermeldung 3?

 
Kirill Belousov:

ABER: Ändern Sie die Fehlernummer von #3 in #4108, wenn die an OrderClose() übergebenen Parameter innerhalb der Schleife unverändert bleiben.

Warum erscheint zuerst Fehler Nr. 3 und dann Fehler Nr. 4108? - Das ist die Frage, die bleibt.

Dies ist die Version des Codes, in der es 1 OrderSelect gab, nicht wahr? Dann ist 4108 gerechtfertigt.

3 ist, wenn ein anderer EA eine Position schließt und 4108 ist, wenn wir versuchen, eine bereits geschlossene Position zu schließen.

 
Andrey Khatimlianskii:

Dies ist die Version des Codes, in der es 1 OrderSelect gab, nicht wahr? Dann ist 4108 gerechtfertigt.

3 ist, wenn ein anderer EA eine Position schließt, 4108 ist, wenn wir versuchen, eine bereits geschlossene Position zu schließen.

Richtig.

Aber warum wird der Fehler 139 nicht erzeugt, wenn man versucht, einen bereits abgeschlossenen Auftrag zu schließen?

Schließlich haben wir eher die Situation des Fehlers 139. Ist es nicht so?

 

Falscher Fehlertext

void f( int &[] ) {}

class A
{
public:
  int Array[];
  
  void f2() const
  {
    f(this.Array); // 'Array' - constant variable cannot be passed as reference
  }
};
 
Es soll nicht fluchen
Print(NULL); // 'NULL' - expression of 'void' type is illegal
 
Kirill Belousov:

Richtig.

Aber warum erscheint die Fehlermeldung 139 nicht, wenn man versucht, einen Auftrag abzuschließen, der bereits zum Abschluss gesendet wurde?

Schließlich haben wir eher die Situation des Fehlers 139. Ist es nicht so?

Ich weiß es nicht. Aber man kann es auch nicht als Fehler bezeichnen.

 
Andrey Khatimlianskii:

Ich weiß es nicht. Aber es ist auch schwer, es als Fehler zu bezeichnen.

2017.11.10 16:29:01.266 '8615385': order was opened : #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000
2017.11.10 20:37:38.949 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.277 '8615385': close order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 at price 0.00000
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD at 1.68131 sl: 0.00000 tp: 0.00000 closed at price 1.68356
2017.11.10 20:37:39.745 '8615385': order #4448742 sell 0.02 EURNZD closing at 0.00000 failed [Invalid parameters]

Wenn Sie sich das Terminalprotokoll ansehen, wird die Fehlermeldung 3 erzeugt , nachdem die Position geschlossen wurde und nicht, wenn die Sperre auf dem Server hätte erkannt werden müssen.

Die Fehlermeldung 139 hätte fast 0,5 Sekunden früher angezeigt werden können. Die ganze Zeit, die Expert Advisor "hängt", um Fehler 3, nachdem der Auftrag geschlossen wird.

Und übrigens, Fehler 3 Ungültige Parameter ist im Terminalprotokoll und 4108 nur aufgrund seiner Ausgabe und nur in der Registerkarte EA. Es sieht so aus, als ob 4108 eine clientseitige Verarbeitung ist.

Ich möchte nur die Logik kennen/verstehen, um sie in den Code einzubauen, anstatt mit der wissenschaftlichen Messmethode herumzufummeln... )

In welcher anderen Situation würde man eine Fehlermeldung 139 als diese erhalten...?

 
Kirill Belousov:

Es gibt keine bessere Situation, um einen Fehler 139 zu erhalten...?

Wenn ein schwebender Auftrag/SL/TP ausgelöst oder eine Position durch einen Stop-Out (auch auf dem Server) geschlossen wird.

Ich weiß nicht, wie es mit 4108 aussieht.
Aber auch hier sehe ich keinen Grund, dem nachzugehen - wenn 2 EAs gleichzeitig einen Schließungsauftrag erteilen, wird einer von ihnen definitiv einen Fehler haben (was macht das für einen Unterschied?).
Die Verarbeitung ist sehr einfach - OrderSelect ausführen und OrderCloseTime prüfen.

 
Ilnur Khasanov:

wtf?
des Moderators:
Aufgrund einer technischen Panne wurde der Beschreibungstext leider gelöscht. Bitte schreiben Sie es erneut und schicken Sie das Produkt zur Überprüfung ein.
Wir entschuldigen uns für die entstandenen Unannehmlichkeiten.

Es ist nicht nur lästig, sondern auch nervig, ein paar Mal (jedes Mal 10 Tage Wartezeit) zu löschen und dann zu sagen: Ups, tut uns leid, wir haben es gelöscht, stellen Sie es irgendwie selbst wieder her und warten Sie dann weitere 10 Tage. - Und wenn ich es versuche, stürzt die Seite ab...

Was zum Teufel ist das? Was für ein Fehler muss passieren, damit dies verloren geht? dass es keine Historie gibt, die wiederhergestellt werden kann? Die Beschreibungsnachricht liegt seit einigen Tagen im Speicher.
Warum ist die Nachricht des Moderators dieses Mal nicht aufgetaucht?

Ich weiß mit Sicherheit, dass dieses Problem nicht nur einmal auftritt. Diese angebliche Störung ist in Wirklichkeit keine Störung (wahrscheinlich verzögert), da sie nicht nur bei mir und nicht zur gleichen Zeit auftritt (das Problem besteht seit mehr als einem halben Jahr)! - Bitte kommentieren...

Und bitte reparieren Sie es. Wenn Sie das nicht können, stellen Sie mich ein. Ich mache es in einer Woche, für 2.000 Euro.

Was für ein Fiasko.

Werden sie die Löschung tatsächlich wiederherstellen? Die Hälfte meines Schriftwechsels mit dem Moderator ist verschwunden. Die Nachrichten aus dem Forum sind verschwunden. Und die Moderatoren haben Nachrichten gelöscht, die in der Folgezeit ins Leere gelaufen sind.
Warum gibt es keinen Wartungsmodus? - Es ist besser, in dieser Reihenfolge zu sagen: erst wird der Modus aktiviert, dann wird gearbeitet, dann wird der Modus wiederhergestellt.

Kaum habe ich eine Nachricht gepostet, ist die Website nicht mehr erreichbar. Ich habe beschlossen, die Seite zu aktualisieren - sie ist nicht mehr verfügbar...

wtf zum zweiten mal. der obige kommentar wurde vor 4 tagen geschrieben. jetzt ist er wieder da mit einer bemerkung, die ich bereits korrigiert habe. ich habe eine neue version des produkts gepostet. jetzt ist sie weg. wo ist die neue version hin?
So kann man nicht arbeiten - nun ja, es ist nicht seriös...
In einem neuen Kommentar an den Moderator habe ich die Beschreibung, die fehlte, dupliziert, um nicht noch mehr zu verlieren.
Was soll ich mit dem Produkt tun? es per E-Mail schicken? es an die Kommentare anhängen? oder es noch einmal versuchen und 24 Stunden warten?
Grund der Beschwerde: