Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 223
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
Für einen bestimmten Fall, in dem ein numerisches Feld zum Sortieren verwendet wird (die häufigste Situation), habe ich eine Variante geschrieben, die um mehrere Größenordnungen schneller ist als die vorherige. Aber sie verbraucht doppelt so viel Speicher. Sie ist für große Arrays relevant.
Anwendung (mit Messung der Ausführungszeit).
Ergebnis.
Was halten Sie von dieser Option?
Wie wäre es damit?
Ich kann es nicht testen.
Nicht nachsehen.
QuickSort Bibliothek hier
Die QuickSort-Bibliothek finden Sie hier
Danke, das ist eine sehr gute Option! Ich scheine QuickSort auch zu haben, aber aus irgendeinem Grund ist es wahnsinnig langsam.
Ihre Option könnte in Makros irgendwie verpackt werden, um es schneller zu machen, zu verwenden...
Danke, das ist eine sehr gute Option! Ich scheine auch QuickSort zu haben, aber aus irgendeinem Grund sind die Bremsen wild.
Ihre Option könnte in Makros eingewickelt werden, um es schneller zu machen, zu verwenden....
Ich wüsste nicht, warum Sie Makros brauchen. Es ist sehr einfach, wie es ist.
wie man etwas, das wie folgt aussieht, in C richtig formatiert:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
Ich versuche, durch Vorlagen zu sortieren:
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{
}
funktioniert nicht - man kann keinen Funktionszeiger in das Argument einfügen. Es muss ein separater typedef sein
aber typedef kann nicht (oder doch??) eine Vorlage sein.
macroms wachsen aus diesen Problemen heraus :-)
wie man etwas, das so aussieht, in C richtig formatiert:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
Wir versuchen, Vorlagen zu verwenden:
scheitert - Sie können keinen Funktionszeiger in das Argument einfügen. Es muss einen separaten Typedef geben
aber typedef kann nicht (oder kann es??) eine Vorlage sein....
macroms wachsen aus diesen Problemen heraus :-)
Ich habe eine nicht offensichtliche Eigenschaft von MQL (und C++) entdeckt
Das heißt, der Standardwert wird beim Methodenaufruf (p.f1()) in den Parameter (p) eingesetzt, und dieser Wert wird der Methodenbeschreibung in der Klasse C1 entnommen - dem deklarierten Typ der Variablen ptr, nicht dem tatsächlichen Typ des Objekts obj.
(Was im Allgemeinen logisch ist).
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Fehler, Bugs, Fragen
Andrey Dik, 2022.06.24 08:38
MQL_VISUAL_MODE ist ein Spezialfall von MQL_TESTER?
MQL_OPTIMIZATION ist ein Spezialfall von MQL_TESTER?
Ich meine, MQL_TESTER umfasst sowohl MQL_VISUAL_MODE als auch MQL_OPTIMIZATION?
Ich brauche den EA, um einige Aktionen auszuführen, wenn ich in einem Diagramm und im visuellen Modus arbeite, aber nicht in allen anderen Fällen. Ich kann nicht herausfinden, wie ich die richtigen Flags für diesen Fall auswählen kann, wenn ich MQLInfoInteger() prüfe?
Ich könnte es sehr einfach machen, zum Beispiel so:
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
aber das Flag MQL_CHART_MODE ist in mql5 nicht vorgesehen.
Hat jemand eine Idee?
Hat irgendjemand eine Idee?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}