Methode der tendenziellen Planimetrie - Seite 4

 
Mathemat:

aber dann müssten Sie den Standard-Meta-Quoten-Algorithmus ablehnen.


Sie muss abgelehnt werden, wenn die Zeit drängt.
 
Mathemat:

Das Problem ist, dass wir lernen müssen, wie wir die Mashups noch optimaler berechnen können als im Standard-Meta-Quote-Paket. Wir brauchen einen Rekursionsalgorithmus für die Berechnung von Maischen, bei dem eine Maische der Periode N anhand einer bekannten Maische der Periode N+1 berechnet wird. Im Prinzip ist das nicht schwierig, aber dann muss man den Standard-Metacquot-Algorithmus ablehnen.

Was die Dichte der Säcke betrifft, so benötigen wir natürlich eine Art Clustering-Algorithmus, da sie vertikal (für einen bestimmten Balken) sehr heterogen sein können. Kurzum, die Aufgabe ist technisch nicht ganz einfach.

Wir können einen Indikator erstellen, in dem die letzten hundert (wenn wir hundert Beutel verwenden) Werte die Werte der Beutel zurückgeben. Aber in diesem Fall wird es nur für SMA sein. Der Algorithmus ist bei den anderen Stäben etwas anders, aber im Prinzip ist er auch machbar.
 

Das verstehe ich nicht ganz, Victor. Bitte erläutern Sie dies näher. Was bedeutet "letztes Hundert" in einer eindimensionalen Anordnung?

Im Prinzip ist die Wiederholung im Algorithmus der Meta-Anführungszeichen für alle Assistenten bereits eingebaut. Aber es ist gut, wenn man Wischtücher aus dem gleichen Zeitraum anruft, und wir haben jedes Mal andere Zeiträume.

 
Mathemat:

Im Prinzip ist die Wiederholung im Meta-Quotierungs-Algorithmus für alle Assistenten bereits eingebaut. Aber es ist gut, wenn man Mashups aus demselben Zeitraum aufruft, und unsere Zeiträume sind jedes Mal anders.

for (i = 2; i<=N;i++) {
  Sum += Close[i];
  MA[i] = Sum/i;
}
P.S. Es scheint, dass Summen auch Arrays sein sollten :)
 
Mathemat:

Das verstehe ich nicht ganz, Victor. Bitte erläutern Sie dies näher. Was bedeutet "letztes Hundert" in einer eindimensionalen Anordnung?

Im Prinzip ist die Wiederholung im Algorithmus der Meta-Anführungszeichen für alle Assistenten bereits eingebaut. Aber es ist gut, wenn man Wischtücher aus dem gleichen Zeitraum anruft, und wir haben jedes Mal andere Zeiträume.


Wenn man nach dem Durchschnitt rechnet,

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;
}
So etwas in der Art.
 

Das ist nicht das, was ich meinte.

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

Anstelle eines teuren Aufrufs von iMA() (bei dem eine Reihe von Summanden addiert werden), berechnet die Funktion eine Maske, deren Periode unabhängig von der Periode um 1 erhöht wird. iMA() kann also tatsächlich nur einmal für jeden gezählten Balken, den ersten und den letzten, aufgerufen werden.

Für die EMA ist ein ähnlicher Algorithmus ebenfalls wiederkehrend, wenn auch nicht so offensichtlich. SMMA ist gleichwertig mit EMA, nur LWMA bleibt abzuwarten.

 
Der Aufruf jeder Funktion ist ein zusätzlicher Overhead. Wird dagegen anstelle eines SMAprev ein Betrag gespeichert, können mehrere Vorgänge vermieden werden.
 
Nun ja, man erinnert sich an den Betrag, oder besser gesagt an die ehemalige SMA. Es ist kein Problem, zwei Codes zu posten, die tausend Berechnungen für einen Balken mit der Standardmethode durchführen, und das Gleiche mit meiner Methode. Und vergleichen Sie ihre Effizienz.
 

Natürlich ist es schneller. Aber ich spreche von "noch schneller" :). Vergleichen Sie sie mit meiner, die oben steht.

 
Aha, Candid, jetzt verstehe ich. Für eine beliebige Leiste mit einer Verschiebung 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;
}
Ist das so? Beachten Sie den anfänglichen Summenindex.
Grund der Beschwerde: