L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 3269
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Qual è l'obiettivo finale di tutta questa storia della correlazione?
Sarò in grado di calcolare ciò che gli altri non possono fare a causa di limitazioni tecniche.
Anche test e visualizzazione e azioni rapide, probabilmente.
Anche l'ottimizzazione finale è normale, per raccogliere i parametri delle offerte.
All'inizio ho provato a fare la variante frontale, cioè a contare tutte le righe ogni volta. Ho avuto l'impressione che ci sia un errore in Alglib, perché non sono riuscito a trovarlo nel mio.
Il risultato spesso coincide.
Ma in alcune situazioni non è così.
Se fosse sempre così, sarebbe colpa mia. Ma qui c'è qualcosa di strano.
Print(Matrix1);
Print("------------------");
Print(Matrix2);
La Matricex2 ha le prime 5 corrispondenze, poi gli zeri.
Le matrici sono diventate simili, ma IsEqual non passa. C'è qualcos'altro da qualche parte...Ho cambiato Res.Col(Corr.Row(0), i); in Res.Row(Corr.Row(0), i);
Modificato Res.Col(Corr.Row(0), i); in Res.Row(Corr.Row(0), i);
Sembra che sia sbagliato.
Realizzato
Print(Matrix1);
Print("------------------");
Print(Matrix2);
La Matricex2 ha le prime 5 corrispondenze, poi gli zeri.
Le matrici sono diventate simili, ma IsEqual non passa. C'è qualcos'altro da qualche parte...Ho cambiato Res.Col(Corr.Row(0), i); in Res.Row(Corr.Row(0), i);
Trovato il problema
Dovrebbe essere così
for (int i = 0; i < (int)Matrix.Cols(); i++)
{
if (i)
Vector.SwapCols(0, i);
CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);
Res.Col(Corr.Row(0), i);
}
P.S.
In generale, il tuo codice è bello e conciso. Io farei tutto in loops))))
E PearsonCorrM2 può essere accelerato di 2 volte se si conta per triangolo, cioè partendo dalla fine. Conta 100 righe con tutti, poi 99 con tutti 0-99, 99 e 100 già contati - puoi semplicemente copiarli. ...50 righe con tutti fino al 50° e così via.
Ho letto da qualche parte che è possibile leggere rapidamente la correlazione attraverso una trasformata di Fourier veloce... Anche come opzione per accelerare.
L'ho fatto. Ha senso quando la lunghezza della stringa è grande. Prima o poi ve lo mostrerò.
Trovato il problema
Dovrebbe essere così