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

 
Alexey Viktorov:
Où est-il écrit qu'il ne peut y avoir de sous-charge de l'histoire en même temps que la nouvelle barre ?

Où est-il écrit que l'histoire doit être suivie ?
Pendant le chargement, les calculs de l'indicateur peuvent être ignorés - car il n'y a pas d'historique complet (les barres peuvent apparaître n'importe où).
D'où la conclusion : ce n'est qu'une fois que tous les bars ont été construits qu'il peut y avoir un nouveau bar.
Sinon, tous les bars sont "vieux".

 
m-r LSV:

Ça n'a pas aidé :(

montrer le code.

 
Taras Slobodyanik:

vous avez besoin de voir ce que vous avez construit.

Taras ! !! L'homme pose des questions sur MQL5 ! !! Et MT5 est indexé de gauche à droite... Il s'avère qu'il ne faut pas compter 1 barre, mais rates_total-2

 
Taras Slobodyanik:

Où est-il écrit que vous devez surveiller le chargement de l'historique ?
Pendant le chargement, les calculs des indicateurs peuvent être ignorés - car il n'y a pas d'historique complet.
D'où la conclusion : ce n'est qu'une fois que tous les bars ont été construits qu'il peut y avoir un nouveau bar.
Sinon, toutes les barres sont "anciennes".

Veuillez me conseiller sur la manière de le faire avec l'historique.
La chose est, il est prévu, de vérifier quelque chose sur l'histoire de cours.
J'ai quelques observations et j'aimerais utiliser des tampons pour les flèches.

Mais cela viendra plus tard.

 
Taras Slobodyanik:

montrer le code.

//+------------------------------------------------------------------+
//|                                                    test.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window

#property indicator_buffers 2
#property indicator_plots   2

#property indicator_label1  "Signal UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2

#property indicator_label2  "Signal DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2

double up[];
double dn[];

datetime fin=0, last=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
    IndicatorSetString(INDICATOR_SHORTNAME, "Prototype");
    
   SetIndexBuffer(0,up,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_ARROW,233);
    
   SetIndexBuffer(1,dn,INDICATOR_DATA);
   PlotIndexSetInteger(1,PLOT_ARROW,234);
   
   
  
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
   {
   fin=iTime(Symbol(), PERIOD_M1 ,0);
   if(last==fin) return(rates_total);
   last=fin;
   
   if(rates_total - prev_calculated == 1)
      {
      //Print("Новый бар");
      if(open[1] > close[1])
           {
           Print("Dn");
           }
      else if(open[1] < close[1])
           {
           Print("Up");
           }
      }

return(rates_total);
}
 
Alexey Viktorov:

Taras ! !! L'homme pose des questions sur MQL5 ! !! Dans MT5, l'indexation se fait de gauche à droite... Il s'avère qu'il faut compter rates_total-2, et non 1 barre.

Non, non, prev_calculated et rates_total n'en dépendent pas.

 
Taras Slobodyanik:

no-no, prev_calculated et rates_total ne dépendent pas de ceci

Quelle est la relation entre prev_calculated et rates_total et le fait que vous proposez de lire l'ouverture et la fermeture de la première barre à gauche ?

 
Alexey Viktorov:

Quelle est la relation entre prev_calculated et rates_total et le fait que vous proposez de lire l'ouverture et la fermeture de la première barre à gauche ?

je ne suggère pas de lire la barre de fermeture à gauche, ce n'est pas mon code)

le mien seulement

if(rates_total - prev_calculated == 1)
 
m-r LSV:

Ça n'a pas aidé :(

Oui, vous devez soit changer la direction des tableaux, soit prendre l'indice rates_total-2 au lieu de 1.

{
   
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);
   
   if(rates_total - prev_calculated > 1)
      {
      Print("Загрузка истории");
      return(rates_total);
      }
   
   if(rates_total - prev_calculated == 1)
      {
      //Print("Новый бар");
      if(open[1] > close[1])
           {
           Print("Dn");
           }
      else if(open[1] < close[1])
           {
           Print("Up");
           }
      }

return(rates_total);
}


 
Taras Slobodyanik:

Je ne suggère pas de lire la fermeture de la barre sur la gauche, ce n'est pas mon code).

C'est juste le mien.

C'est inconvenant de mentir de manière aussi flagrante. Vous supprimez votre message et vous reportez votre analphabétisme sur quelqu'un d'autre. Menteur.

Raison: