Un bug dans la fonction OrderSend() ? - page 6

 
tara:

Qu'est-ce qui est statique alors ? C'est plutôt Fatalic...
Pourquoi la statique ne fonctionne pas ? Cela fonctionne partout. Fatalique, naphtalique, pas question ! Je suis toujours en train de chercher des fautes en moi et de me vexer !
 
borilunad:
Pourquoi la statique ne fonctionne pas ? Ça marche partout où je vais. Fatalique, naphtalique, ce n'est pas possible ! Je suis toujours en train de chercher des erreurs en moi et de m'offenser !
Comme il ne prévoit pas l'initialisation des variables au redémarrage du programme, il DOIT le faire.
 
D'ailleurs, toutes les données statiques dans MQL4 ont la même maladie. Rappel : tous les tableaux sont statiques :)
 
tara:
Parce qu'il ne prévoit pas l'initialisation des variables au redémarrage du programme, il DOIT.
Comme dans toute fonction, même locale, la statique est d'abord présentée avec une certaine valeur, puis elle est comparée. Bien qu'au début je l'ai utilisé sans aucune idée, en le vérifiant en action, et ensuite vient la compréhension. Il est impossible de tout comprendre en même temps, et tout ne peut pas être arrangé aussi facilement en même temps. :) Je ne touche pas aux tableaux, c'est trop de travail pour moi !
 
granit77:
Y a-t-il d'autres programmeurs qui peuvent le confirmer ? Un seul vote ne suffirait pas.
Victor, je ne suis pas un programmeur, malheureusement. Je suis un amateur...
 
tara:

Vous pouvez simplement modifier certains paramètres. La réaction ne se produira qu'après le premier tick d'une nouvelle barre sur le TF fixé.

Mais vous vous êtes vous-même demandé pourquoi le fonctionnement de l'EA est inexplicable sur des TF plus élevés :)



Je me demande s'il y a un lien entre le premier tick d'une nouvelle barre et le testeur... Je ne le vois pas. Un testeur est un testeur. Et un tableau... est un tableau... (Je ne parle pas d'un testeur, mais de la même démo ou réelle).

De plus, le manuel dit... "S'il n'y a pas d'initialisation explicite, alors une variable statique est initialisée par zéro".

Il n'est donc pas nécessaire, comme vous l'avez dit, Alexey, d'attribuer la valeur 0 à la variable lastBarTime dans INIT. Il sera à zéro lorsque le programme démarrera.

 
hoz:


Je me demande s'il y a un lien entre le premier tick d'une nouvelle barre dans le TF de travail et le testeur... ...eh bien, je ne le remarque pas... Un testeur est un testeur. Et un tableau... est un tableau... (Je ne parle pas du testeur, mais de la même démo ou du même réel).

En outre, le manuel dit. "S'il n'y a pas d'initialisation explicite, une variable statique est initialisée par zéro".

Il n'est donc pas nécessaire, comme vous l'avez dit, Alexey, d'attribuer la valeur 0 à la variable lastBarTime dans INIT. Il sera à zéro lorsque le programme démarrera.


Non, ça ne le sera pas. C'est un bug :)
 

Bien que ce point(du manuel) ne soit pas tout à fait clair pour moi :

" Les variables statiques sont initialisées une fois avant d'appeler la fonction spécialisée init(), c'est-à-dire que la valeur de cette variable n'est pas perdue lorsqu'on quitte la fonction, à l'intérieur de laquelle une variable statique est déclarée.

Qu'est-ce que cela a à voir avec " avant d'appeler la fonction spéciale init() " et après " c'est-à-dire lorsque vous quittez une fonction utilisateur (à en juger par le contenu) dans laquelle une variable statique est déclarée ? "

Une fonction dans laquelle une variable statique est déclarée peut se trouver à la fin d'un programme... c'est-à-dire à la fin du code ou ailleurs. La fonctioninit() est exécutée une fois juste avant le démarrage du programme. Il s'avère que c'est incohérent. Comment initialiser une variable avant la fonctioninit() ?

 
hoz:

Bien que ce point(du manuel) ne soit pas tout à fait clair pour moi :

"Les variables statiques sont initialisées une fois avant d'appeler la fonction spécialisée init(), c'est-à-dire que la valeur de cette variable n'est pas perdue lorsqu'on quitte la fonction, à l'intérieur de laquelle une variable statique est déclarée.

Qu'est-ce que cela a à voir avec " avant d'appeler la fonction spéciale init() " et après " c'est-à-dire lorsque vous quittez une fonction utilisateur (à en juger par le contenu) dans laquelle une variable statique est déclarée ? "

Une fonction dans laquelle une variable statique est déclarée peut se trouver à la fin d'un programme... c'est-à-dire à la fin du code ou ailleurs. La fonctioninit() est exécutée une fois juste avant le démarrage du programme. Il s'avère que c'est incohérent. Comment initialiser une variable avant la fonctioninit() ?

Eh bien, si cela vous intéresse, tous les modes de gestion de la mémoire actuellement utilisés ont été mis en œuvre pour la première fois dans le PL/1. Il en existe quatre : automatique, dynamique, statique et basé. C est venu après et a pleinement adopté ces normes.

 
Je vais me coucher maintenant :)