Metodo della planimetria tendenziale - pagina 4

 
Mathemat:

ma allora si dovrebbe rifiutare l'algoritmo standard di meta-quota.


Deve essere respinto, se il tempo è essenziale.
 
Mathemat:

Il problema è che dobbiamo imparare a calcolare i mashup in modo ancora più ottimale che nel pacchetto meta-quote standard. Abbiamo bisogno di un qualche algoritmo di ricorsività per calcolare le mischie, dove una mischia di periodo N è calcolata usando una mischia nota di periodo N+1. In linea di principio non è difficile, ma allora bisogna rifiutare l'algoritmo standard metacquot.

Per quanto riguarda la densità dei sacchetti: abbiamo chiaramente bisogno di un qualche tipo di algoritmo di clustering, perché possono essere molto disomogenei verticalmente (per una data barra). In breve, il compito non è affatto facile dal punto di vista tecnico.

Possiamo fare un indicatore, in cui gli ultimi cento (se usiamo cento borse) valori restituiscono i valori delle borse. Ma in questo caso stiamo parlando solo di SMA. L'algoritmo è un po' diverso per le altre bacchette, ma in linea di principio è anche fattibile.
 

Non capisco bene, Victor. Si prega di spiegare in modo più dettagliato. Cos'è "l'ultimo centinaio" in un array unidimensionale?

In linea di principio, la ricorrenza nell'algoritmo delle meta-citazioni è già incorporata per tutte le procedure guidate. Ma va bene per chiamare le salviette dello stesso periodo, e i nostri periodi sono diversi ogni volta.

 
Mathemat:

In linea di principio, la ricorrenza nell'algoritmo di metacitazione è già incorporata per tutti i maghi. Ma va bene per le chiamate ai mashup dello stesso periodo. E i nostri periodi sono diversi ogni volta.

for (i = 2; i<=N;i++) {
  Sum += Close[i];
  MA[i] = Sum/i;
}
P.S. Sembra che le somme debbano essere anche array :)
 
Mathemat:

Non capisco bene, Victor. Si prega di spiegare in modo più dettagliato. Cos'è "l'ultimo centinaio" in un array unidimensionale?

In linea di principio, la ricorrenza nell'algoritmo delle meta-citazioni è già incorporata per tutte le procedure guidate. Ma va bene per chiamare le salviette dello stesso periodo, e i nostri periodi sono diversi ogni volta.


Se si conta in base alla media,

int i,j;
double sum=0, Count;
for (i=0;i<100;i++) {
   for (j=0;j<step;j++) {
       sum+=Close[i*step+j];
       Count++;
   }
   Buffer[i]=sum/Count;
}
Qualcosa del genere.
 

Non è quello che intendevo.

double SMA( int newperiod, int sh, double SMAprev )
{
   return( ( SMAprev * ( newperiod - 1 ) + Close[ sh + newperiod - 1 ] ) / newperiod );
}

Invece di una costosa chiamata a iMA() (che aggiungerà un mucchio di sommatorie), la funzione calcola una maschera con periodo incrementato di 1 indipendentemente dal periodo. Così, in effetti, iMA() può essere chiamata solo una volta su ogni barra contata, prima e ultima.

Anche per l'EMA è ricorrente un algoritmo simile, anche se non così ovvio. SMMA è equivalente a EMA, solo LWMA rimane da vedere.

 
Chiamare qualsiasi funzione è un sovraccarico aggiuntivo. Se invece si memorizza un importo invece di uno SMAprev, si possono evitare diverse operazioni.
 
Ebbene sì, l'importo è ricordato, o meglio l'ex SMA. Nessun problema a postare due codici che fanno mille calcoli su una barra con il metodo standard, e lo stesso con il mio metodo. E confrontare la loro efficienza.
 

Certo che è più veloce. Ma sto parlando di 'ancora più veloce' :). Confrontalo con il mio, che è sopra.

 
Aha, Candido, ora ho capito. Per una barra arbitraria con uno shift sh:

// размер массива SMA[] уже установлен равным N+1 перед вызовом функции
void createSMAsArray( int sh, double& SMA[] ) 
{
   double Sum = 0;
   for ( int i = 1; i <= N; i ++ ) 
   {
     Sum += Close[ sh + i - 1 ];
     SMA[ i ] = Sum / i;
   }
   return;
}
È così? Si noti l'indice di sommatoria iniziale.