Au secours ! - page 4

 
Anton Tarasov:

Les gars, je ne suis pas encore très doué pour ça, comment je remplis les lignes?

double sto1=(prix de clôture de la barre) ;

double sto2=(prix ouvert de la nouvelle barre) ;

iClose(NULL,0,1)

iOpen(NULL,0,0)

Pour en savoir plus sur ces fonctions, consultez l'aide

 
Dmitry Fedoseev:
Je ne sais pas. Si tout est lent au départ, 10 "si" ne feront pas de différence. Mais je l'ai déjà remarqué sur le troisième. La nécessité de chaque nouvel ife est donc soigneusement évaluée.

Il n'y a que deux raisons pour le ralentissement, la première est que la condition dans l'instruction if est construite de manière incorrecte et la seconde est qu'après le déclenchement de l'instruction if, la suite de l'exécution est écrite de manière incorrecte dans le corps.

J'ai un analyseur de barres, il y a bien plus que 3 si avec des si internes, il passe en revue toutes les barres et leurs valeurs, fixe la somme et écrit dans la fenêtre qui s'ouvre, le tout en une fraction de seconde.

Les retards ne sont donc pas dus à "if" mais à son utilisation incorrecte.

 
Dmitry Fedoseev:

iClose(NULL,0,1)

iOpen(NULL,0,0)

Pour en savoir plus sur ces fonctions, consultez l'aide

Merci beaucoup Dimitri !
 
Alexey Busygin:

Il n'y a que deux raisons pour le ralentissement, la première est que la condition dans l'instruction if est construite de manière incorrecte et la seconde est qu'après le déclenchement de l'instruction if, la suite de l'exécution est écrite de manière incorrecte dans le corps.

J'ai un analyseur de barres, il y a bien plus que 3 si avec des si internes, il passe en revue toutes les barres et leurs valeurs, fixe la somme et écrit dans la fenêtre qui s'ouvre, le tout en une fraction de seconde.

Ainsi, le ralentissement n'est pas dû à if, mais à une mauvaise utilisation de celui-ci.

De quoi parlez-vous ? Que deux "si" fonctionnent deux fois plus lentement qu'un "si" ? Et trois si sont trois fois plus lents qu'un ?
 
Dmitry Fedoseev:
Qu'est-ce que vous voulez dire ? Que deux si sont deux fois plus lents qu'un si ? Et trois si sont trois fois plus lents qu'un ?
Et qu'en est-il lorsque du "code lourd" explicite est placé dans le corps du if ? Si un "if" ne fonctionne pas, ce qu'il contient ne compte pas.
 
forexman77:
Qu'en est-il lorsque du "code lourd" explicite est placé dans le corps du if ? Si un "if" ne fonctionne pas, ce qu'il contient ne compte pas.
Si un if ne fonctionne pas, alors ses conditions sont les suivantes
 
Alexey Busygin:
Si un if ne fonctionne pas, cela signifie que ses conditions sont

Ce que je voulais dire est ceci : j'ai des calculs assez lourds. Je fais généralement cela pour accélérer les choses : je place les calculs les plus simples dans des conditions if, et je cache le code lourd dans son corps.

Si les plus faciles ne fonctionnent pas, alors les plus difficiles ne seront pas vérifiées du tout.

 
forexman77:

Ce que je voulais dire est ceci : j'ai des calculs assez lourds. Je fais généralement cela pour accélérer les choses : je place les calculs les plus simples dans des conditions if, et je cache le code lourd dans son corps.

Si les légères ne fonctionnent pas, alors les lourdes ne sont pas vérifiées du tout.

Qu'entendez-vous par "calculs lourds" ? Un exemple de calculs légers et lourds est possible !
 
Alexey Busygin:
Qu'entendez-vous par "calculs lourds" ? Un exemple pourrait être léger et lourd !

Eh bien, voici un exemple. Il existe un indicateur à deux glissières relativement léger et un indicateur lourd. Les calculs "lourds" sont gourmands en ressources.

if (ma7_2 < ma15_2 && ma7_1 > ma15_1)//пересечение короткой скользящей вверх
{
indikator=iCustom(NULL,0,"TSI",p2,p3,p4,p5,0,1);//тяжелый для вычисления индикатор
//сюда можно вставить и кучу другого кода, если мувинги не пересеклись, то и последующих вычислений не будет
}
 
forexman77:

Eh bien, voici un exemple. Il existe un indicateur à deux glissières relativement léger et un indicateur lourd. Les calculs "lourds" sont gourmands en ressources.

Alors, quels sont les calculs lourds ? Rien ! J'ai eu des cas où il y avait"for(){for(){for(){for(){}}" dans le if triple forte et rien, aucune plainte, je l'ai appelé et ça a compté.