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

 
fxsaber #:
NumPy sembra avere un algoritmo diverso da ALglib.

La CPU di Maxim è due volte più veloce della mia. Non ricordo se ha fornito i tempi per Algliba, credo di no.

 
fxsaber #:

Confronto con la vecchia versione di Alglib. Non mi risulta che sia diventato più lento.

Lei stesso ha scritto che la versione standard è più lenta di quella attuale di Alglib. Ho la vecchia versione sotto forma di codice, ma non nel terminale.
 
Forester #:

La CPU di Maxim è 2 volte più veloce della mia. Non ricordo se ha fornito i tempi per Algliba, credo di no.

Tempi.

Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading.

Machine learning nel trading: teoria, modelli, pratica e algo-trading.

Aleksey Vyazmikin, 2023.09.26 05:19 AM

Array size: 1716.61376953125 MB
Time taken: 4.784467697143555 seconds

Questo è su un vecchio FX-8350


Forum sul trading, sui sistemi di trading automatizzati e sul test delle strategie di trading.

Apprendimento automatico nel trading: teoria, modelli, pratica e trading di algoritmi

Aleksey Vyazmikin, 2023.09.26 05:37 AM

Per le statistiche, questo è il mio risultato

2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   EX5: 3981 AVX Release.
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 
2023.09.26 06:28:23.332 Test_Corr (USDJPY,H1)   inRows = 100 inCols = 15000 
2023.09.26 06:28:45.032 Test_Corr (USDJPY,H1)   matrix<double> Matrix1 = CorrMatrix(Matrix) - 21700095 mcs, 1717 MB
2023.09.26 06:29:48.495 Test_Corr (USDJPY,H1)   matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63460976 mcs, 1717 MB
2023.09.26 06:29:50.225 Test_Corr (USDJPY,H1)   IsEqual(Matrix1, Matrix2) = true 
Chiaramente Python è molto più veloce. E così sarà più veloce in C, quindi risulta che MQ non ci sta dicendo qualcosa, promettendo prestazioni comparabili....

Dovrei notare che Python ha una piccola parallelizzazione quando si esegue il codice - per mezzo secondo per circa due core, il resto è contato su un core.

 
Forester #:
Tu stesso hai scritto che quello standard è più lento di quello attuale di alglibov. Ho quello vecchio sotto forma di codice, ma non il terminale.

Il sorgente stesso di Alglib è stato riscritto da MQ per le sue matrici. Non voglio nemmeno discutere il CorrCoef standard, ci sono problemi evidenti.

Esistono due sorgenti di Alglib.

  • Quello originale sulle matrici dinamiche PRIMA della trasformazione MQ.
  • MQ modificato per i suoi tipi di matrice/vettore. Questo è ciò che ho testato.
I sorgenti di entrambe le versioni di Alglib dovrebbero essere disponibili, in modo da poterli confrontare tra loro.
 
fxsaber #:

Orari.


Beh, sì... le persone dedicano anni agli algoritmi. Ho visto un articolo sull'ordinamento veloce in C++: il codice sembra più complicato e compie azioni non necessarie, ma funziona più velocemente grazie al pre-calcolo del processore. Guardando avanti...
 
fxsaber #:

Lo stesso sorgente Alglib è stato riscritto da MQ per le sue matrici. Non voglio nemmeno discutere il CorrCoef standard, ci sono problemi evidenti.

Cioè, ci sono due sorgenti di Alglib.

  • Quello originale sulle matrici dinamiche PRIMA della trasformazione MQ.
  • MQ modificato per i suoi tipi di matrice/vettore. Questo è ciò che ho testato.
I sorgenti di entrambe le versioni di Alglib dovrebbero essere disponibili, in modo da poterli confrontare tra loro.
Sono pigro. Non uso la correlazione. Ho solo notato una differenza di velocità un anno fa e l'ho condivisa quando è emerso l'argomento.
 
fxsaber #:
NumPy sembra avere un algoritmo diverso da ALglib

In AlgLib, la documentazione originale dice perché sono diversi, quali e a cosa servono. Con le regressioni (stavo scavando soprattutto in AlgLib) è abbastanza originale.

Ancora una volta, tutto si confronta in modo strano, come non si può fare. Costruite i grafici delle dipendenze velocità=f(dimensionalità,proprietà_speciali_della_matrice) per diverse librerie/realizzazioni e guardateli. State prendendo dei casi limite, presi dal soffitto.

e lì non si guarda al valore assoluto, ma alla sintomatologia e alla presenza di un "plateau". Da lì si sceglie uno strumento per lavorare con dati specifici.

 
Forester #:

La CPU di Maxim è 2 volte più veloce della mia. Non ricordo se ha fornito i tempi per Algliba, credo di no.

Ho il mio computer attraverso la virtualizzazione, i test non saranno molto plausibili.

Inoltre ho scelto di calcolare qualcosa in python e poi trasferirlo su qualsiasi piattaforma. Per esempio, per la crittografia non hai bisogno di terminali.

In termini di velocità è una vera schifezza.
 
Maxim Kuznetsov #:

Anche in questo caso, si tratta di uno strano modo di confrontare le cose, in un modo che non si può fare.

Non faccio confronti, fornisco codice che ognuno può misurare per il proprio caso.

La lunghezza della stringa di 100 è la lunghezza dello schema. Probabilmente non avete bisogno di più di questo.

15000 campioni sono limitati in memoria a causa della dimensione quadratica della matrice di correlazione. Più campioni ci sono, meglio è. Ecco perché ne ho scritto uno fatto in casa, dove è possibile averne un milione.

Non ho né voglia né tempo da dedicare al confronto oggettivo. L'ho realizzata per i miei compiti e ho condiviso il codice di lavoro. Chiunque ne abbia bisogno lo vedrà.

 
Ehhh... Se anche solo il 5% di tutti i nostri sforzi fosse diretto a un compito comune, conquisteremmo questo mercato in pochi mesi.

E così da anni, decenni, ognuno bolle nel proprio brodo e il 90% del tempo utile viene speso su questo inutile forum.