Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1428

 
ANDREY:

J'ai compris l'idée générale... en ce qui me concerne. Merci pour le conseil. Si vous le voulez bien, pouvez-vous me dire ce que signifie le signe dollar devant le nom du tableau $ array[] et devant la valeur $var

J'ai l'impression que ça ne vient pas de mql4 pour une raison quelconque.

oui, ce n'est pas dumql, mais le sens est le même

 
Aleksei Stepanenko:
Dans votre cas, la réponse à la question principale est intéressante : pourquoi devez-vous faire le tri chaque minute ? Comment votre idée peut-elle être mise en œuvre de manière plus économique ?

Le code que j'ai posté est juste un exemple du problème que je n'ai pas pu résoudre. Dans le code réel, le tri devra être effectué à chaque tick dans une colonne de 20 à 30 éléments. J'ai un processeur quadruple cœur et c'est pourquoi je ne ressens aucun retard lors des tests. De plus, le code actuel n'est pas très grand non plus. Mais je n'ai pas encore complètement représenté mon idée sous forme de code. Lorsque je l'aurai complètement codé, je commencerai à réfléchir à la manière de l'améliorer du point de vue des performances.

Ai-je bien compris que la recherche de 1000 valeurs dans mql prend moins de temps que le tri de 1000 éléments de tableaux ou toute autre opération avec des tableaux ? À propos, pourriez-vous me dire, s'il vous plaît, quelles opérations dans mql4 prennent beaucoup de temps ?

Merci pour votre aide

 
Vitaly Muzichenko:

oui, ce n'est pas dumql, mais le sens est le même

Quel est ce langage et ai-je raison de comprendre que certaines constructions de ce langage peuvent être utilisées dans mql ? Je pense que pour l'avenir, ces informations me seront utiles
. Merci pour votre aide.

 
ANDREY:

De quel langage s'agit-il et est-ce que je comprends bien que certaines constructions de ce langage peuvent être utilisées dans mql ? Je pense que pour l'avenir, ces informations me seront utiles
. Merci pour votre aide.

C'est php, mais je ne pense pas que vous ayez besoin de vous pencher dessus, il y asuffisamment de réponses surmql sur ce forum aussi.

 
Vitaly Muzichenko:

C'est php, mais je ne pense pas que vous ayez besoin de vous pencher dessus, il y asuffisamment de réponses surmql sur ce forum aussi.

Je l'ai. Merci.

 
ANDREY:

Je l'ai. Merci.

Vous devez bien réfléchir à la logique de ce que vous voulez obtenir comme résultat, puis commencer à écrire. Il y a beaucoup de choses sur lesquelles vous n'avez pas besoin de compter à chaque tic, mais seulement lorsque la situation change.

Il vous suffit de surveiller l'évolution de la situation et d'effectuer ensuite les calculs lourds, plutôt que de les faire inutilement à chaque tic.

 
Vitaly Muzichenko:

Vous devez bien réfléchir à la logique de ce que vous voulez que le résultat soit, puis commencer à écrire. Il y a beaucoup de choses qui n'ont pas besoin d'être calculées à chaque tic, mais seulement lorsque la situation change.

Pour ce faire, il suffit de surveiller l'évolution de la situation et d'effectuer ensuite des calculs lourds, plutôt que de les faire inutilement à chaque tic-tac.

J'ai déjà réfléchi à la logique et je comprends clairement ce que je veux obtenir à la sortie. Je comprends Mql4 (et un peu de Mql5) dans la mesure où je comprends une grande partie (mais pas la totalité) de ce dont j'ai besoin à partir des manuscrits. Et surtout, je comprends presque tout ce qui m'est expliqué sur ce forum. J'essaie maintenant de coder ma conception, mais pas n'importe comment, le code doit être exécuté rapidement, car je devrai le tester sur de nombreux instruments et sur de longues échéances. Et de toute façon .... C'est-à-dire qu'en ce moment, je fais de mon mieux pour coder mon concept par essais et erreurs (j'ai très peu d'expérience en codage) et en même temps pour apprendre quelque chose de nouveau et d'utile pour de futurs essais.

 
ANDREY:

Mais pas de façon aléatoire, mais de manière à ce que l'exécution du code prenne un minimum de temps.

Dites-nous donc à quoi sert le tri, nous pourrons peut-être trouver une idée pour une autre mise en œuvre.

 
Aleksei Stepanenko:

Dites-moi donc à quoi sert le tri, nous pourrons peut-être trouver une idée pour une autre mise en œuvre.

Merci pour votre aide. Vous m'avez intrigué ..... Je pense que dans un ou deux jours, je vais terminer une partie du code réel avec le tri et ensuite je le posterai ici pour connaître votre opinion professionnelle.

Et j'ai encore une question sur les informations que Maxim Kuznetsov m'a données dans le message. Il vient ici plus rarement que vous, donc je vous serais reconnaissant si vous pouviez m'expliquer quelque chose à propos de son code.

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7]) {

for(int i=0;i<7;i++)

for(int j=0;j<2;j++) {

dst[j][i]=src[i][j] ;

}

}

Je l'ai étudié attentivement et pendant longtemps et voici ce qui m'est venu à l'esprit...

1. il s'agit d'une fonction définie par l'utilisateur

2. il n'y a pas de référence à cela dans le code ci-dessus. C'est implicite dans le code principal dans void OnTick()

3. seuls les index des tableaux seront modifiés dans ce code. Je ne peux que deviner ce qui arrive aux valeurs des éléments du tableau.

Ce que je ne comprends pas, c'est ceci.

1. si l'exécution finale de cette fonction fait en sorte que dst[j][i] obtienne les nouvelles valeurs de dst[7][2], quel était l'intérêt des boucles ? Ne pourrait-on pas attribuer ces valeurs d'index à dst[j][i] immédiatement et explicitement ?

Est-ce que j'ai bien compris que si je change les valeurs des index dans ce code, les valeurs nécessaires des éléments du tableau seront automatiquement changées dans les nouvelles cellules ?

3) Je vous serais reconnaissant si vous pouviez écrire une description de la façon dont cette fonction personnalisée est appelée.

Le sujet des tableaux est assez nouveau pour moi, et bien que ces informations ne soient pas liées à mon code actuel, je suis sûr qu'elles me seront utiles à l'avenir. Et j'aime faire des réserves pour l'avenir par nature. :-)
Merci pour votre aide.

 

Non, c'est loin d'être un professionnel.

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }

Raison: