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
Renat, la question était plus théorique que pratique.
Pour ne pas vous perdre dans le brouillard, je vais vous renvoyer à un exemple tiré de l'aide iFractals. Il est vrai qu'il y a là un indicateur, mais simplifions la tâche à un seul calcul de la mise en page graphique par un script.
Supposons que j'aie l'intention de trouver les heures de toutes les barres fractales supérieures sur l'ensemble de l'histoire (ou sur sa partie substantielle sur une période moyenne où il y aura beaucoup de fractales). Ai-je bien compris qu'il vaut mieux perturberCopyTime de façon répétée dans la boucle à FrUpBuffer[shift]!=EMPTY_VALUE à une profondeur de 1 élément :
et obtenir un résultat plus rapide que de consommer l'historique en une fois avec CopyTime par profondeur de FrUpBuffer :
et ensuite dans la même boucle aux mêmes ifs, imprimer les valeurs de temps de la barre fractale ?Les deux tâches sont identiques, seules les mises en œuvre sont légèrement différentes.
Intuitivement, je comprends qu'il est plus long et plus coûteux de copier une énorme chaîne de temps de barre (à la fois fractale et vide) dans un tableau ; d'un autre côté, il est douteux de faire appel à CopyTime de manière répétée jusqu'à une profondeur de 1 élément.
Si la première variante est plus rapide, s'agit-il d'un gain absolu ou tout dépend-il du nombre total de fractales rencontrées (par exemple, il y en a beaucoup plus sur les petites TF) ?
À l'adresse https://www.mql5.com/ru/forum/3775/page59#comment_94865, j'ai posé une question sur le fait de placer la déclaration, la liaison, l'initialisation et d'autres actions sur de nombreux tampons similaires dans une boucle afin de réduire le code et d'améliorer la lisibilité et la gestion. J'ai reçu une réponse avec un exemple (classe, structure) et je l'ai comprise.
Maintenant, selon le même principe, j'ai essayé de limiter les affectations multiples du type #propriété :
et a rencontré au moins deux problèmes :
1. pour le niveau global est interdit, c'est-à-dire que sa première utilisation n'est pas antérieure à OnInit(), mais on sait que la #propriété est déclarée au niveau global avant toutes les autres fonctions;
2) Lorsque l'on essaie d'attribuer des propriétés aux indicateurs dans la boucle de OnInit() :
Le compilateur jure sur '#' (comme prévu) : '#property' - jeton inattendu.Pourriez-vous me dire si et comment l'idée est réalisable en principe ?
Pouvez-vous me dire comment déclarer un tableau de tableaux à deux dimensions ?
Quelque chose comme ça :
Pouvez-vous me dire s'il est possible de déclarer un tableau de tableaux à deux dimensions ?
On peut déclarer un tableau de structures dont les champs sont des tableaux, le compilateur ignore même les tableaux dynamiques dans la structure :
Pouvez-vous me dire comment déclarer un tableau de tableaux à deux dimensions ?
Quelque chose comme ça :
IgorM, x100intraday
Merci pour les options. Je pense que ça devrait faire l'affaire, je vais essayer.
IgorM, x100intraday
Merci pour les options. Je pense que ça devrait marcher, je vais essayer.
Au fait, le nom "Buffer" peut être remplacé par "_" ou d'autres énigmes, et l'appel sera complètement clair :
À propos, le nom "Buffer" peut être remplacé par "_" ou autre chose, afin que l'appel soit parfaitement clair :
Mais comment faire tout cela avec #property ? - Je me demande...
Aucune idée ?
Mais comment faire tout cela avec #property? - Je me demande...
Aucune idée ?