[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 874

 
Andrei01:
l'heure d'une nouvelle bougie est Time[0].

et comment puis-je déterminer plus précisément l'arrivée d'une nouvelle bougie?
 
reag:

et comment déterminer plus précisément l'arrivée d'une nouvelle bougie ?
mémoriser le précédent dans une variable et le comparer.
 
Andrei01:
mémoriser le précédent dans une variable et comparer.

Je vais essayer maintenant...
 
reag:

et comment identifier l'arrivée d'une nouvelle bougie ?


Il existe plusieurs options, en voici quelques-unes :

1. Lors du démarrage du conseiller expert, n'oubliez pas le nombre total de barres sur le graphique et surveillez les changements du nombre de barres pendant l'exécution du conseiller expert :

//начало кода - самый верх
int counted;

int init(){
   counted=Bars;     // запомним общее количество баров на активном ТФ
    Myorders();
return(0);
}

int start(){
   Myorders();
........................

// я рассполагаю этот код в самом конце ф-ции start() - мне так удобнее
  int bar = Bars;
  if (bar != counted ) { // сравним запомненное кол-во баров с текущим если они равны тогда нет нового бара на активном ТФ
      counted= bar;
// код который необходимо выполнить по закрытию/открытию бара
  }
return(0);
}

2. se souvenir de l'heure d'ouverture du dernier bar ; le code est à peu près le même,

utiliser datetime last=Time[0] ;

et comparez last==Time[0] --> si le dernier temps ouvert est le même que le dernier temps, s'il n'est pas égal, cela signifie que nous avons une nouvelle barre

je ne sais pas quel schéma est le plus efficace 1 ou 2 - j'ai des doutes sur le téléchargement automatique de l'historique vers le terminal, mais je ne vois aucun problème

 
IgorM:


Il existe plusieurs options, en voici quelques-unes :

1. Lors du démarrage du conseiller expert, n'oubliez pas le nombre total de barres sur le graphique et surveillez les changements du nombre de barres pendant l'exécution du conseiller expert :

cela ne fonctionnera pas. le nombre de barres est limité.
 
Andrei01:
ça ne marchera pas. le nombre de barres est limité.


Cela fonctionne, parce que le nombre total n'a pas d'importance, nous sommes seulement intéressés par le moment où le nombre de barres sur le graphique a changé, à ce moment la variable bar != compté, faites attention, je me souviens intentionnellement int bar = Bars ; - pour ne pas perdre la valeur de Bars, et ensuite comparer et assigner cette valeur compté = bar ; - et vous pourriez tout faire avec Bars sans la variable supplémentaire - mais j'ai décidé de vérifier deux fois

J'ai également mentionné qu'il pourrait y avoir un petit kazutz pendant l'auto-pompage de l'histoire - que ce soit bon ou mauvais, si nous utilisons l'heure d'ouverture du bar, cela fonctionnera certainement - l'heure d'ouverture du bar ne changera jamais.

 
IgorM:


Je ne m'intéresse qu'au moment où le nombre de barres du graphique change.

Une fois que la valeur maximale définie dans les paramètres est atteinte, le nombre de barres sur le graphique ne devrait pas augmenter. Bien qu'il puisse être qu'il saute plus ou moins un au maximum, je n'ai pas vérifié, alors il peut être possible de l'attraper, mais c'est une option non documentée.
 
Andrei01:
Après avoir atteint la valeur maximale définie dans les paramètres, le nombre de barres sur le graphique ne devrait pas augmenter. Bien qu'il puisse sauter, je n'ai pas vérifié, alors il peut être possible de l'attraper, mais c'est déjà une option non documentée.

C'était la question. J'ai vérifié quand le maximum est atteint... Bars ne change pas, mais reste égal à Max bars dans la fenêtre (voir propriétés).
 
reag:

c'était la question. J'ai vérifié quand le maximum est atteint... Bars ne change pas, mais reste égal à Max bars dans la fenêtre (voir propriétés).
Eh bien, il devrait l'être. Donc la première option ne fonctionnera pas.
 
Andrei01:
Eh bien, c'est comme ça que ça devrait être. Donc la première option ne fonctionnera pas.

Oui, la première option ne fonctionne pas, bien que je travaille sur un calendrier non standard, la deuxième fonctionne. Merci à tous !
Raison: