Fehler, Irrtümer, Fragen - Seite 1168
![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
Ta maaa...
Sie müssen einen Doppelgänger aus der Zeit lange vor der Überweisung einfügen. Für globale Variable. Es ist nicht Null, sondern ein zufälliges Double, das 1,34*e-307 oder 4,29*e+120 sein kann, weil es Log-Bits hat.
Nach dem Übertragen von unzip von dub auf long.
Das war's.
Ok, du hast es verstanden ;)
OK, du hast es verstanden ;)
Ich verstehe einfach nicht, was daran unklar ist.
Double schneidet die Daten ab, so dass Sie long nicht direkt in double übertragen können. Aber beide sind jeweils 8 Byte groß, so dass man verlustfrei übertragen kann, wenn man double als Container verwendet, was ich im Beispiel getan habe.
Ich verstehe einfach nicht, was unklar ist.
Double schneidet die Daten ab, so dass Sie long nicht direkt in double übertragen können. Aber beide sind jeweils 8 Byte groß, so dass man verlustfrei übertragen kann, wenn man double als Container verwendet, was ich im Beispiel getan habe.
Andrey, ich habe das Format der Speicherung und Anzeige in der GV des Terminals nicht verstanden. Es schien die Diagramm-ID zu zeigen, aber sie zeigt 0.
GV zeigt etwas an, das wie Müll aussieht, dieser "Müll" wird nach der Rückkonvertierung zu einer Karten-ID.
Der Duble hat sein eigenes Datenformat, wenn wir den Long tucking, setzen wir auf das Duble-Format und verwenden es nur als 8 Bytes Speicher.
GV zeigt etwas an, das wie Müll aussieht; dieser "Müll" wird nach der Rückkonvertierung zu einer Graph-ID.
Der Duble hat sein eigenes Datenformat, wenn wir den Duble einstecken, setzen wir das Duble-Format ein und benutzen es einfach als 8 Bytes Speicher.
Es ist eher eine Frage:
Suche nach einem bestehenden GV des Terminals nach Namen. Dadurch wird die ID des Charts, auf dem der EA läuft, an den Indikator übergeben. Der Indikator hängt an einem anderen Symbol. D.h., ich möchte dem Indikator die ID des Charts übergeben, auf dem der Expert Advisor läuft. Ich suche sie auf diese Weise:
Das sagt mir das Terminal:
Ich habe versucht, die Variable zu lesen. Ich habe sie direkt in die Zeichenkette und in das Journal eingefügt, sowie in Variablen verschiedener Typen - alles das gleiche. Es gibt zwei Unterschiede.
Was ist daran falsch?
Lesen Sie hier https://www.mql5.com/ru/docs/basis/types/casting Absatz "Datenkonvertierung von einfachen Strukturen".
Das ist genau Ihr Fall. Doubletten haben eine viel geringere Präzision bei der _Anzahl_ der Zeichen als Langschriften. Das ist der Grund, warum Sie dieses Ergebnis mit einer einfachen Zuweisung erhalten.
Aber Sie können 64 Bits einer globalen Variablen vollständig nutzen, um _jede_ Information mit einer Länge von 64 Bits zu speichern (z. B. kurze Strings mit einer Länge von 8 Byte, ganz zu schweigen von Longs).
Der Expert Advisor befindet sich auf M2, die Indikatordaten werden von M3 übernommen.
1) Um 14:40 Uhr erfolgt ein Neustart des Terminals:
MD 0 14:40:06.009 Terminal MetaTrader 5 Alfa-Forex x64 build 930 gestartet
II 0 14:40:06.586 Terminal OpenCL nicht gefunden, installieren Sie den neuesten OpenCL-Treiber für bessere Leistung
JO 0 14:40:07.257 Experten Experte FX_Money_Flow_v1_06 (EURUSD,M2) erfolgreich geladen
RO 0 19:55:28.399 Terminal MetaTrader 5 Alfa-Forex x64 build 930 gestartet
OP 0 19:55:28.992 Terminal OpenCL nicht gefunden, installieren Sie den neuesten OpenCL-Treiber für bessere Leistung
RD 0 19:55:29.507 experts expert FX_Money_Flow_v1_07 (EURUSD,M2) erfolgreich geladen
Aber es funktioniert nicht immer richtig:
KF 0 23:59:51.987 FX_Money_Flow_v1_07 (EURUSD,M2) Faktorwert TF1 Indikator: -1.#QNAN -1.#QNAN
Das M3-Chart ist zu diesem Zeitpunkt geöffnet und es gibt einen Indikator, der alles korrekt anzeigt:
(der Zeitunterschied zwischen Terminal und Logs beträgt 5 Stunden, der Screenshot bezieht sich auf den zweiten Neustart)
Lesen Sie hier https://www.mql5.com/ru/docs/basis/types/casting Absatz "Datenkonvertierung von einfachen Strukturtypen".
Das ist genau Ihr Fall. Doubletten haben eine viel geringere Präzision bei der _Anzahl_ der Zeichen als Langschriften. Das ist der Grund, warum Sie dieses Ergebnis mit einer einfachen Zuweisung erhalten.
Aber Sie können die 64 Bits der globalen Variablen vollständig nutzen, um _jede_ Information mit einer Länge von 64 Bits zu speichern (z. B. kurze Strings mit einer Länge von 8 Byte, ganz zu schweigen von Longs).