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
Bravo ! Après avoir corrigé quelques erreurs, vous m'avez fait tomber de mon piédestal même sans utiliser ArrayCopy. Échec et mat. :))
for(;;)
à
Sortie toujours par la pause
P.S. Juste pour le fun, j'ai fait une copie directe sur tout le tableau.Ça vaut probablement la peine de changer
à
Sortie toujours par la pause
Fonctionne plus lentement que :
Si vous participez à ce concours sans aucune règle, vous devez copier le code du "leader" (actuellement Kuznetsov) et le modifier en fonction du comportement du système décrit ci-dessus.
Cela conduit à un gain stable d'environ 20 msec par rapport au temps d'exécution initial de 740 msec :
À propos, je suis curieux de savoir comment les résultats changeront si le tableau d'origine est une série. ArraySetAsSeries(arr,true)
Si nous prenons ce concours sans règles, nous copions le code du "leader" (actuellement Kuznetsov) et le modifions en fonction du comportement du système décrit ci-dessus.
Nous obtenons un gain stable d'environ 20 ms par rapport au temps d'exécution initial de 740 ms :
Cela vaut la peine de l'ajouter. Si vous ne vous souciez pas de la séquence des éléments du tableau. Alors oui, c'est une excellente variante. S'il est important de maintenir la cohérence, alors il faut autre chose.
Pendant qu'on y est, voici ma version :
les résultats :
S.S. En principe, la limite de vitesse a été atteinte. La prochaine étape est juste la micro-optimisation et le tripotage de la boucle for :
Je pense que le résultat de Nikolaï est une utilisation habile de ces micro-optimisations.
Il y a un tableau contenant un ensemble de données de type 1,2,3,6,9,5,6,3,25,6,8,7,4 ; vous devez supprimer par exemple les valeurs 3 et obtenir le même tableau sans 3 et sans espaces vides dans la sortie...
Je cherche le moyen le plus rapide d'effacer les valeurs inutiles d'un tableau...
L'exemple suivant me vient à l'esprit
Peut-être existe-t-il un moyen plus rapide et moins cher ?
Vladimir, pourquoi est-ce nécessaire ?
Si je comprends bien, il faut le faire avec le tampon de l'indicateur. Mais ne serait-il pas plus logique de remplacer les valeurs vides et/ou "inutiles" par la valeur précédente ou, par exemple, par la moyenne arithmétique des valeurs extrêmes ? Il sera alors beaucoup plus rapide et la dimension du tableau restera la même.
Vladimir, pourquoi est-ce nécessaire ?
Si je comprends bien, il faut le faire avec le tampon de l'indicateur. Mais ne serait-il pas plus logique de remplacer les valeurs vides et/ou "inutiles" par la valeur précédente ou, par exemple, par la moyenne arithmétique des valeurs extrêmes ? Il sera alors beaucoup plus rapide et la dimension du tableau restera la même.
Vladimir, pourquoi est-ce nécessaire ?
Si j'ai bien compris, vous devez le faire avec un tampon indicateur. Mais ne serait-il pas plus logique de remplacer les valeurs vides et/ou "inutiles" par la valeur précédente ou la moyenne arithmétique des valeurs extrêmes, par exemple ? Il sera alors beaucoup plus rapide et la dimension du tableau restera la même.
Quand il y a plusieurs EAs avec un grand nombre de positions/ordres ouverts dans mql4, à mon avis, il est plus facile de garder le tableau avec les tickets et de vérifier si l'ordre est fermé en passant par le tableau au lieu d'essayer toutes les positions ouvertes avec la vérification du symbole et du magicien. Ainsi, si l'ordre est fermé, il doit être "rayé" du tableau. Dans de tels cas, j'avais l'habitude de copier le tableau "dans lui-même" et de réduire la taille du tableau d'une unité. Cela a été suggéré par Vasiliy Sokolov, merci beaucoup, je saurai que ce n'est pas l'option la plus difficile, car je n'ai jamais pensé à la vitesse. La raison pour laquelle la tâche consistait à supprimer plusieurs éléments égaux est une autre question...
ps Pendant que j'écrivais ceci, la réponse est déjà là. Donc la question est déjà fausse aussi... ))))))Quand il y a plusieurs EAs avec un grand nombre de positions/ordres ouverts dans mql4, à mon avis, il est plus facile de garder le tableau avec les tickets et de vérifier si l'ordre est fermé en passant par le tableau au lieu d'essayer toutes les positions ouvertes avec la vérification du symbole et du magicien. Ainsi, si l'ordre est fermé, il doit être "rayé" du tableau. Dans de tels cas, j'avais l'habitude de copier le tableau "dans lui-même" et de réduire la taille du tableau d'une unité. C'est Vasiliy Sokolov qui l'a suggéré, merci beaucoup, je vais savoir que ce n'est pas l'option la plus difficile, car je n'avais jamais pensé à la vitesse. La raison pour laquelle la tâche consistait à supprimer plusieurs éléments égaux est une autre question...
ps Pendant que j'écrivais, la réponse est déjà là. Il s'avère que la question est déjà fausse aussi... ))))))J'ai à peu près tout compris à ce moment-là.
Si nous avons un tableau d'ordres, l'ordre n'est pas important, il est donc plus raisonnable d'utiliser la variante de Kuznetsov en remplissant les "trous" avec des valeurs de la partie supérieure du tableau, afin de ne pas déplacer le reste des éléments du tableau. C'est bien sûr plus rapide.