Zeit für die Umwandlung von Bibliotheken in MQL5 - Seite 5

 

Könnten die Speicherbefehle übrigens nicht in einer menschlichen Sprache abgefasst sein? - Sie wissen schon, wie:

"An das Repository senden".

"Vom Repository herunterladen".

"Mit Repository synchronisieren".

"Mit MIR synchronisieren".

Und die Befehle, die es jetzt gibt - nun, das ist nicht klar. Und hierin bin ich mit Urain solidarisch. Und wenn jemand etwas nicht intuitiv versteht, dann ist es unwahrscheinlich, dass diese Person Zeit damit verbringen will, die Befehle zu lernen, um die neue Funktionalität zu nutzen, besonders wenn sie vorher darauf verzichtet hat (Funktionalität).

 

Dasich dieser Thread in eine Wunschliste verwandelt, werde ich meine auch hiereinfügen .

Bei den numerischen Bibliotheken handelt es sich um folgende:

  • Interpolation, Glättung und Approximation
  • Handhabung der Matrix
  • Optimierung (Suche nach einem Extremwert), Methoden:

Univariat: Methode des Goldenen Schnitts, Dichotomie, Parabelmethode, Netzsuche, Fibonacci-Methode, Trinärsuche
Direkte Methoden: Gauß-Methode, Nelder-Meade-Methode, Hook-Jeeves-Methode, Konfigurationsmethode, Rosenbrock-Methode
Erste Bestellung: Gradientenabstieg, Zoytendijk-Methode, Koordinatenabstieg, Konjugierte Gradientenmethode, Quasi-Newton-Methoden, Levenberg-Marquardt-Algorithmus
Zweite Bestellung: Newton-Methode, Newton-Raphson-Methode
Stochastisch: Monte-Carlo-Methode, Simulated Annealing, Evolutionäre Algorithmen, Genetische Algorithmen, Differentielle Evolution, Ameisenalgorithmus, Partikelschwarmverfahren

Wikipedia-Liste, wahrscheinlich brauchen Sie nicht das ganze Ding.

  • neuronale Netze?

Zusätzlich zu den Bibliotheken für numerische Methoden:

  • Kartenerstellung

Und in der Sprache, um ein Analogon der Java Reflection API zu erstellen

  • Definition der Objektklasse.
  • Informationen über Modifikatoren, Felder, Methoden und Konstruktoren abrufen.
  • Erzeugt eine Instanz der Klasse, deren Name bis zur Ausführung des Programms unbekannt ist (angegeben durch string).
  • ...

Und reguläre Ausdrücke.

Und dazu wäre es eine gute Ergänzung, das Programm nicht in einem Zeichentafelfenster laufen zu lassen. Aber in einem normalen Fenster. Es ist bereits offensichtlich, dass die Benutzer-"Anwendungen" nicht vermieden werden können, warum also die Verknüpfung mit einem Symbol, denn Sie können auf jedes zugreifen, für jede Operation. Im Allgemeinen ist das standardmäßige Schweben auf dem Symbol in 5 völlig unnötig. Dies ist die Menge der Indikatoren und Expertenanwendungen, für die es wirklich nützlich ist.

Und, mindestens, machen Sie eine Blockierung von "popping"-Ereignisse auf das Diagramm von Interface-Elemente, jetzt ist es lästig, ein Fenster-Objekt zusammen mit dem Diagramm Scrollen ziehen (oder vielleicht ist es schon?).

Danke für die statischen Methoden - meine Singletons sind keine globalen Funktionen mehr.

 
Renat:
Wir haben viel Arbeit in die Feinabstimmung des MQL5-Compilers gesteckt, um die Konvertierung bestehender Bibliotheken, die in anderen Sprachen geschrieben wurden, zu erleichtern.

Und die MQL5-Sprache wird ständig weiterentwickelt. Neue Funktionen, darunter ein leistungsfähiger Code-Profiler, sollen in Kürze erscheinen.

Wir haben nun zwei Aufgaben zu bewältigen:
1) nützliche Bibliotheken von Drittanbietern für die Konvertierung auszuwählen
2) Freiwillige für die Durchführung von Umstellungsprojekten zu gewinnen (wir werden sie finanzieren).

Wir möchten mit einer Liste von möglichen Projekten beginnen. Bitte helfen Sie mit Links und einer kurzen Beschreibung.
Ich denke, dass es für diejenigen, die bereit sind, Bibliotheken auf den Markt zu bringen, profitabler ist, da es sich um eine langfristige Lösung handelt und Sie eine einmalige Zahlung anbieten. Natürlich, wenn Sie bereit sind, 10.000 bis 50.000 Dollar oder mehr pro Projekt zu bieten, dann ein weiteres Gespräch, dann bin ich bereit, etwas zu bewegen.
 
-Alexey-:
Ich denke, dass es für diejenigen, die bereit sind, Bibliotheken auf den Markt zu bringen, profitabler ist, da es sich um eine langfristige Lösung handelt und Sie eine einmalige Zahlung anbieten. Wenn Sie natürlich bereit sind, 10.000 bis 50.000 Dollar oder mehr pro Projekt zu bieten, dann bin ich gerne bereit, etwas zu ändern.
Sehr interessant, was sind Sie bereit zu bieten? Nur ein kleiner Hinweis, bitte?
 
Mehr Arbeit mit komplexen Zahlen, mit großen Zahlen. Umrechnung von Koordinaten, mit weiterer Erstellung dreidimensionaler Diagramme.
 
TheXpert:
Los geht's:)
Aua! Aua! :)
 

Eine weitere Frage - wenn Sie versuchen, MQL5 so nah wie möglich an C++ zu machen, warum überdenken Sie nicht die Frage nach #ifdef oder #if defined oder nur #if?

Als Nächstes möchte ich eine Frage zum Debugging von Bibliotheken aufwerfen, die Ihnen vielleicht noch nicht aufgefallen ist.

Небольшой вопрос -- сейчас есть возможность нормально дебажить библиотеки? Просто не всегда все баги вылазят сразу -- некоторые могут остаться и вылезти уже во время активного пользования библиотекой.

Natürlich wird dieses Problem teilweise durch die interne Kontrolle gelöst, aber angesichts des wachsenden Bibliothekscodes ist es sehr wichtig.

E.M.N.I., die Pausen in Bibliotheken funktionieren nicht.

 
Renat:
Es ist seltsam, von "garantiertem Zugriff auf die DLL" zu hören, wenn dies in MQL4 und MQL5 seit 7 Jahren perfekt funktioniert.

Es funktioniert gut, wenn Sie eine C++ (oder C#) dll mit einer Header-Datei nehmen, legen Sie es in den entsprechenden Ordner, schließen Sie die ursprüngliche Header-Datei (oder Dateien) über #include in Ihrem Code und Sie sind fertig. Ist das heutzutage noch möglich?

 
Ist dies auch in anderen Sprachen als C/C++ möglich?

Das völlige Fehlen von Sicherheit und direktem Datenzugriff in C/C++ verträgt sich nicht mit Sprachen, die sich zumindest minimal um Sicherheit kümmern. Die Header *.h-Dateien können in MQL5 fast unverändert verwendet werden, umbenannt in MQH. Aber Stellen, die mit Links und direktem Zugriff auf die Daten arbeiten, müssen korrigiert werden.

Bindungen mit DLL funktionieren einwandfrei.

 
Renat:
. . . Die Header *.h-Dateien können in MQL5 fast unverändert verwendet werden, umbenannt in MQH. Aber die Stellen, die mit Links und direktem Zugriff auf Daten arbeiten, müssen korrigiert werden.

Ich gehe davon aus, dass Sie eine Menge Dinge ändern müssen.

Gegen einen direkten Zugriff auf die Daten ist eigentlich nichts einzuwenden, schließlich ist der MetaTrader selbst wahrscheinlich in C/C++ geschrieben und sonst nichts. Außerdem erlauben Linker in der Regel sogar Assembler-Einfügungen, und das ist auch in Ordnung. Denken Sie daran, dass MetaTrader unter Windows direkt oder indirekt eine Menge System-DLLs verwendet, und daran ist auch nichts auszusetzen.

Ich denke nicht, dass wir dem Benutzer das Recht auf Wahlfreiheit nehmen sollten. Ich hätte gerne die Möglichkeit, z.B. ALGLIB-dll und seine native(n) Header-Datei(en) zu nehmen und eine zuverlässige Bibliothek zu verwenden, ohne mir die Hände schmutzig zu machen", sondern einfach dem MQL-Compiler mitzuteilen, dass diese Header-Datei C++ ist und nicht MQL.

Man könnte sich fragen: Was ist, wenn diese Bibliothek bösartig und gefährlich ist? Aber ich habe beschlossen, es selbst zu benutzen.

Mit anderen Worten: MQL-programmierte Inhalte können so sicher sein, wie Sie wollen, aber wenn ich es gewagt habe, etwas Externes zu verwenden, ist das mein persönliches Problem. Sowie die Sicherheit meines Betriebssystems, die übrigens auch eine Bedrohung für MetaTrader darstellen kann.