Canale di regressione lineare - pagina 5

 
Dmitry Fedoseev:

Ecco una malattia venerea accelerata. Ma sembra solo una malattia venerea, non una malattia venerea.

Grazie! Cercando di capire cosa viene calcolato nella fonte.

 
Dmitry Fedoseev:

1. Per ottenere questa velocità, è sufficiente limitare i calcoli a una finestra visibile. Non vedo il miracolo.

2. Non so nemmeno cosa sia meglio, essere imbrogliato o non essere capito.

3. Non ho ancora capito che x e y non sono linee rette?

Pensa quello che vuoi, Tommaso il miscredente.

Non mi interessa.

y=f(x) è una linea retta - questo è chiaro
ma x e y sono linee rette - questo è ....
Sarei sorpreso se qualcuno oltre a te lo capisse.

 
fxsaber:

Grazie per l'animazione. Sfortunatamente, non so cosa viene usato come canale di prova.

Deviazione RMS moltiplicata per 1,41. Io do una garanzia. Se qualcuno lo smentisce (è facile farlo se non lo è), posterò il codice.
più precisamente la radice della deviazione RMS moltiplicata per il coefficiente di larghezza del canale (1,41 in questa gif).

 
fxsaber:

Grazie! Cercando di capire cosa viene calcolato nella fonte.

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); // вот это правильная стд, ее не ускорить, а если ma[i] заменить на ma[j], то можно ускорить, что и сделано
      }
      Label1Buffer[i]=MathSqrt(sm/period);
   }

   return(rates_total);
  }
 
Nikolai Semko:

Deviazione RMS moltiplicata per 1,41. Lo garantisco. Se qualcuno lo confuta (è facile farlo se non lo è), posterò il codice.
Più precisamente la radice della deviazione RMS moltiplicata per il coefficiente di larghezza del canale (1,41 in questa gif).

Ho preso il canale oggetto standard e dà alcuni valori di larghezza sbagliati.


 
Dmitry Fedoseev:

Ho capito l'idea, grazie! Ora dobbiamo analizzare come questo metodo di calcolo della larghezza influenzerà il risultato.

 
Nikolai Semko:

Deviazione standard moltiplicata per 1,41. Lo garantisco. Se qualcuno lo smentisce (facile da fare se non lo fa), posterò il codice.
più precisamente la radice della deviazione RMS moltiplicata per il fattore di larghezza del canale (1,41 in questa gif).

"Più precisamente la radice dell'RMS" - cioè l'indicatore std? Molto semplicemente e senza trucchi - la larghezza del canale dovrebbe essere uguale al valore dell'indicatore std moltiplicato per 1,41?

Io non la vedo così. Sembra più il mio calcolo std sbagliato.

Datemi un algoritmo esatto passo dopo passo su come controllare e assicurarsi. Finora anche questo, un modo poco convincente di dimostrarlo, non funziona.

 

Non capisco. Il centro della LR dovrebbe essere lo stesso della MA. In MT5 non c'è questa coincidenza anche con la LR standard.

E anche l'indicatore testato non coincide con la MA.

 
fxsaber:

Non capisco. Il centro della LR dovrebbe essere lo stesso della MA. In MT5 non c'è questa coincidenza anche con la LR standard.

E anche l'indicatore testato non coincide con la MA.

Non dovrebbe coincidere con un MA standard.

 
Dmitry Fedoseev:

Non deve coincidere con il normale MA.

Il punto che si trova esattamente al centro del segmento LR è la media dei punti originali. Questo segue dalla definizione di LR.