Cambiare il TF è un problema - pagina 7

 
Vasyl Nosal:

Genio.

Hai provato a passare a una coppia senza storia e poi a un altro TF?

Sì, ammetto il mio errore. Il codice mostra cosa fare se Close[i] > Close[i+1] e cosa fare se Close[i] < Close[i+1]. Ma non specifica cosa fare se Close[i] == Close[i+1]. Queste sono le barre in cui cadono queste singole frecce.

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:

Facciamo così: prendete il codice 1.43 da questo post e commentate le righe:

e guardate il risultato quando si scorre il grafico verso il fondo della storia e ci si assicura che la storia sia caricata.

Beh, l'ho fatto. Rendendosi conto, però, dell'inutilità di questa azione. :) Il risultato è atteso - l'indicatore funziona senza problemi.
 
Vasyl Nosal:

Genio.

Hai provato a passare a una coppia senza storia e poi a un altro TF?

Cosa intende per "nessuna storia"?
 
Sergei Vladimirov:

Uh-huh, ammetto un bug. Il codice specifica cosa fare se Close[i] > Close[i+1], e cosa fare se Close[i] < Close[i+1]. Ma non specifica cosa fare se Close[i] == Close[i+1]. Queste sono le barre in cui cadono queste singole frecce.

Questo è un bene.
 
Alexey Viktorov:
Cosa vuol dire "dove non c'è storia"?
Dove il grafico di una coppia di valute non si è aperto o si è aperto per un tempo molto lungo.
 
Sergei Vladimirov:

COS'È QUESTO?


È così che non ci sono outs se non altro.
 
Vasyl Nosal:
È così che non ci sono outs se non altro.
Chi sono? ))
 
Sergei Vladimirov:
Chi sono? ))
Matrice fuori portata
 
Vasyl Nosal:
Matrice fuori portata
Perché avete bisogno di un margine così grande, fino a 20 barre? È a occhio? )) Nel caso generale, non si può andare oltre [rates_total-1], e in questo codice - oltre [rates_total-2] perché la barra precedente è chiamata nel corpo del ciclo. Quindi, dobbiamo iniziare il calcolo dalla barra [rates_total-2].
 
Sergei Vladimirov:
E perché prendere un margine così ampio - 20 barre? È a occhio? )) Nel caso generale, non possiamo andare oltre [rates_total-1], e in questo codice - oltre [rates_total-2] perché la barra precedente è chiamata nel corpo del ciclo. Quindi, dobbiamo iniziare il calcolo dalla barra [rates_total-2].

Ho capito. La prossima cosa sarà quante barre totali contare e quante ricalcolare.

Qualcuno inserirà più barre di quante ce ne siano. Sarà un out.

Sì, a occhio.

Motivazione: