Wünsche für MT5 - Seite 45

 
Liebe Entwickler. Was würden Sie von der Einführung eines Datentyps aus C/C++ "long double" halten? Das wäre sehr nützlich. Um ehrlich zu sein, habe ich festgestellt, dass die Genauigkeit des Typs "double" für Berechnungen nicht ausreicht. Oder machen Sie eine spezielle Klasse für Operationen mit beliebig definierter Genauigkeit. Wie sehen Sie das?
Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Основы языка / Типы данных - Документация по MQL5
 
-Alexey-:
Liebe Entwickler. Was halten Sie von der Einführung des Datentyps "long double" aus C/C++? Das wäre sehr nützlich. Um die Wahrheit zu sagen, habe ich festgestellt, dass die Genauigkeit des Typs "double" für Berechnungen unzureichend ist. Oder machen Sie eine spezielle Klasse für Operationen mit beliebig definierter Genauigkeit. Was halten Sie davon?

Entschuldigen Sie die Störung, aber starten Sie eine Rakete ins All? Wäre es nicht besser, über eine Optimierung des Algorithmus oder ähnliches nachzudenken?

Können Sie ein Beispiel nennen, bei dem eine solche Präzision erforderlich ist?

 
Zum Beispiel ist es fÃ?r die numerische Berechnung des Quantils der Normalverteilung mit der Genauigkeit mindestens 4-5 Zeichen notwendig, da die AbhÃ?ngigkeit bei P>.9 im Horizont liegt und die Maschine Null auf die VerÃ?nderung der Wahrscheinlichkeit nicht erlaubt, die Genauigkeit mehr als 2-3 Zeichen zu bekommen, und bei P>.99 sogar schlechter. Und so weiter. Die Zahlen sind vielleicht ein bisschen anders, das ist nur ein Beispiel, weil ich mit einer anderen Verteilung arbeiten muss, aber die Idee ist die gleiche. Was für eine Rakete :)
 
Ein weiteres Problem ist die mangelnde Präzision. Die Situation stellt sich wie folgt dar. Ich baue eine Verteilungsfunktion von 10000 Werten nach Preisen auf. In einigen Intervallen ist der Wert der Funktion klein und durch 10000 geteilt. Wir erhalten Werte in der Größenordnung von 1*10e-6; dann müssen wir das Quadrat der Differenz zwischen diesen Werten finden und erhalten den Wert in der Größenordnung von 1*10e-13 (dann müssen mehrere tausend solcher Werte addiert werden); die Daten sind katastrophal verloren. Und 10000 ist nicht so viel, um ehrlich zu sein - nicht viel. Deshalb fordere ich die Entwickler noch einmal auf, das "lange Doppel" einzuführen. Soweit ich weiß, ist die statistische Arbeit mit großen Stichproben im Finanzbereich eine häufig geforderte Aufgabe. Sonst stellt sich heraus, dass man sich gerade für MQL5 begeistert hat und nun auf C++ umsteigen muss.
 
-Alexey-:
Es gibt noch ein weiteres Problem mit der mangelnden Genauigkeit. Die Situation stellt sich wie folgt dar. Wir erstellen eine Verteilungsfunktion für 10 000 Werte nach Preis. In einigen Intervallen ist der Wert der Funktion klein und wird durch 10000 geteilt. Wir erhalten Werte in der Größenordnung von 1*10e-6; dann ist es notwendig, das Quadrat der Differenz zwischen diesen Werten zu definieren, und wir erhalten einen Wert in der Größenordnung von 1*10e-13 (dann müssen mehrere tausend solcher Werte addiert werden); die Daten sind katastrophal verloren. Und 10000 ist nicht so viel, um die Wahrheit zu sagen - nicht viel. Deshalb fordere ich die Entwickler noch einmal auf, das "lange Doppel" einzuführen. Soweit ich weiß, ist die statistische Arbeit mit großen Stichproben im Finanzbereich eine häufig geforderte Aufgabe. Andernfalls stellt sich heraus, dass wir uns gerade für MQL5 begeistert haben und nun auf C++ umsteigen müssen.

DerTyp double in mql5 arbeitet mit Zahlen im Bereich von +-10e-307 bis +-10e307, mit einer Mantisse von 16 Ziffern. Es gibt also keine von Ihnen beschriebenen Probleme.

Wenn die angegebene Mantisse nicht ausreicht, entwickeln Sie eine Klasse mit höherer Genauigkeit, z. B. mit einer Mantisse von 32 Ziffern. Das ist Ihr gutes Recht.

Aber für die breite Masse der Entwickler reichen 16 Stellen der Mantisse aus, warum sollte man sich mit einem solchen Durcheinander herumschlagen?

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 
Urain:

DerTyp double in mql5 arbeitet mit Zahlen im Bereich von +-10e-307 bis +-10e307, mit einer Mantisse von 16 Ziffern. Es gibt also keine von Ihnen beschriebenen Probleme.

Wenn die angegebene Mantisse nicht ausreicht, entwickeln Sie eine Klasse mit höherer Genauigkeit, z. B. mit einer Mantisse von 32 Ziffern. Das ist Ihr gutes Recht.

Den meisten Entwicklern reichen 16 Zeichen in der Mantisse aus, warum sich also damit herumschlagen?

Ich bin nicht einverstanden, hier ein Beispiel (Raster 10000x10000)

double x1=0,0011;

double y1=x1/10000;

double x2=0,0012;
double y2=x2/10000;

double c=y1-y2;
double d=MathPow(c,2);


printf(string(d));

результат: 9.999999999999968e-017

Was soll ich also mit diesem Ergebnis anfangen? Wie kann ich sie mit anderen Ergebnissen vergleichen? DBL_EPSILON=2.2204460492503131e-016. Abgesehen von den letzten beiden Ziffern - sehen Sie? Und das sind nur zwei Operationen. Und ich habe noch mehr von diesen Operationen. Und diese Informationen müssen verwendet werden, um Daten später mit einigen weiteren Operationen wiederherzustellen. Mehr Verluste. Ich lerne gerade, in einer C-ähnlichen Sprache zu programmieren, und es fällt mir schwer, eine solche Klasse zu erstellen (oder besser gesagt, ich habe keine Ahnung, wie). Dies ist ein ernsthaftes Werk. Übrigens, haben Sie zufällig einen solchen Kurs? Und die Entwickler können die Dinge für alle auf einmal verbessern. Es wäre möglich, 100.000x100.000 Raster zu erstellen. Es stünden bereits mehr oder weniger repräsentative Stichproben zur Verfügung, obwohl selbst dies im Großen und Ganzen nicht ausreicht. Und wenn es eine Klasse für beliebige Genauigkeit gäbe, wäre es noch besser :) Es ist nur ein Datentyp. Wenn es etwas gibt, dann hat es einen Grund, denn es erfüllt ein Bedürfnis. Der Punkt ist, dass ich nicht weiß, ob es für Entwickler schwierig ist oder nicht. Wenn es schwierig und teuer ist - da stimme ich Ihnen zu - warum sollte ich mein Problem auf sie abwälzen. Aber wenn es nicht schwierig ist - warum nicht? Auch hier - eine leistungsstarke Entwicklungsumgebung für Handelsberechnungen mit hoher Genauigkeit - ein gewisser Wettbewerbsvorteil :). Deshalb frage ich, was sie darüber denken.
 
-Alexey-:
Auch hier - eine leistungsstarke Entwicklungsumgebung für Handelsberechnungen mit hoher Genauigkeit - ein gewisser Wettbewerbsvorteil :).

Das ist nur von Ihrem Standpunkt aus gesehen... 99,9999% brauchen es nicht

Verwenden Sie dazu eine spezielle Software....

 
AlexSTAL:

Das ist nur von Ihrem Standpunkt aus gesehen... 99,9999% brauchen es nicht

Verwenden Sie dazu eine spezielle Software....

Das ist der Punkt: MT ist ein spezielles Produkt für Finanzberechnungen. Finanzielle Berechnungen sind eng mit der Anwendung statistischer Methoden verbunden. Und es besteht keine Notwendigkeit, neue Produkte zu beherrschen - ich möchte TS in einer Handelsumgebung entwickeln, anstatt mich damit zu beschäftigen und mit Typen zu kämpfen. Außerdem scheint es, dass MQL5 wirklich schnell zählt.
 
-Alexey-:
Das ist die Sache, MT ist ein spezialisiertes Produkt für finanzielle Berechnungen. Finanzielle Berechnungen sind eng mit der Anwendung statistischer Methoden verbunden. Und es besteht keine Notwendigkeit, neue Produkte zu beherrschen - ich möchte TS in einer Handelsumgebung entwickeln, anstatt mich damit zu beschäftigen und mit Typen zu kämpfen. Außerdem scheint MQL5 wirklich schnell zu sein.

Sie wissen, dass jedem Entwickler immer etwas fehlt....

Wenn 500 Programmierer jeweils 10 Wünsche schreiben - dann bräuchte man ein Büro wie Bills....

zur Umsetzung von Fantasien....

 
AlexSTAL:

Sie wissen, dass jedem Entwickler immer etwas fehlt....

Wenn 500 Programmierer jeweils 10 Wünsche schreiben würden, bräuchte man ein Büro wie das von Bill....

Phantasien wahr werden lassen....

Fantasien haben damit absolut nichts zu tun. Meine Frage bezog sich auf die Möglichkeit, die gängigste Analysemethode anzuwenden. Das heißt, es wird mit der Zeile gearbeitet, die nach dem Entfernen des Trends und des Zyklus übrig bleibt. Diese Methode wird ausnahmslos in allen Lehrbüchern zur Finanzstatistik und in den Lehrmaterialien der Universitäten beschrieben. Dies ist kein Hirngespinst, sondern einer der kanonischen Ansätze der Analyse. Und eine spezialisierte Umgebung sollte über die Mittel verfügen, diesen Ansatz umzusetzen - was meinen Sie?