Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1900
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
Quelle idée géniale ! Qui en a eu l'idée et quelle est son application pratique ? Je doute qu'il soit utilisé exclusivement pour les graphiques à fenêtre coulissante...
Quelle idée géniale ! Qui l'a inventé et quelle est son application pratique ? Je doute qu'il soit utilisé exclusivement pour les graphiques à fenêtre coulissante...
Il est vrai qu'il n'est pas déraisonnable de savoir combien de données vous pouvez récupérer. Parce que ce tampon circulaire "marche sur ses propres pieds", en raison de sa longueur limitée...
Voici la meilleure façon de le faire.
J'ai vérifié, oui c'est une bonne solution - je la garde.
Mais je voudrais quand même vérifier siArrayCopy fonctionne
---
J'ai décidé de le faire de cette façon, car ce n'est pas agréable de déchirer le graphique :
Dans l'exemple de Vitali, vous pouvez utiliser cette idée. Mais il n'y a aucun moyen d'éviter la boucle (qui est critique pour elle). Dans tous les cas, nous devons transférer les données du tampon circulaire au tampon indicateur en utilisant la boucle ou la fonction ArrayCopy. Et qu'est-ce qui va changer ?
Quelle idée géniale ! Qui en a eu l'idée et quelle est son application pratique ? Je doute qu'il soit utilisé exclusivement pour les graphiques à fenêtre coulissante...
Qui l'a inventé - pas de fin en vue, je pense qu'il a été réinventé plusieurs fois, l'idée est assez évidente.
Je l'utilise, par exemple, pour calculer la moyenne mobile de données qui ne sont pas stockées dans l'historique, mais qui ont seulement une valeur instantanée.
Elle est utilisée dans la transmission de données depuis des temps immémoriaux.
Dans l'exemple de Vitali, vous pouvez utiliser cette idée. Mais il n'y a aucun moyen d'éviter la boucle (qui est critique pour elle). Dans tous les cas, nous devons transférer les données du tampon circulaire au tampon indicateur en utilisant la boucle ou la fonction ArrayCopy. Et qu'est-ce qui serait différent ?
Il est possible d'insérer une nouvelle valeur et de la copier immédiatement à l'endroit souhaité. Le cycle de copie demeure, mais il n'y a pas de cycle de décalage.
J'ai vérifié, oui c'est une bonne solution - je la garde.
Mais j'aimerais quand même vérifier comment fonctionneArrayCopy.
Avec ArrayCopy, vous ne pouvez transférer des données qu'à partir d'une autre matrice. Mais vous ne pouvez pas les déplacer. Vous pouvez utiliser un tampon en anneau et déplacer les données depuis celui-ci... Mais comment le faire avecArrayCopy s'il a un mouvement circulaire... Je ne comprends pas. Et, en principe, il n'a pas besoin d'être compris. Le déplacement habituel utilisant une boucle n'est pas si critique en termes de vitesse. En tout cas, je ne connais pas de plus rapide. Qu'est-ce qui peut être plus rapide, seulement l'assembleur ? Quoi qu'il en soit, laissez-le comme il est. Ça va marcher.
Pour qu'une nouvelle valeur puisse être insérée et copiée immédiatement à l'endroit correct. Le cycle de copie demeure, mais il n'y a pas de cycle de décalage.
Donnons un exemple, il s'agirait de l'
Le code pour la mise à niveau est
Avec ArrayCopy, vous ne pouvez transférer des données qu'à partir d'une autre matrice. Mais il n'est pas possible de les déplacer. Vous pouvez utiliser un tampon circulaire et transférer des données à partir de celui-ci... Mais comment le faire avecArrayCopy s'il a un mouvement circulaire... Je ne comprends pas. Et, en principe, il n'a pas besoin d'être compris. Le déplacement habituel utilisant une boucle n'est pas si critique en termes de vitesse. En tout cas, je ne connais pas de plus rapide. Qu'est-ce qui pourrait être plus rapide, l'assembleur ? Quoi qu'il en soit, laissez-le comme il est. Ça va marcher.
Actuellement, le code fonctionne, mais la vitesse est discutable à cause de la boucle.
Qu'est-ce que ça va être ?
Je veux tester quelques cuisines pour la capacité d'arbitrage, l'indicateur va dessiner la différence de valeurs, fonctionne sur un timer une fois toutes les 100ms. Les délais d'exécution du code sont critiques dans cette situation.