L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 201

 
SanSanych Fomenko:

Caro collega!

Per diverse pagine c'è una discussione sulle differenze tra i vostri algoritmi e quelli di R sui bordi del dominio della funzione. I punti marginali sono punti marginali e in pratica le differenze potrebbero essere trascurate.

Ma in questo caso ho una domanda molto più sostanziale:

Dov'è la documentazione per tutte le vostre funzioni?

In precedenza, pensavo di prendere la vostra funzione, poi prendere la documentazione di R, dato che le vostre funzioni sono analoghe, e approfondire le parti della documentazione di R che descrivono gli algoritmi o seguono i link forniti da R. R ha una documentazione e un apparato di riferimento di altissima qualità.

Nel corso della discussione, ho scoperto che le vostre funzioni sono diverse da R - sono alcune altre funzioni i cui algoritmi si basano su altre fonti. Non c'è niente di questo nell'articolo stesso, nessuna documentazione. E lo apprendiamo da Renat in un contesto completamente diverso.

In pratica, possiamo trarre una conclusione inequivocabile che il codice non può essere portato da R a MQL5.

Ed ecco perché.

È perché non hai letto l'articolo e ti sei perso la ripetizione più volte:

  1. Abbiamo allegato dei test unitari nel codice sorgente, dimostrando la correttezza dei calcoli.
  2. Abbiamo fatto un sacco di lavoro sul controllo totale di correttezza che ci ha permesso di arrivare al fondo degli errori di R
  3. Nel nostro lavoro, abbiamo costantemente ricontrollato i risultati in MQL5, Wolfram Alpha e R
A differenza di voi, abbiamo analizzato il codice sorgente di R, analizzato ogni funzione in dettaglio, siamo riusciti a velocizzare alcune funzioni fino a 46 volte, abbiamo scritto un articolo e ci siamo preparati a rispondere.

Ma invece i critici riescono a fare affermazioni sul vecchio lievito della loro conoscenza e fiducia in R senza leggere attentamente l'articolo stesso. E certamente senza cercare di eseguire script di test con le prove.

 

Affinché non ci siano malintesi:

  1. La traduzione/similitudine delle funzioni R di cui sopra è corretta
  2. L'uso della logica da R in MQL5 è quasi identico, e il codice è più chiaro in MQL5
  3. Tutto il codice delle funzioni menzionate in MQL5 è presentato nel codice sorgente pulito, compresi i test unitari di controllo (dove sono in R?)
  4. I calcoli in MQL5 sono molto più veloci che in R
  5. I nostri specialisti sono bravi in matematica e sono altrettanto bravi (o migliori) di quelli che scrivono R.
Questo è l'inizio di un lungo viaggio verso l'introduzione della matematica complessa nella libreria standard MQL5. Ora ci sono Alglib, Fuzzy e Stat.

Oggi stiamo per rilasciare una libreria grafica simile alla trama di R. C'è già un'espansione funzionale della funzionalità Stat library mat sotto forma di decine di nuove funzioni.

 
Quantum:

Al momento c'è una descrizione delle funzioni nell'articolo https://www.mql5.com/ru/articles/2742


Grazie, capisco il suo punto di vista.

PS.

Come ho capito, hai visto la documentazione su Normal e altre funzioni in R, quindi non farò un copia-incolla e confronterò con il tuo link.

 
Renat Fatkhullin:

Questo perché non hai letto l'articolo e ti sei perso la ripetizione più volte:

  1. Abbiamo allegato dei test unitari nel codice sorgente che provano la correttezza dei calcoli
  2. Abbiamo fatto molto lavoro sul controllo di correttezza totale che ci permette di arrivare al fondo degli errori di R
  3. Nel nostro lavoro, abbiamo costantemente ricontrollato i risultati in MQL5, Wolfram Alpha e R
A differenza di voi, abbiamo analizzato il codice sorgente di R, analizzato ogni funzione in dettaglio, siamo riusciti a velocizzare alcune funzioni fino a 46 volte, abbiamo scritto un articolo e ci siamo preparati a rispondere.

Ma invece i critici riescono a fare affermazioni sul vecchio lievito della loro conoscenza e fiducia in R senza leggere attentamente l'articolo stesso. E certamente senza cercare di eseguire script di test con le prove.

Grazie, il tuo punto è chiaro per me.

PS.

Questa è la seconda volta che mi rimprovera di non aver letto l'articolo.

L'ho letto, inoltre ho trovato un errore nella funzione (restituito scalare invece di vettore), che hai corretto e ora questo errore è sparito.

 
SanSanych Fomenko:

Grazie, il suo punto di vista mi è chiaro.

PS.

Questa è la seconda volta che mi rimprovera di non aver letto l'articolo.

L'ho letto, inoltre, ho trovato un errore nella funzione (restituito scalare invece di vettore), che avete corretto e ora questo errore è assente.

Questa è una contromisura al tuo commento "In pratica, la conclusione che la migrazione del codice da R a MQL5 è impossibile".

Forse avete letto un vecchio articolo e non quello nuovo di ieri. Non c'era nessun errore - c'era una versione con ritorno scalare (molto tempo fa) e abbiamo aggiunto le funzioni vettoriali. La biblioteca è cresciuta seriamente dal vecchio articolo ed è stata essenzialmente riscritta.

Avevo ragione - non hai letto il nuovo articolo.

Spero che non si parli più di "tu non hai queste funzioni e te le sei inventate".
 
Alexey Burnakov:

Per quanto riguarda la distribuzione t. Ho riprodotto questo errore sull'ultima versione di R. ma non sono entrato nell'essenza dell'algoritmo. Ammetto che la correzione era davvero necessaria.

Proverò a fare una domanda al team di supporto R.

Articolo "Computing discrete mixtures of continuous distributions" è disponibile sul sito dell'autore.

Gli autori dell'articolo dicono che il problema è nel criterio di convergenza della serie.


L'implementazione del loro algoritmo di ricorrenza proposto 7.2 https://github.com/neurodebian/afni_removeme_eventually/blob/master/nct.c

Tuttavia il calcolo delle ricorrenze ha degli errori. Per esempio, per la funzione beta:


#include <Math\Stat\Math.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double a=1;
   double b=1;
   double r_beta=MathBeta(a,b);
   for(int j=0; j<40; j++)
     {
      if(j>0)
        {
         r_beta*=((a+j-1)/(a+b+j-1));
        }
      double beta=MathBeta(a+j,b);
      PrintFormat("%d   error=%5.20e",j,beta-r_beta);
     }
  }

2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 0 error=0.0000000000000000e+00
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 1 error=-5.55111512312578270212e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 2 error=0.000000000000000000e+00
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 3 error=1.11022302462515654042e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 4 error=1.38777878078144567553e-16
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 5 error=-2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 6 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 7 error=1.66533453693773481064e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 8 error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 9 error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 10 error=-2.77555756156289135106e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 11 error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 12 error=5.68989300120392726967e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 13 error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 14 error=-5.55111512312578270212e-17
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 15 error=-4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 16 error=-1.87350135405495166196e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 17 error=5.27355936696949356701e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 18 error=-1.04083408558608425665e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 19 error=-3.400058018291454190505e-16
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 20 error=-3.26128013483639733749e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 21 error=4.57966997657877072925e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 22 error=-3.19189119579732505372e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 23 error=1.52655665885959024308e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 24 error=5.55111512312578270212e-17
2016.11.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 25 error=-6.24500451351650553988e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 26 error=-2.70616862252381906728e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 27 error=4.85722573273505986435e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 28 error=4.64905891561784301302e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 29 error=8.32667268468867405318e-17
201611.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 30 error=-9.02056207507939689094e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 31 error=-2.98372437868010820239e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 32 error=2.22044604925031308085e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 33 error=2.74086309204335520917e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 34 error=-3.43475248243407804694e-16
201611.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 35 error=2.08166817117216851329e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 36 error=4.16333634234433702659e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 37 error=8.673617379889403547206e-17
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 38 error=-1.21430643318376496609e-16
2016.11.11 12:28:30.015 RecurrentBeta (EURUSD,H1) 39 error=-2.18575157973077693896e-16

Per il calcolo della CDF la precisione può essere sufficiente, ma per la conversione quantile con alta precisione può non essere sufficiente.

Così abbiamo usato la somma diretta senza calcoli di ricorrenza nell'algoritmo quantile.

 
Renat Fatkhullin:

Questa è una contromisura al tuo schema "In pratica, c'è una conclusione inequivocabile che la migrazione del codice da R a MQL5 è impossibile".

Spero che non si parli più di "non hai queste funzioni e te le sei inventate tu".

Ho la cattiva abitudine di leggere prima di scrivere qualcosa. "Non mi sono mai impegnato in una tale invettiva; ho dichiarato solo l'essenza del mio argomento.

Si scopre che non riesco a farvi capire il mio punto di vista, e non è la prima volta.

Pertanto, senza di me.

Ti auguro sinceramente buona fortuna, Renat!

 

Signori, qual è l'argomento di 100.500 pagine? Chi ne sa di più in matematica? Che differenza fa per voi come questione di principio se la funzione è definita in 0 o non definita, se un errore in R è scritto nell'articolo o no. È come se vostro figlio venisse discusso qui e gli si dicesse che è un totale... e voi lo difendete con tutto il vostro petto.

Prendilo come un dato di fatto e usa le funzioni integrate in mt5, chiedi agli sviluppatori nuove funzioni, se manca qualcosa, scrivi il tuo. Dovresti usare le caratteristiche incorporate di mt5, chiedere agli sviluppatori per le nuove, se ti manca qualcosa, scrivi il tuo.

 
Grazie per la tua partecipazione @SanSanych Fomenko, ma non sei riuscito a confutare nessuna delle nostre posizioni e il presente schema fallisce.
 
Renat Fatkhullin:

Affinché non ci siano malintesi:

  1. La traduzione/similitudine delle funzioni R di cui sopra è corretta
  2. L'uso della logica da R in MQL5 è quasi identico, e il codice è più chiaro in MQL5
  3. Tutto il codice delle funzioni menzionate in MQL5 è presentato nel codice sorgente pulito, compresi i test unitari di controllo (dove sono in R?)
  4. I calcoli in MQL5 sono molto più veloci che in R
  5. I nostri specialisti sono bravi in matematica e sono altrettanto bravi (o migliori) di quelli che scrivono R.
Questo è l'inizio di un lungo viaggio verso l'introduzione della matematica complessa nella libreria standard MQL5. Ora ci sono Alglib, Fuzzy e Stat.

Oggi stiamo per rilasciare una libreria grafica simile alla trama di R. Stiamo già lavorando per estendere le funzionalità della libreria mat Stat sotto forma di decine di nuove funzioni.

è solo una vacanza