Canale di regressione lineare - pagina 10

 
Dmitry Fedoseev:

Mostramelo e sparirò per un mese. Mi assumo la responsabilità delle mie parole, cosa che non posso fare per voi. E solo per crederci, anche dopo una bugia, mi dispiace...

dopo quello che una bugia. Non c'è stata una sola bugia da parte mia.
E il fatto che tu non creda alla verità è un tuo problema.
Quindi abbiamo un accordo che se io rompo il ciclo nel calcolare la BB su ogni barra tranne la prima, allora tu scomparirai dal forum per un mese?
E se non fallisco, cosa dovrei fare? Anche sparire per un mese? O per un anno?

 
Nikolai Semko:

Dopo quello che una bugia. Non c'era una sola bugia da parte mia.
E se non credi alla verità, è un tuo problema.
Cioè abbiamo concordato che se fallisco il ciclo nel calcolare la BB su ogni barra tranne la prima, allora tu scomparirai dal forum per un mese.
E se non fallisco, cosa dovrei fare? Anche sparire per un mese? O per un anno?

C'era un suggerimento di scaricare la demo e assicurarsi che la larghezza del canale sia uguale a sko moltiplicato per 1,41. Ho scaricato, controllato, e non è risultato essere così.

 
Dmitry Fedoseev:

Quale esattamente?

Mi affido al vostro gusto). Non un processo, ovviamente.
Dammi il tuo codice di costruzione del canale. Lo rifarò. Il ciclo sarà solo sulla storia. Tutti i valori successivi del canale saranno contati senza il ciclo.
 
Nikolai Semko:

...
Quindi siamo d'accordo che se io vado fuori ciclo nel calcolare la BB su ogni barra tranne la prima, allora tu scomparirai dal forum per un mese?
E se non fallisco, cosa dovrei fare? Anche sparire per un mese? O per un anno?

Che cosa ha a che fare questo con la rottura del ciclo? E ora non cercate di inventare condizioni e poi di dimostrare che sono state soddisfatte. È già chiaro a tutti su cosa verte la conversazione (ingenuamente lo spero, ma comincio a dubitarne).

Non ho bisogno di nulla. Questo algoritmo magico sarà sufficiente.

 
Yuriy Asaulenko:
A seconda dei vostri gusti). Non un campionatore, ovviamente.
Dammi il tuo codice di costruzione del canale. Lo rifarò. Il ciclo sarà solo sulla storia. Tutti i valori dei canali successivi saranno contati senza il ciclo.

No, questo tipo di bevute va oltre i miei gusti.

 
Dmitry Fedoseev:

No, quel tipo di bevute sono al di là dei miei gusti.

Non preoccupatevi, non siete stati invitati a bere. Io bevo).
Quindi ci sarà un codice di canale SCO?
 
E non c'è bisogno di complicarlo, non c'è bisogno di incanalarlo. Solo std e basta.
 
Yuriy Asaulenko:
Non preoccupatevi, non siete stati invitati a bere. Berrò).
Quindi ci sarà un codice di canale SCO?

Non hai bisogno di un canale. Abbastanza std per corrispondere all'esempio dal terminale

 
Dmitry Fedoseev:

Non hai bisogno di un canale. Solo abbastanza std per corrispondere all'esempio dal terminale.

Allora, ci sarà un Hennessy?
Poi, collegatevi all'esempio dal terminale per favore.
Meglio mettere il codice qui, come file, in modo che sia pubblicamente disponibile.
Hennesy è una cosa seria).
 
Yuriy Asaulenko:
Quindi Hennessy sarà?
Poi, un link a un esempio dal terminale per favore.

Lo farò.

L'esempio del terminale è un po' complicato, vi allego il mio indicatore. Calcola esattamente come l'esempio dal terminale, il codice è scritto chiaramente.

Ecco la sua funzione di avvio:

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 start;
   if(prev_calculated==0){
      start=period;
      double ms=0;
      for(int i=0;i<period;i++){
         ms+=close[i];
      }
      ma[period-1]=ms/period;
   }
   else{
      start=prev_calculated-1;
   }

   for(int i=start;i<rates_total;i++){
      
      ma[i]=ma[i-1]+(-close[i-period]+close[i])/period;
      
      double sm=0;
      for(int j=i-period+1;j<=i;j++){
         sm+=MathPow(close[j]-ma[i],2); 
      }
      Label1Buffer[i]=MathSqrt(sm/period);
   }

   return(rates_total);
  }

Il compito è di fare lo stesso senza ciclo interno"for(int j=i-periodo+1;j<=i;j++){", simile a come viene calcolato il MA in esso.

File:
stdX.mq5  6 kb