Le changement de TF est un problème - page 7

 
Vasyl Nosal:

Génie.

Avez-vous essayé de passer à une paire sans historique, puis à une autre TF ?

Oui, j'admets mon erreur. Le code montre ce qu'il faut faire si Close[i] > Close[i+1] et ce qu'il faut faire si Close[i] < Close[i+1]. Mais il ne précise pas ce qu'il faut faire si Close[i] == Close[i+1]. Ce sont les barres où ces flèches simples tombent.

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],
                const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
   int nStartBar = rates_total - MathMax(prev_calculated, 2);

   for(int i = nStartBar; i >= 0; i--)
   {
      if(Close[i] >= Close[i+1])
      {
         up_arr[i] = Low[i] - arrow_indent * _Point; //up arrow
         down_arr[i] = 0;
      }
         
      if(Close[i] < Close[i+1])
      {
         up_arr[i] = 0;
         down_arr[i] = High[i] + arrow_indent * _Point; //down arrow
      }
   }

   return(rates_total);
}
 
Karputov Vladimir:

Vous savez, faisons ceci : prenez le code 1.43 de ce post et commentez les lignes :

et regardez le résultat lorsque vous faites défiler le graphique vers l'arrière de l'histoire et que vous vous assurez que l'histoire est chargée.

Eh bien, je l'ai fait. Réalisant, cependant, l'inutilité de cette action. :) Le résultat est attendu - l'indicateur fonctionne sans problème.
 
Vasyl Nosal:

Génie.

Avez-vous essayé de passer à une paire sans historique, puis à une autre TF ?

Que voulez-vous dire par "pas d'histoire" ?
 
Sergei Vladimirov:

Uh-huh, j'admets un bug. Le code précise ce qu'il faut faire si Close[i] > Close[i+1], et ce qu'il faut faire si Close[i] < Close[i+1]. Mais il ne précise pas ce qu'il faut faire si Close[i] == Close[i+1]. Ce sont les barres où ces flèches simples tombent.

C'est bien.
 
Alexey Viktorov:
Que voulez-vous dire par "là où il n'y a pas d'histoire" ?
Lorsque le graphique d'une paire de devises ne s'est pas ouvert ou s'est ouvert depuis très longtemps.
 
Sergei Vladimirov:

QU'EST-CE QUE C'EST ?


C'est pour qu'il n'y ait pas de sortie si quoi que ce soit.
 
Vasyl Nosal:
C'est pour qu'il n'y ait pas de sortie si quoi que ce soit.
Qui sont-ils ? ))
 
Sergei Vladimirov:
Qui sont-ils ? ))
Tableau hors de portée
 
Vasyl Nosal:
Tableau hors de portée
Pourquoi avez-vous besoin d'une marge aussi importante, jusqu'à 20 barres ? C'est à l'œil ? )) Dans le cas général, vous ne pouvez pas aller au-delà de [rates_total-1], et dans ce code - au-delà de [rates_total-2] parce que la barre précédente est appelée dans le corps de la boucle. Donc, nous devons commencer le calcul à partir de la barre [rates_total-2].
 
Sergei Vladimirov:
Et pourquoi prendre une si grande marge - 20 barres ? C'est à l'œil ? )) Dans le cas général, nous ne pouvons pas aller au-delà de [rates_total-1], et dans ce code - au-delà de [rates_total-2] parce que la barre précédente est appelée dans le corps de la boucle. Donc, nous devons commencer le calcul à partir de la barre [rates_total-2].

Je comprends. La prochaine étape sera de savoir combien de barres totales il faut compter et combien il faut recalculer.

Quelqu'un va entrer plus de barres qu'il n'y en a. Ce sera une sortie.

Oui, à l'œil.

Raison: