Fehler, Irrtümer, Fragen - Seite 1409
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
Bezüglich der Ankündigung des neuen Gebäudes 1200.
Solche Lösungen sehen sehr verkrustet aus, wenn der Struktur zusammen mitdatetimetime einelange time_msc hinzugefügt wird. Die Frage ist, warum dann time benötigt wird? Es ist eine sinnlose Verschwendung von Ressourcen.
Dasselbe gilt für uint-Flags, während hieruchar oder zumindest ushort (mit einer erheblichen Reserve für die Zukunft) ausreichen würde. Und warum uint dort gebraucht wird, ist unverständlich.Das Traurige ist, dass die Entwickler völlig aufgehört haben, über eine vernünftige Datenspeicherung nachzudenken. Ein Array von Ticks ist eine kolossale Größe für sich. Und hier wird Speicher so achtlos vergeudet...
Apropos Zeit. Vielleicht ist es an der Zeit, in MQL einen normalen Zeittyp einzuführen, der Millisekunden enthält, sonst bleiben uns nur diese Krücken.Zumal datetime selbst in seiner jetzigen Form eine sehr irrationale Sache ist: Es verbraucht 8 Bytes, enthält aber nur Sekunden - und wer braucht das schon? 4 Bytes(uint) reichen für diese Aufgabe für die nächsten 90 Jahre (und Duncan McLeod ist nicht unter uns).
Diese Lösung bewahrt die Kompatibilität mit älteren Programmen, die Zeit in Sekunden oder SymbolInfoTick() verwenden.
Glaubt man unserer Erfahrung, so führt das Spiel "Wir schaffen es in ein oder zwei Bytes" in der Zukunft zu ungeheuren Problemen. Man versteht es erst, wenn man Software für die nächsten 10 Jahre schreibt.
Die 4 Byte Datumszeit in Sekunden enden im Jahr 2038 (noch 22 Jahre), nicht in 90 Jahren.
Was bedeutet TM=30M hier?
Unserer Erfahrung nach führt das Spiel "ein oder zwei Bytes" in der Zukunft zu horrenden Problemen. Das merkt man erst, wenn man Software 10 Jahre im Voraus schreibt.
Es geht also nicht darum, das Limit zu erreichen. Natürlich sollten wir einen gewissen Spielraum für die Zukunft lassen, aber innerhalb vernünftiger Grenzen. In dem von uns diskutierten Fall speichert das Feld flags beispielsweise nur Informationen über sechs andere Felder. Wenn Sie es vom Typ ushort machen, haben Sie 10 weitere Felder zur Verfügung. Wie weit können Sie es noch ausbauen?
Wenn Sie z. B. ein ganzes Glas speichern wollen, reichen 32 Bit nicht aus. Warum nicht gleich 64 Bit? Obwohl Sie für ein Glas natürlich eine ganz andere Struktur benötigen.
Natürlich verstehe ich, dass 2 zusätzliche Bytes nicht sehr wichtig sind, aber es stellt sich heraus, dass 2 Bytes hier, 2 Bytes dort... und das ist eine ganze Menge.
4 Datumsbytes in Sekunden enden im Jahr 2038 (weitere 22 Jahre), nicht in 90 Jahren.
Ich sage Ihnen, Sie werden mit nicht erweiterbaren wirtschaftlichen Strukturen zu kämpfen haben. Fangen Sie an, in Jahrzehnten zu denken, denken Sie an die Notwendigkeit einer langen Unterstützung und alles wird klar werden.
Mit 4 Byte Datetime werden Massen von Software gerade im Jahr 2038 große Probleme mit Überläufen haben, was zu verzweifeltem Neuschreiben von altem Code führen wird. Und Überläufe werden bei Mattenoperationen und Deltas noch früher erkannt.
Ich programmiere seit 25 Jahren, und ich weiß, wovon ich spreche. Ich schreibe schon mein ganzes Leben lang kostengünstige Programme. Schauen Sie sich unsere Terminals an - sie sind wahre Meisterwerke, wenn es um die Menge an Funktionalität geht, die in kleinen einzelnen exe-Dateien enthalten ist. Führen Sie eine einzige nackte terminal.exe auf einem sauberen Computer aus und sehen Sie, was passiert.
Aber die Dinge haben sich geändert - entweder man schreibt 64-Bit-Code mit einer Marge fast überall oder man hält sich aus der Zukunft heraus. Dies ist für uns besonders wichtig, da wir keine geschlossenen Boxen, sondern Entwicklungsplattformen mit Kompatibilitätsanforderungen herausgeben.
In ein paar Jahren werden wir uns ärgern, weil wir wieder zu wenig investiert haben. Und überall stehen Computer mit Dutzenden von Gigabytes in der Grundausstattung.
Was bedeutet TM=30M hier?
Mit 4 Byte Datetime wird die meiste Software gerade im Jahr 2038 große Probleme mit Überläufen haben, was zu einem verzweifelten Umschreiben des alten Codes führen wird. Und Überläufe werden bei Mattenoperationen und Deltas noch früher erkannt.
Sie meinen MQL4-Codes (wo datetime ursprünglich auf int basierte). Dann natürlich ein weiteres Gespräch, das sich auf Kompatibilitätsprobleme bezieht. Aber ich habe ursprünglich von Rationalität gesprochen. In diesem Fall leidet also die Rationalität.
Auf jeden Fall werden Sie mir wohl zustimmen, dass eine neue Zeitart mit Millisekunden benötigt wird, die nicht erst ab 1970, sondern schon viel früher, zum Beispiel ab 1900, beginnen sollte. Es geht nicht mehr nur um Devisen, denn Börsen gibt es schon seit sehr langer Zeit.
...
Auf jeden Fall werden Sie mir zustimmen, dass wir eine neue Zeitrechnung brauchen, eine Zeitrechnung, die Millisekunden enthält, und die nicht im Jahr 1970 beginnen sollte, sondern viel früher, zum Beispiel im Jahr 1900. Wir sprechen nicht erst jetzt über Devisen, sondern Börsen gibt es schon seit sehr langer Zeit.
Das einzige Problem ist, dass es unter Zar Gorokh nicht in Mode war, Computer zu benutzen, und die Geschichte der Zecken nicht für künftige Generationen bewahrt wurde...
Es geht nicht unbedingt um Ticks, die Tageskerzen sind zum Beispiel noch intakt.
Es ist mir peinlich zu fragen, warum Sie die Preise der täglichen Kerzenständer für 1900... Jahre benötigen? Um technische Analysen durchzuführen? Um die Berater auf die Geschichte zu testen?
Die Ausführungsgeschwindigkeit erhöht sich von 2 bis 10 Mal für x64 Versionen des MetaTrader 5 Terminals.
Das Ergebnis ist es wert. Wir werden allerdings noch an der Kompilierungsgeschwindigkeit arbeiten.
Sie haben sich kürzlich damit gebrüstet, dass die Geschwindigkeit von MQL an C++ heranreicht. Und jetzt stellt sich heraus, dass Sie C++ um ein Vielfaches übertreffen werden? ))
Wenn es Ihnen gelingt, diese Geschwindigkeit bei einigen speziell vorbereiteten Tests zu erreichen, bedeutet das nicht, dass Sie sie auch in anderen Fällen erreichen. Aber die Kompiliergeschwindigkeit verlangsamt sich in allen Fällen.