Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 261

 
tiiga:

Eh bien, il y a beaucoup de sujets concernant les indices et les paramètres à utiliser pour ceux-ci - j'ai donc décidé de faire un programme qui sélectionne son propre ensemble d'indices.

Il s'agit d'un réseau neuronal d'environ 100 neurones (vous pouvez en changer le nombre, mais même à 10, il fonctionne encore lentement), chacun ayant son propre ensemble d'indices différents, de 2 à 20. Si un neurone est tué pour cause d'échec, il reçoit un nouvel ensemble d'indices.

Optimisez d'abord l'algorithme, puis le code.
 
L'algorithme fonctionne parfaitement, le même algorithme, lorsque je ne travaillais pas avec des dindes, mais que j'attribuais moi-même des paternons, permettait d'analyser des millions de neurones assez rapidement. (environ une heure pour quelques années d'histoire), ce sont les platines qui ralentissent.
 
et avec un seul dynamomètre, cela fonctionnait aussi plus ou moins rapidement, mais dès que j'augmentais le nombre de dynamomètres, cela ralentissait beaucoup
 
tiiga:
Et cela a fonctionné plus ou moins rapidement avec un seul indicateur dynamique, mais lorsque j'ai augmenté le nombre d'indicateurs, tout s'est ralenti de manière drastique.

Je dois l'asperger d'eau bénite ?

Quel autre conseil puis-je vous donner ? Vous vous en tenez au fait que vous avez raison. La logique est parfaite, l'algorithme est super. Tout est réglé avec précision, il n'y a aucun bogue, le code entier est optimisé pour la vitesse d'exécution.

Je peux vous donner le numéro de téléphone de Hottabych.

 

la question était

1) le fonctionnement de l'indicateur est-il différent s'il est appelé par iCastom ?

2) Est-il raisonnable d'essayer d'extraire les calculs de l'indicateur et de les coller dans le Conseiller Expert ?

J'ai aussi une idée : lorsque je clique sur Aide, la version 509 est affichée. J'ai lu qu'il y avait des versions plus récentes et que la nouvelle version pourrait fonctionner plus rapidement.

 
tiiga:

la question était

1) le fonctionnement de l'indicateur est-il différent s'il est appelé par iCastom ?

2) Est-il raisonnable d'essayer d'extraire les calculs de l'indicateur et de les coller dans le Conseiller Expert ?

J'ai aussi une idée - quand je clique sur l'aide, il est indiqué que j'ai la build 509 - j'ai lu qu'il y a des builds plus récentes et que la nouvelle pourrait fonctionner plus rapidement - peut-être que cela aidera ?

Dans votre cas (théoriquement), étant donné que lorsque vous appelez l'indicateur avec de nouveaux paramètres, le terminal charge une nouvelle copie de l'indicateur et recalcule tout le volume historique sur le graphique, il est logique de "couper les calculs de l'indicateur". N'oubliez pas d'ajouter le paramètre du nombre de barres calculées. Mais le bâton est toujours à "double tranchant" : un indicateur correct recalcule 1-2 barres à chaque tick, le code dans le conseiller expert calculera un certain nombre de barres pour chaque tick (et généralement le calcul de l'algorithme de l'indicateur nécessite plus que les 1-2 barres mentionnées précédemment).

De tels systèmes complexes (adaptatifs) doivent être exécutés à l'arrivée d'une nouvelle barre. Une nouvelle construction (pour l'instant expérimentale) n'aidera pas.

P.S. Un exemple d'"arrachage" d'un code indicateur peut être vu ici.

 

Merci, ça me semble correct.

J'ai juste besoin de comprendre un peu le code :)

Heureusement qu'il est bien commenté.

 
TarasBY:

Dans votre cas (théoriquement), étant donné que lorsque vous appelez l'indicateur avec de nouveaux paramètres, le terminal charge une nouvelle copie de l'indicateur et recalcule l'ensemble du volume historique sur le graphique, il est logique d'"arracher les calculs de l'indicateur". N'oubliez pas d'ajouter le paramètre du nombre de barres calculées. Mais le bâton est toujours à "double tranchant" : un indicateur correct recalcule 1-2 barres à chaque tick, le code dans le conseiller expert calculera un certain nombre de barres pour chaque tick (et généralement le calcul de l'algorithme de l'indicateur nécessite plus que les 1-2 barres mentionnées précédemment).

De tels systèmes complexes (adaptatifs) doivent être exécutés à l'arrivée d'une nouvelle barre. La nouvelle version (pour l'instant expérimentale) ne vous aidera pas.

P.S. Un exemple d'"arrachage" du code de l'indicateur peut être vu ici.


Mais il existe une autre option - organiser sur la base de l'EA des tampons dynamiques, comme dans l'indicateur, et transférer toute la logique à l'EA. Dans ce cas, la seule chose dont le programmeur doit s'occuper est la taille des tampons, qui s'adapte automatiquement au nombre de barres de l'historique (comme le terminal le fait pour l'indicateur). En d'autres termes, nous obtenons les avantages du conseiller expert et de l'indicateur dans un seul et même package (de plus, le nombre de tampons est presque illimité).


Comment organiser les tampons dynamiques dans un EA, je l'ai montré une fois, je peux le répéter si vous en avez besoin.

 
J'ai entendu dire que les indulateurs standard peuvent également être modifiés - est-il possible de leur faire lire un nombre limité de mesures plutôt que l'ensemble de l'histoire ?
 
tiiga:
Je pensais avoir entendu dire que les indicateurs standards pouvaient également être modifiés - est-il possible de leur faire lire un nombre limité de barres au lieu de l'historique complet ?

Bien sûr, il suffit de fixer une condition appropriée, dans les exemples standards, il s'agit d'une limite variable.