Obtenir le nombre de décimales de n'importe quel nombre (pas seulement les guillemets) en contournant Digits() dans MQL4 et MQL5 - page 19

 
Merci, je le testerai demain.
 
Super, dans mql5 ils ont supprimé la direction de tri de la fonction ArraySort, dans l'article sur la migration depuis mql4 ils conseillent d'utiliser ArraySetAsSeries à la place.... Mais cela ne fonctionne pas avec les tableaux multidimensionnels =))) Hier, j'ai modélisé ArraySort à partir de rien)))
 
Dmitry Fedoseev:

Je choisis l'option de conversion en chaîne de caractères.

j'ai légèrement modifié votre option

int ds(double v){
   string s=(string)v;
   int l=StringLen(s);
   int p=StringFind(s,".",0);
   return((p>0)?l-p-1:0);
}
 
Igor Makanu:

Merci, je l'ai, je vais le tester demain.

J'ai oublié une précision importante :)

#define    test(M,S,EX)        {uint mss=GetTickCount();int nn=(int)pow(10,M);for(int tst=0;tst<nn&&!_StopFlag;tst++){EX;} \
                                printf("%s: loops=%i ms=%u",S,nn,GetTickCount()-mss);}

Sinon, vous pouvez être suspendu pendant longtemps si vous échouez).

Taras Slobodyanik:

J'ai modifié un peu ta version.

Excellente option, mais elle fonctionne 10 fois plus lentement que celles déjà proposées ci-dessous

 
fxsaber:

Puis-je réfléchir à une implémentation rapide de la traduction d'un tableau de structures (longueur multiple de sizeof(int)) vers et depuis un tableau int[]?

L'application pratique est l'échange rapide de données via les ressources. Ma variante est trop universelle, ce qui la ralentit.


Ces fonctions sont apparues dans MT5

Ils n'existent pas dans MT4 et n'existeront probablement pas. Par conséquent, nous devons résoudre le problème avec et sans ces fonctions (si elles sont utiles).

Le résultat sera utile à un grand nombre d'utilisateurs du forum ici.


J'ai écrit un modèle très simple pour le brainstorming avec ma solution à ce problème.


Résultat

La structure est une chaîne de caractères. Sa longueur ne peut être un multiple de int ou non int.

 
Ilya Malev:
C'est génial, mql5 a supprimé la direction de tri de la fonction ArraySort. Il semble que dans l'article sur la migration depuis mql4 ils recommandent d'utiliser ArraySetAsSeries à la place.... Mais cela ne fonctionne pas avec les tableaux multidimensionnels =))) Hier, j'ai modélisé ArraySort à partir de rien)))

Articles

Méthodes de tri et leur visualisation à l'aide de MQL5

Dmitrii Troshin, 2017.05.26 09:44

Une bibliothèque spéciale Graphic.mqh a été créée pour travailler avec des graphiques dans MQL5. Cet article décrit un exemple de son utilisation pratique et explique l'essence du triage. Pour chaque tri, il existe au moins un article distinct, et des études entières ont été publiées sur certains d'entre eux, aussi seule l'idée générale est décrite ici.

 
Andrey Khatimlianskii:

Existe-t-il une comparaison de la vitesse de tri avec l'habituel ArraySort intégré sur un échantillon aléatoire ? Existe-t-il une méthode qui trie les données aléatoires plus rapidement en moyenne...

Ou pas plus vite, mais au moins pareil. Ou pas aussi vite, mais au moins pas plus de deux fois plus longtemps. Sans aucune Dll et autres trucs comme le multithreading
 
Алексей Тарабанов:

La structure est une chaîne de caractères. Sa longueur ne peut pas être un multiple de int, ou ne peut pas être int.

La multiplicité est la condition du problème.

 
Je ne peux pas passer outre.
Je ne manquerai pas de participer quand j'aurai accès à l'ordinateur.
Après un rapide coup d'œil, j'ai déjà des idées sur la façon d'améliorer le résultat de 10 à 20 %.

 
Nikolai Semko:
Je ne peux pas passer outre.
Je ne manquerai pas de participer quand j'aurai accès à l'ordinateur.
J'ai déjà quelques idées sur la façon d'améliorer le résultat de 10 à 20 %.

Le résultat de quoi ?