Fehler, Irrtümer, Fragen - Seite 2209
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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 weil Ihre Beispiele rein theoretisch sind. Sie sind ausschließlich für Studenten bestimmt. Kein Programmierer, der bei Verstand ist, würde so etwas in die Produktion einbringen.
Postfix- und Präfixinkremente und -dekremente werden eigentlich vor allem in Schleifen verwendet. Und die heißen Inkremente und Dekremente!
Hier sind einige Beispiele
и
Wenn Sie behaupten, dass Präfix- und Postfix-Operationen gleich funktionieren, dann haben Sie die Fahne in der Hand und die Trommel im Nacken.
Im Falle eines Präfix-Inkrements erhalten Sie bei der letzten Iteration ein nicht initialisiertes Null-Array-Element und einen Array-Out-of-Range-Fehler.
Vielleicht versteht Ihr hoher Geist es nicht, dann wiederhole ich meine Frage noch einmal.
Ist die hervorgehobene Stelle für Sie schwer zu erkennen?
Nun zu dem Punkt, warum in dem Beispiel, das in der Konversation erscheint, das Ergebnis in mql == 12 ist, und es spielt keine Rolle, ob es aus der Hand gemacht wurde oder nicht, wenn es einen Unterschied zwischen Postfix- und Präfix-Operationen gibt, sollte das Ergebnis == 13 sein
ps. und ich mache keine Aussage, weil ich jetzt überprüft und wirklich Postfix und Präfix haben jetzt einen Unterschied, aber meine Frage oben gibt Grund zu der Annahme, dass die Mehrdeutigkeiten in der Sprache bei der Kompilierung Zeit offenbar genug und bevor Sie auf jemanden in der Branche zu stürzen, mit diesen UB beschäftigen, sind wir nicht schuld hier
Übrigens, wie ich sehe, wurde an der Hilfe bereits herumgebastelt )).
Vielleicht versteht Ihr hoher Geist es nicht, dann wiederhole ich meine Frage noch einmal.
Sie verstehen den hervorgehobenen Teil nicht?
Nun zu dem Punkt, warum in dem Beispiel, das in der Konversation auftaucht, das Ergebnis in mql == 12 ist, und es spielt keine Rolle, ob es aus der Hand gemacht wurde oder nicht, wenn es einen Unterschied zwischen Postfix- und Präfixoperationen gibt, sollte das Ergebnis == 13 sein
ps. und ich mache keine Aussage, weil ich jetzt überprüft und wirklich Postfix und Präfix haben jetzt einen Unterschied, aber meine Frage oben gibt Grund zu der Annahme, dass die Mehrdeutigkeiten in der Sprache bei der Kompilierung Zeit offenbar genug und bevor Sie auf jemanden in der Branche zu stürzen, mit diesen UB beschäftigen, sind wir nicht schuld hier
Übrigens, die Hilfe sieht aus, als wäre sie umgeschaufelt worden).
Sei nicht schnippisch.
Wer sagt, dass die Ergebnisse 13 sein müssen? Auch hier sind die Ergebnisse mit Nebenwirkungen stark von der Optimierung abhängig. Selbst wenn Sie auf einen solchen Ausdruck keine Optimierung anwenden, kommt eine Implementierung ins Spiel - eine Änderung des Variablenwerts entweder unmittelbar nach der Verwendung oder nach der Berechnung des Ausdrucks. Welche Umsetzung ist richtig?
Wir werden uns nicht mit UB beschäftigen, das ist undefiniert, und haben klar geschrieben: "Tu das nicht.
Wo ist die Hilfe kopiert worden? Ich habe die MQL5-Referenz von MetaEditor Build 1755 vom 18. Januar geöffnet. Er sagt das Gleiche
Wichtiger Hinweis
int i=5;
int k = i++ + ++i;
Bei der Übertragung des obigen Ausdrucks von einer Programmierumgebung in eine andere (z. B. von Borland C++ nach MQL5) können Rechenprobleme auftreten. Im Allgemeinen hängt die Reihenfolge der Berechnungen von der Implementierung des Compilers ab. In der Praxis gibt es zwei Möglichkeiten, die Nachdeklination durchzuführen:
Derzeit ist in MQL5 die erste Art der Nachdeklinationsberechnung implementiert. Aber auch wenn man diese Besonderheit kennt, ist es nicht empfehlenswert, mit seiner Verwendung zu experimentieren.
Ihre ursprüngliche Aussage war, dass es keinen Unterschied zwischen Postfix- und Präfix-Operationen gibt. Nicht wahr?
Seien Sie nicht leichtsinnig.
Wer sagt, dass die Ergebnisse 13 sein müssen? Auch hier sind die Ergebnisse mit Nebenwirkungen stark von der Optimierung abhängig. Selbst wenn Sie auf einen solchen Ausdruck keine Optimierung anwenden, kommt eine Implementierung ins Spiel - eine Änderung des Variablenwerts entweder direkt nach der Verwendung oder nach der Berechnung des Ausdrucks. Welche Umsetzung ist richtig?
Wir werden uns nicht mit UB befassen, deshalb ist es undefiniert, und wir haben ausdrücklich gesagt, dass wir das nicht tun.
Wohin sind Sie mit der Referenz gegangen? Ich habe die MQL5-Referenz von MetaEditor Build 1755 vom 18. Januar geöffnet. Er sagt das Gleiche
Wichtiger Hinweis
int i=5;
int k = i++ + ++i;
Bei der Übertragung des obigen Ausdrucks von einer Programmierumgebung in eine andere (z. B. von Borland C++ nach MQL5) können Rechenprobleme auftreten. Im Allgemeinen hängt die Reihenfolge der Berechnungen von der Implementierung des Compilers ab. In der Praxis gibt es zwei Möglichkeiten, die Nachdeklination durchzuführen:
Derzeit ist in MQL5 die erste Art der Nachdeklinationsberechnung implementiert. Aber auch wenn man diese Besonderheit kennt, ist es nicht empfehlenswert, mit seiner Verwendung zu experimentieren.
Ihre ursprüngliche Aussage war, dass es keinen Unterschied zwischen Postfix- und Präfix-Operationen gibt. Ist es nicht so?
Ich bin nicht frech, beachten Sie, wo Sie den Dialog begonnen haben, d.h. ich musste einen Code ausführen, von dem ich nicht einmal wusste - super
was die Hilfe betrifft - ja, sie wurde überarbeitet, denn als ich mich (vor etwa zwei Jahren) mit Postfix- und Präfix-Operationen in mql beschäftigte, erinnere ich mich offensichtlich nicht mehr an dieses Material
Das Thema war also abgeschlossen, und wir haben diesen Unterschied eingeführt und gut gemacht, aber man muss sie warnen, dass man etwas ändert.
Bitte um Ratschläge zur teilweisen Schließung von Positionen, Kontotyp RETAIL_HEDGING. Wenn ich beispielsweise die Hälfte einer Position im Expert Advisor schließe, sollte automatisch eine neue Order mit einem kleineren Lot eröffnet werden. Zu welchem Zeitpunkt ist der neue Auftrag also garantiert im Terminal? Verstehe ich das richtig, dass es nicht unmittelbar nach dem PositionClosePartial erscheinen muss und wir es irgendwo in OnTrade abfangen müssen?
Was zum Teufel ist das?
\auf die Hilfe - ja, sie wurde stark aufgewärmt, denn als ich mich (vor etwa zwei Jahren) mit Postfix- und Präfix-Operationen in mql beschäftigte, erinnere ich mich offensichtlich nicht mehr an dieses Material
Im Allgemeinen wurde das Thema geschlossen, und wir haben diesen Unterschied eingeführt und gut gemacht, aber man muss sie vor den Änderungen warnen, nicht wahr?
Interessehalber habe ich beschlossen, den alten 1159-Build vom Juni 2015 zu überprüfen. Die Hilfe enthält alles, was Slava zitiert hat. Vielleicht haben Sie also etwas verwechselt.
Was zum Teufel ist das?
Es ist ein Absturz:) Gehen Sie zu servicedesk!
Es ist ein Absturz:) Gehen Sie zu servicedesk!
Ich hab's - die Bank ist pleite :)
Verstehe - die Bank ist pleite :)
Das kommt vor)
Das kommt vor)
Ich weiß nicht, wie ich diesen Fehler lokalisieren kann? Ich möchte nur nicht das ganze Skript verraten, und ich möchte nicht alles neu verpacken....