Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1490

 
Alexey Viktorov:
Wo steht geschrieben, dass der neue Balken nicht gleichzeitig mit der Geschichte geladen werden kann?

Wo steht geschrieben, dass die Geschichte nachverfolgt werden soll?
Während des Ladevorgangs können die Indikatorberechnungen vernachlässigt werden, da es keine vollständige Historie gibt (die Balken können überall erscheinen).
Daraus ergibt sich die Schlussfolgerung, dass es erst dann einen neuen Balken geben kann, wenn alle Balken gebaut worden sind.
Ansonsten sind alle Balken "alt".

 
m-r LSV:

Es hat nicht geholfen :(

den Code anzeigen.

 
Taras Slobodyanik:

Sie müssen sehen, was Sie aufgebaut haben.

Taras!!! Der Mann fragt nach MQL5!!! Und MT5 ist von links nach rechts indiziert... Es stellt sich heraus, dass man nicht 1 Bar zählen sollte, sondern rates_total-2

 
Taras Slobodyanik:

Wo steht geschrieben, dass Sie das Laden der Historie überwachen müssen?
Während des Ladevorgangs können die Indikatorberechnungen vernachlässigt werden, da es keine vollständige Historie gibt.
Daraus ergibt sich die Schlussfolgerung, dass es erst dann eine neue Bar geben kann, wenn alle Bars gebaut worden sind.
Ansonsten sind alle Balken "alt".

Bitte beraten Sie mich, wie man das mit der Historie macht.
Die Sache ist, es ist natürlich geplant, etwas auf die Geschichte zu überprüfen.
Ich habe einige Beobachtungen gemacht und würde gerne Puffer für Pfeile verwenden.

Aber das wird später kommen.

 
Taras Slobodyanik:

den Code anzeigen.

//+------------------------------------------------------------------+
//|                                                    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!!! Der Mann fragt nach MQL5!!! In MT5, Indexierung ist von links nach rechts... Es stellt sich heraus, dass rates_total-2, und nicht 1 bar gezählt werden muss.

Nein, prev_calculated und rates_total hängen nicht davon ab.

 
Taras Slobodyanik:

no-no, prev_calculated und rates_total hängen nicht davon ab

In welchem Verhältnis stehen prev_calculated und rates_total zu der Tatsache, dass Sie vorschlagen, den Anfang und das Ende des ersten Balkens auf der linken Seite zu lesen?

 
Alexey Viktorov:

In welchem Verhältnis stehen prev_calculated und rates_total zu der Tatsache, dass Sie vorschlagen, den Anfang und das Ende des ersten Balkens auf der linken Seite zu lesen?

ich schlage nicht vor, den abschließenden Balken auf der linken Seite zu lesen, dies ist nicht mein Code)

nur meine

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

Es hat nicht geholfen :(

Ja, Sie müssen entweder die Richtung der Arrays ändern oder den Index rates_total-2 anstelle von 1 nehmen

{
   
   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:

Ich schlage nicht vor, den Balken auf der linken Seite zu lesen, das ist nicht mein Code)

Es ist nur meins.

Es ist unschicklich, so unverhohlen zu lügen. Sie löschen Ihren Beitrag und schieben Ihre Unbildung auf jemand anderen. Lügner.