Caractéristiques du langage mql5, subtilités et techniques - page 223
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pour un cas particulier où un champ numérique est utilisé pour le tri (la situation la plus courante), j'ai écrit une variante qui est plusieurs ordres de grandeur plus rapide que la précédente. Mais elle consomme deux fois plus de mémoire. Elle est pertinente pour les grands tableaux.
Application (avec mesure du temps d'exécution).
Résultat.
Que pensez-vous de cette option ?
Que pensez-vous de ceci ?
Je ne peux pas le tester.
Ne pas vérifier.
Bibliothèque QuickSort ici
La bibliothèque QuickSort est ici
Merci, c'est une très bonne option ! Il me semble que j' ai aussi QuickSort, mais pour une raison que j'ignore, il est extrêmement lent.
Votre option pourrait être enveloppée dans des macros d'une manière ou d'une autre pour la rendre plus rapide à utiliser...
Merci, c'est une très bonne option ! Il me semble que j' ai aussi QuickSort, mais pour une raison que j'ignore, les freins sont sauvages.
Votre option pourrait être enveloppée dans des macros pour la rendre plus rapide à utiliser....
Je ne vois pas pourquoi vous avez besoin de macros. C'est très simple comme ça.
comment formater correctement quelque chose qui ressemble à ceci en C :
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
? ??
en essayant de trier des modèles :
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{
}
ne fonctionne pas - vous ne pouvez pas mettre un pointeur de fonction dans l'argument. Il doit y avoir un typedef séparé
mais le typedef ne peut pas (ou peut-il ??) être un modèle.
Les macroms s'affranchissent de ces problèmes :-)
comment formater correctement quelque chose qui ressemble à cela en C :
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
? ??
Nous essayons d'utiliser des modèles :
échec - on ne peut pas mettre un pointeur de fonction dans l'argument. Il doit y avoir un typedef séparé
mais le typedef ne peut pas (ou peut-il ??) être un template....
Les macroms s'affranchissent de ces problèmes :-)
J'ai découvert une caractéristique peu évidente de MQL (et de C++)
C'est-à-dire que la valeur par défaut est substituée au paramètre (p) au moment de l'appel de la méthode (p.f1()) et cette valeur est tirée de la description de la méthode dans la classe C1 - le type déclaré de la variable ptr, et non le type réel de l'objet obj.
(Ce qui, en général, est logique).
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Erreurs, bugs, questions
Andrey Dik, 2022.06.24 08:38
MQL_VISUAL_MODE est un cas particulier de MQL_TESTER ?
MQL_OPTIMIZATION est un cas particulier de MQL_TESTER?
Je veux dire que MQL_TESTER inclut à la fois MQL_VISUAL_MODE et MQL_OPTIMIZATION ?
J'ai besoin que l'EA effectue certaines actions lorsqu'il travaille sur un graphique et en mode visuel, mais pas dans tous les autres cas. Je n'arrive pas à comprendre comment sélectionner les bons drapeaux pour ce cas lors de la vérification de MQLInfoInteger() ?
Je pourrais le faire très simplement, par exemple, comme ceci :
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
mais l'indicateur MQL_CHART_MODE n' est pas fourni dans mql5.
Quelqu'un a-t-il une idée ?
Quelqu'un a-t-il une idée sur la question ?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}