L'indicatore del sistema Sultonov - pagina 113

 
Олег avtomat:

Il metodo dei minimi quadrati ha un'oscillazione molto alta. Ecco perché non è grossolano. E non è ottimale. Questo è ben noto.

Per risolvere il tuo problema, Yusuf, i metodi più adatti sono quelli a gradiente.

Si prega di descrivere brevemente i metodi a gradiente o di citare le fonti che rivelano più compiutamente l'essenza del metodo.

 
Yousufkhodja Sultonov:

Descrivi i metodi di gradiente, per favore, brevemente o cita le fonti per la descrizione più completa del metodo.

In breve: metodi del gradiente.

Potete leggerne di più qui.

Ci sono anche riferimenti alla letteratura.

 

.

 

.

 

.

 

.

 
Yousufkhodja Sultonov:

Allora, seguite le raccomandazioni e le profezie di Semko, non vi impongo nessun TC.

Yusuf, non c'è bisogno di inventare le cose. Non ho fatto alcuna raccomandazione o profetizzato nulla.

Tutto quello che ho cercato di fare è stato di risparmiare il vostro tempo in modo che non lo sprechiate in inutili stronzate. E anche per non farvi perdere tempo agli altri con queste stronzate.

Yousufkhodja Sultonov:

Ti è stato spiegato, è tutta un'altra cosa. È come: "Sto cercando questo, non so cosa!"

Non avevo quasi dubbi che ti saresti fatto prendere dalla mancanza di un cazzo sciolto. E non hai capito che eri tu ad essere preso in giro da Fedoseyev )))

Ma, ammetto, speravo che tu fossi più ragionevole di quanto sembri e capissi che uno SLAU con e senza un membro libero è essenzialmente la stessa cosa - le stesse uova, ma di profilo. E un membro libero non aggiungerà ordine a questo caos.

Pensateci.
Ecco un esempio di uno SLAU ordinario:

x0 = a1*x1 + a2*x2 + a3*x3

x1 = a1*x2 + a2*x3 + a3*x4 

x2 = a1*x3 + a2*x4 + a3*x5

Ma con un termine libero.

x0 = a0 + a1*x1 + a2*x2 + a3*x3

x1 = a0 + a1*x2 + a2*x3 + a3*x4 

x2 = a0 + a1*x3 + a2*x4 + a3*x5

...dopo aver sommato le tre equazioni...

otteniamo:

a0 = S0 - a1*S1 - a2*S2 - a3*S3

где S0..S3     - среднее арифметическое столбцов матрицы
S0 = (x0+x1+x2)/3
S1 = (x1+x2+x3)/3
S2 = (x2+x3+x4)/3
S3 = (x3+x4+x5)/3

dopo la sostituzione si ottiene di nuovo uno SLAU senza un termine libero.

∆x0 = a1*∆x1 + a2*∆x2 + a3*∆x3

∆x1 = a1*∆x2 + a2*∆x3 + a3*∆x4 

∆x2 = a1*∆x3 + a2*∆x4 + a3*∆x5

где ∆x0..∆x5  - дельта (приращение) цены к среднему арифметическому текущего столбца.

где ∆x0 = x0-S0 = x0-(x0+x1+x2)/3 и т.д.

Cioè se nel primo caso era uno SLAU di centesimi, nel caso dello SLAU con un termine libero a0 sarà trasformato in un semplice SLAU di incrementi.

Matematica del 7° grado.

Quindi che differenza fa!

Se un tentativo di usare SLAU per l'analisi e la previsione dei prezzi è semplicemente stupido, allora l'input del termine libero a0 è stupidità al quadrato.

E non importa come chiamate pomposamente questa assurdità ("Compensiamo la nostra digressione introducendo il concetto di C0 - contabilizzando la pressione dei dati storici sul prezzo all'inizio dell'analisi, assumendo che il mercato abbia una memoria. ") - la stupidità sarà ancora stupidità.


Inoltre, il mio indicatore è molto facile da rifare per il vostro SLAU con un termine libero A0. Avete solo bisogno di aggiungere poche righe di codice senza cambiare la funzione principale SLAU()

Ci sarà lo stesso rumore bianco e lo stesso rendimento come nella previsione del movimento dei prezzi utilizzando una moneta.

Ma non sarò pigro. Passerò altri 30 minuti e lo farò.

 

Kolya, mostrerò il tuo delirio con un semplice esempio, dopo il quale sarai costretto ad ammettere che, in questi casi, la presenza di un membro libero è assolutamente necessaria. Guardiamo gli esempi che hai fatto:

Ecco un semplice SLAU per un esempio:

x0 = a1*x1 + a2*x2 + a3*x3

x1 = a1*x2 + a2*x3 + a3*x4 

x2 = a1*x3 + a2*x4 + a3*x5

Если представить, что, между х-сами нет никакой зависимомти, то, а1=0; а2=0, а3=0 и получим, что и х0=0, х1=0 и х3=0! Получили нулевые расчетные значения х-сов. Это нонсенс.

ma con un termine libero

x0 = a0 + a1*x1 + a2*x2 + a3*x3

x1 = a0 + a1*x2 + a2*x3 + a3*x4 

x2 = a0 + a1*x3 + a2*x4 + a3*x5
В этом случае, получим х1=а0, х2=а0, х3=а0, что указывет, всего навсего, на отсутствие зависимости между х-сами, без каких-либо парадоксов. Тепеь, поняли своё заблуждение?

 
Nikolai Semko:

Yusuf, non inventare le cose. Non ho fatto alcuna raccomandazione e non ho profetizzato nulla.

Tutto quello che stavo cercando di fare era di farti risparmiare tempo, in modo che non lo sprecassi in inutili stronzate. E anche per non sprecare il tempo degli altri con queste stronzate.

Non avevo quasi dubbi che ti saresti fatto prendere dalla mancanza di un cazzo sciolto. E non hai capito che eri tu ad essere preso in giro da Fedoseyev )))

Ma, ammetto, speravo che tu fossi più sensibile di quanto sembri e capissi che uno SLAU con e senza un membro libero è essenzialmente la stessa cosa - le stesse uova, ma di profilo. E un membro libero non aggiungerà ordine a questo caos.

Considerate questo.
Ecco un esempio di uno SLAU ordinario:

Ma con un termine libero.

...dopo aver sommato le tre equazioni...

otteniamo:

dopo la sostituzione si ottiene di nuovo uno SLAU senza un termine libero.

Cioè se nel primo caso era uno SLAU di centesimi, nel caso dello SLAU con un termine libero a0 si trasformerà nel solito SLAU di incrementi.

Matematica del 7° grado.

Quindi che differenza fa!

Se un tentativo di usare SLAU per l'analisi e la previsione dei prezzi è semplicemente stupido, allora l'input del termine libero a0 è stupidità al quadrato.

E non importa come si chiama questa sciocchezza altisonante ("Compensiamo la nostra digressione introducendo il concetto C0 - contabilità della pressione dei dati storici sul prezzo all'inizio dell'analisi, supponendo che il mercato abbia memoria. ") - la stupidità sarà ancora stupidità.


Inoltre, il mio indicatore è molto facile da rifare per il vostro SLAU con un termine libero A0. Avete solo bisogno di aggiungere poche righe di codice senza cambiare la funzione principale SLAU()

Ci sarà lo stesso rumore bianco e lo stesso rendimento come nella previsione del movimento dei prezzi utilizzando una moneta.

Ma non sarò pigro. Passerò altri 30 minuti e lo farò.

Tutto sommato, non ha senso.

Sui punti:

1) questa stupidità non viene da una grande intelligenza, ma da una mancanza di conoscenza e comprensione;

2) la mancanza di comprensione del ruolo del membro libero porta ad affermazioni come questa: "che lo SLAU con un termine libero e senza sono essenzialmente gli stessi";

3) per risolvere il problema non è necessario fare: "dopo aver aggiunto tre equazioni";

4) questa è un'ulteriore conferma indiretta dell'eliminazione della componente di tendenza sugli incrementi: "dopo la sostituzione otteniamo di nuovo SLAE senza un termine libero";

5) per la soluzione di problemi di ottimizzazionela " matematicadel 7° grado" non è ovviamente sufficiente, quindi bisogna allargare i propri orizzonti;

6) esclamazioni "stupidità","stupidità al quadrato" e altre variazioni con "stupidità" - questo è da mancanza di conoscenza e comprensione (vedi punto 1);

7) invece di ricostruire un indicatore da un problema di risoluzione di un sistema di equazioni algebriche lineari, dovresti fare un altro indicatore con la soluzione di un problema di ottimizzazione, e poi confrontare le loro letture, e come risultato vedere e capire come saranno diverse le loro letture, cioè soluzioni e dichiarazioni del problema.

 

Ecco il tuo famigerato a0 (aka C0)

Il rumore bianco è un rumore bianco in Africa


Ho la sensazione che tu abbia dato vita a SLAU di 5 equazioni per anni. E tu l'hai doppiato con un alone di sensazione mega-scientifica e manie di grandezza. E questa è la matematica del settimo grado delle scuole superiori.

Ma la mia piccola funzione SLAU() risolve facilmente SLAU di 50 equazioni e l'ho fatta e debuggata in meno di 1 giorno. Non so in che modo ho risolto lo SLAU, perché sono sempre troppo pigro per studiare i metodi esistenti, è più facile inventare il mio. Molto probabilmente il mio modo non è ottimale e naturalmente non ho inventato nulla di nuovo, non sono forte in teoria. Ma non ne ho trovato uno più compatto.

void SLAU(double &x[],double &f[],double &a[],int m)
  {
   int k=m-1;
   if(m>1)
     {
      double xx[],ff[];
      double g=x[0]; if(g==0) g=1.0 e-100;
      for(int i=0;i<ArraySize(x);i++) x[i]/=g;
      for(int i=0;i<ArraySize(f);i++) f[i]/=g;
      ArrayResize(ff,k);
      ArrayResize(xx,k*k);
      for(int i=0; i<k; i++)
        {
         ff[i]=f[0]*x[(i+1)*m]-f[i+1]*x[0];
         for(int j=0;j<k;j++) xx[i*k+j]=x[j+1]*x[(i+1)*m]-x[(i+1)*m+j+1]*x[0];
        }
      int i=0;
      for(;i<k; i++) if(xx[i*k]!=0) break;
      if(i>0 && i<k) for(int j=0;j<k;j++) {double t=xx[j]; xx[j]=xx[i*k+j]; xx[i*k+j]=t;}
      SLAU(xx,ff,a,k);
     }
   double sum=0;
   for(int i=1; i<m;i++) sum+=a[n-m+i]*x[i];
   if(x[0]!=0 && x[0]==x[0]) a[n-m]=(f[0]-sum)/x[0]; else a[n-m]=1.0/n;
   if(m!=n) return;
  }
File:
SLAUPlus.mq5  28 kb