Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1490

 
Alexey Viktorov:
Dove sta scritto che non ci può essere un sottocarico della storia insieme alla nuova barra?

Dove sta scritto che la storia deve essere tracciata?
Mentre si carica, i calcoli dell'indicatore possono essere ignorati - perché non c'è una storia completa (le barre possono apparire ovunque).
Da qui la conclusione: solo dopo che tutte le barre sono state costruite può esserci una nuova barra.
Altrimenti tutte le barre sono "vecchie".

 
m-r LSV:

Non ha aiutato :(

mostrare il codice.

 
Taras Slobodyanik:

devi vedere quello che hai costruito.

Taras!!! L'uomo sta chiedendo di MQL5!!! E MT5 è indicizzato da sinistra a destra... Si scopre che non si dovrebbe contare 1 barra, ma tassi_totale-2

 
Taras Slobodyanik:

Dove sta scritto che bisogna controllare il caricamento della storia?
Mentre viene caricato, i calcoli dell'indicatore possono essere ignorati - perché non c'è una storia completa.
Da qui la conclusione - solo dopo che tutti i bar sono stati costruiti può esserci un nuovo bar.
Altrimenti tutte le barre sono "vecchie".

Si prega di consigliare come farlo con la storia.
Il fatto è che è previsto, per controllare qualcosa sulla storia del corso.
Ho alcune osservazioni e vorrei usare i buffer per le frecce.

Ma questo verrà dopo.

 
Taras Slobodyanik:

mostrare il codice.

//+------------------------------------------------------------------+
//|                                                    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'uomo sta chiedendo di MQL5!!! In MT5, l'indicizzazione è da sinistra a destra... Risulta che si deve contare il rate_total-2, e non 1 barra.

No, no, prev_calculated e rates_total non dipendono da questo.

 
Taras Slobodyanik:

no-no, prev_calculated e rates_total non dipendono da questo

Qual è la relazione di prev_calculated e rates_total con il fatto che proponete di leggere l'apertura e la chiusura della prima barra a sinistra?

 
Alexey Viktorov:

Qual è la relazione di prev_calculated e rates_total con il fatto che proponete di leggere l'apertura e la chiusura della prima barra a sinistra?

Non sto suggerendo di leggere la barra di chiusura a sinistra, questo non è il mio codice)

solo mio

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

Non ha aiutato :(

Sì, devi cambiare la direzione degli array o prendere l'indice rates_total-2 invece di 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:

Non sto suggerendo di leggere la chiusura della barra a sinistra, non è il mio codice)

È solo mio.

È indecoroso mentire così sfacciatamente. Cancella il tuo post e dai la colpa del tuo analfabetismo a qualcun altro. Bugiardo.

Motivazione: