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
Par essence, tous les algorithmes sont les mêmes. Tout le monde modifie le tableau élément par élément, et tout le monde s'efforce d'obtenir la variante de Fedoseev, car elle ne comporte rien d'inutile.
Seulement dans mon cas, cela se fait par blocs en utilisant ArrayCopy, donc il y a un avantage de vitesse.
Et pour Pyotr ? Est-ce que tout le monde s'est "déchiré" ? Personne n'a mis son code dans le vérificateur. Je me demande comment, et dans quelle mesure, il a épaté tout le monde au conseil.
J'ai réfléchi aux raisons et j'ai corrigé deux lignes pour supprimer un tiers des éléments, et non 0,1 %.
Conclusion : calculer des adresses dans un tableau avec une distance arbitraire entre leurs numéros est toujours pire que de traiter des éléments dans une rangée à une étape donnée, d'autant plus à l'étape 1, le compilateur peut l'optimiser.
Oh, je vois ce que vous voulez dire. Cette phrase m'a échappé
Oui, bien sûr, c'est clair, mais quand même, même lorsque je dois jeter un élément sur trois (alors ArrayCopy ne fonctionne plus pour moi et les gains disparaissent) l'image est différente :
La variante de Pavlov ne fonctionne pas vraiment, mais vous avez aussi des sommes de contrôle correctes et incorrectes.
Et qu'en est-il de Peter ? Tu les as tous déchirés ? Personne n'a inséré son code dans le vérificateur. C'est intéressant de voir comment et dans quelle mesure il a épaté tout le monde au conseil d'administration.
Je ne comprends toujours pas son délire. Il n'a toujours pas fourni de fonction toute faite. Et si je le termine pour lui, il m'accusera encore de tout refaire. ))
Je ne comprends toujours pas son délire. Il n'a toujours pas fourni de fonction toute faite. Et si je le termine pour lui, il m'accusera encore de tout refaire. ))
En regardant son code depuis un téléphone portable, j'ai eu l'impression qu'il écrivait de manière "directe". C'est pour ça qu'il n'a pas fourni la fonction - il fait tout à la suite. Et son script n'est pas une fonction mais un simple code. Bien sûr, un tel script peut ne pas impliquer une fonction, mais... Je pense qu'il manque de goto pour ses vols :)
Mais c'est juste mon sentiment.
Correction de la variante de Pavlov.
Vos valeurs sont étranges. Peut-être avez-vous exécuté le script après le profilage ou le débogage sans recompiler le code ?
C'est comme ça que ça marche pour moi :
Et dans votre variante, il donne une somme de contrôle erronée. La création d'un tableau supplémentaire n'est pas du tout rentable, au contraire, elle ralentit le processus et consomme des ressources supplémentaires.
Corrigé.
Je l'ai lancé plusieurs fois, les résultats sont en suspens - l'ordinateur est très occupé, il ne sera pas libre avant samedi. Mieux vaut vérifier avec quelqu'un d'autre. Mais la somme de contrôle correspond maintenant. Pour les valeurs inutiles très éparses (0,1%)
2018.11.13 21:35:16.888 del_2 (GBPUSD.m,H1) option Pastushak : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 418662 microsecondes
2018.11.13 21:35:16.898 del_2 (GBPUSD.m,H1) variant Korotky : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 10683 microsecondes
2018.11.13 21:35:16.918 del_2 (GBPUSD.m,H1) variant Fedoseev : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 9740 microsecondes
2018.11.13 21:35:16.928 del_2 (GBPUSD.m,H1) variant Semko : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 4691 microsecondes
2018.11.13 21:35:16.944 del_2 (GBPUSD.m,H1) variant Pavlov : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 12512 microsecondes
2018.11.13 21:35:16.957 del_2 (GBPUSD.m,H1) variant Nikitin : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 10720 microsecondes
2018.11.13 21:35:16.978 del_2 (GBPUSD.m,H1) variante Vladimir : Somme de contrôle = 497057781 ; éléments - 998984 ; temps d'exécution = 17197 microsecondes
pour un tiers
2018.11.13 21:57:17.838 del_2 (GBPUSD.m,H1) variante Pastushak : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 65732 microsecondes
2018.11.13 21:57:17.838 del_2 (GBPUSD.m,H1) variant Korotky : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 4757 microsecondes
2018.11.13 21:57:17.848 del_2 (GBPUSD.m,H1) variant Fedoseev : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 4815 microsecondes
2018.11.13 21:57:17.858 del_2 (GBPUSD.m,H1) variant Semko : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 5812 microsecondes
2018.11.13 21:57:17.858 del_2 (GBPUSD.m,H1) variant Pavlov : Somme de contrôle = 1001157 ; éléments - 667065 ; temps d'exécution = 0 microsecondes
2018.11.13 21:57:17.858 del_2 (GBPUSD.m,H1) variant Nikitin : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 4749 microsecondes
2018.11.13 21:57:17.868 del_2 (GBPUSD.m,H1) variante Vladimir : Somme de contrôle = 668222 ; éléments - 667065 ; temps d'exécution = 9814 microsecondes
Pavlov s'est encore planté.
Ma conclusion sur l'accélération des boucles for est probablement incorrecte pour les langages MQL.
Et la création d'un tableau supplémentaire devrait réduire la durée de la transaction elle-même en supprimant les superflus, en gardant le tableau inchangé jusqu'au moment nécessaire de son démarrage. Jusqu'à présent, il n'a pas été question de préservation des données ici.
Et pour Peter ? A-t-il "déchiré" tout le monde ? Personne n'a mis son code dans le vérificateur. Je me demande comment, et dans quelle mesure, il a épaté tout le monde au conseil.
Mais j'ai réussi à mettre la main sur la version de Peter.
Il est assez compact et fonctionne même correctement. Félicitations à Pyotr.
Mais en termes de vitesse, il est le deuxième en partant de la fin. Ou la première place depuis la fin si on ne compte pas la version originale, complètement inadaptée à la vitesse, du propriétaire de ce fil.
:-) si vous n'essayez pas de garder l'ordre, le temps est O(1) , le nombre total d'étapes de toutes les boucles= taille du tableau.
trop paresseux pour coder :-)
1. rechercher les 3 premiers de gauche à droite.
2. Si elle est trouvée, cherchez alors un non-trois de droite à gauche, copiez-le à la place du 3.
continuer jusqu'à ce que 1,2 se soient intersectés, découper le tableau par le nombre de copies.
idéalement, c'est exactement la moitié du"tri à bulles" :-) si, au lieu de copier, vous faites un échange, le résultat sera un tableau partiellement ordonné (les 3 tiers sont déplacés vers la droite).
Plus de raffinement :
Désolé, on dit que vous êtes un bon marketeur, mais un programmeur... encore pire que moi.
1. La variable interne entière supprimée n'est pas initialisée, elle sera donc égale à zéro, mais ce n'est pas garanti. Dans la boucle, le décalage vers l'arrière ne se fera pas (la première fois) pour deux raisons à la fois - devinez laquelle.
2. (le plus important) vous déplacez d'abord les éléments du tableau, puis vous augmentez la valeur de la variable supprimée, et ensuite il y aura une boucle et le prochain déplacement se fera une fois de plus que nécessaire. En d'autres termes, votre code avalera le tableau original.
Il n'y a pas d'éléments supplémentaires dans le tableau :
Le tableau contient tous les éléments inutiles :
Désolé, on dit que vous êtes un bon marketeur, mais un programmeur... encore pire que moi.
Alexei, tu es en train de tuer un jeune talent...
ce marketeur n'a pas été capable de commencer à vendre pendant 5 ans... et vous dites qu'il est encore pire comme programmeur :-)