
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
Zuverlässiger? Warum ist das Abrufen von Handles bei der Initialisierung nicht zuverlässig? Warum ist es unzuverlässig, nach notwendigen Daten zu suchen? Und vor allem, warum ist das Vorhandensein von Kontrollen nicht zuverlässig?
Für Anfänger mag es nicht so einfach sein, aber mit der Zeit wird alles klar...
Ich versuche sogar, es sofort herauszufinden, nicht erst später... Ich möchte nicht einfach ein paar Aktionen kopieren, ohne ihre Bedeutung zu verstehen. Wenn ich den Code als integrierte Funktion wie in MQL4 habe, werde ich wahrscheinlich einen zusätzlichen Parameter mit der Anzahl der Balken hinzufügen.
Warum wird sie geladen?
"Gewöhnliche Zahlen" sind konstante Ausdrücke, die auch einen Typ haben. In diesem Fall ist es der Typ int.
Ein Ausdruck, der aus einer Multiplikation von zwei Unterausdrücken vom Typ int besteht, ist ebenfalls vom Typ int. An dieser Stelle kommt es zum Überlauf.
Und erst dann erfolgt bei der Initialisierung der Long-Variablen die implizite Konvertierung vom Typ des int-Ausdrucks in den Typ long.
Hier ist alles klar. Übrigens ist es in diesem Fall nicht notwendig, jeden der Operanden auf long zu setzen. Wir können einfach eine der beiden Methoden anwenden und die zweite implizit anwenden.
Das ist es, was ich sagen wollte, allerdings in einer weniger akademischen Sprache. Die Hauptsache ist, andere Beobachter zu warnen.
Die Frage ist eine andere. Wo in welchem Talmud steht, dass :
"Gewöhnliche Zahlen" sind konstante Ausdrücke, die auch einen Typ haben. In diesem Fall ist es der Typ int.
Zum Beispiel, wenn X auf 10000000000 gesetzt wird, dann wird es Long-Typ? Und warum nicht ulong oder datetime oder sogar string.?
Was ist der Typ der Zahl 255uchar odershort?
Warum wird sie geladen?
Es scheint eine Verwechslung zwischen dem Protokoll und dem Code zu geben. Der obige Code funktioniert "sauber". Und um ein solches Protokoll zu erhalten, musste ich die Variablen A und B vom Typ int oder uint und die Variable X vom Typ uint machen:
Und hier ist die Arbeit des ursprünglichen Codes:
Build 314 (20. August 2010).
Ich habe einen anderen Code zitiert
Achten Sie besonders auf die erste Zeile, da Ihr Konto möglicherweise eine andere Nummer hat. Nachschlagen und in langes C setzen =
Erneut geprüftes Ergebnis
Build 314 (20. August 2010).
Bitte sagen Sie mir, warum die Funktion SymbolInfoDouble(_Symbol,SYMBOL_POINT) des Paares USDCHF eine fünfstellige Punktgröße nach dem Dezimalpunkt 0,00001 erzeugt, wenn dieses Paar für den Punktwert 0,0001 akzeptiert wird?
Was macht Sie denken, es gibt 4 Ziffern in diesem Instrument, das Terminal zeigt deutlich, dass die Zitate gibt es 5 Ziffern
Diese Funktion kann auch bei Konten mit fünf Ziffern unterschiedliche Punktwerte zurückgeben, dies hängt von den Einstellungen ab, die vom Broker akzeptiert werden.
Ein Maklerunternehmen hat zum Beispiel folgenden Kommentar
und eine andere hat 1 Pips gleich der fünften Ziffer.
Genau das wollte ich sagen, allerdings in weniger akademischer Form. Und vor allem, um andere Suchende zu warnen.
Die Frage ist eine andere. Wo in welchem Talmud steht, dass :
"Gewöhnliche Zahlen" sind konstante Ausdrücke, die ebenfalls einen Typ haben. In diesem Fall ist es der Typ int.
Zum Beispiel, wenn X auf 10000000000 gesetzt wird, dann wird es Long-Typ? Und warum nicht ulong oder datetime oder sogar string.?
Was ist der Typ der Zahl 255uchar odershort?
Die Konstante 10000000000 ist bereits vom Typ long.
Wie soll ich es formulieren? Normale Sprachen verfügen über Suffixe - Modifikatoren, die es ermöglichen, den Typ einer Konstanten ohne explizite Typumwandlung anzugeben. Für MQL5 habe ich es nur für Float gefunden. Daher ist es unmöglich, Konstanten der Typen uchar, ushort, uint, ulong, char, short und long (wenn der konstante Wert in den Typ int passt) ohne explizite Typkonvertierung zu definieren.
Die Konstante 255 hat den Typ int. Sie können etwas in den Typbeschreibungen finden, z. B. werden Zeichenkonstanten mit dem Typ ushort deklariert. Außerdem gibt es Informationen über Konstanten vom Typ datetime, color, bool, double und string.
Sie können versuchen, die Größe des konstanten Typs zu drucken, solange die sizeof-Operation eingeführt wird (aber warum wird sie eingeführt, bitte erklären Sie einem der Entwickler):
Im Allgemeinen funktioniert von den Suffixen nur f für Doppelkonstanten, indem es sie in Float umwandelt, was an sizeof-type einer solchen Konstante zu erkennen ist.
Hier ist die einzige sinnvolle Verwendung der sizeof-Operation, die ich finden konnte. :)
Ich habe Ihnen einen anderen Code gegeben
Achten Sie besonders auf die erste Zeile, da Ihr Konto möglicherweise eine andere Nummer hat. Nachschlagen und in langes C setzen =
Erneut geprüftes Ergebnis
Build 314 (20. August 2010).
Nein, ich habe nicht die gleiche Wirkung wie Sie. Ich muss nur die Bit-Versionen von MT5 überprüfen. Ich habe die 64-Bit-Version, welche ist Ihre?
Führt der geänderte Code, den ich getestet habe, übrigens zu den gleichen Ergebnissen wie ich?
Wenn ja, dann ist das, was ich sehe, dem Fehler mit dem "Ursprung" eines Wertes sehr ähnlich - d.h. der Code kann sich unterschiedlich verhalten (sowohl korrekt als auch inkorrekt), je nachdem, woher der Wert, auf dem die weiteren Berechnungen basieren, ursprünglich kam.