L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2956
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
Nella guida di OnnxTypeInfo mancano spiegazioni sul campo dimensions[]. Sarebbe opportuno spiegare il significato di questo array almeno sull'esempio del progetto ONNX.Price.Prediction, dove (MT5 versione 3621) risulta così:
Ed ecco la mia implementazione dell'EA sui miei neuronici
Mi chiedo che tipo di libreria sia questa.
Nella guida di OnnxTypeInfo mancano spiegazioni sul campo dimensions[]. Sarebbe opportuno spiegare il significato di questo array almeno sull'esempio del progetto ONNX.Price.Prediction, dove (MT5 versione 3621) risulta così:
In termini python, questa è la forma dell'oggetto.
In termini python, questa è la forma dell'oggetto.
I numeri negativi e il fatto che la lunghezza dell'array sia di un'unità superiore al numero di dimensioni dei parametri creano confusione.
Inoltre, la forma dei parametri viene impostata nello script, non presa dalle proprietà del modello. Si tratta di un bug o di una caratteristica?
I numeri negativi e il fatto che la lunghezza della matrice sia di un'unità superiore al numero di misure dei parametri creano confusione.
Inoltre, la forma dei parametri viene impostata nello script, non presa dalle proprietà del modello. Si tratta di un bug o di una caratteristica?
Sì, ho dimenticato i valori negativi. Controllerò.
Ciao a tutti!
Riesco a fare trading con un certo successo in modalità manuale, ma vorrei comunque automatizzare il processo. Pensando a questo, ho deciso di provare a consultare il tema del machine learning. Chi utilizza quali modelli e con quale successo? Il mio modo di vedere il problema è il seguente:
L'idea fondamentale è che non è la direzione del trend che deve essere prevista, ma i tre punti: comprare, vendere e aspettare. Ovvero 1 (comprare), -1 (vendere), 0 (mantenere l'operazione in corso se c'è o non fare nulla se non ci sono operazioni). È auspicabile lavorare con le serie temporali sui minuti, cosa che non ho ancora capito. È importante prendere in considerazione le serie temporali per un certo numero di barre passate, in modo che gli indicatori sulla storia siano presi in considerazione, altrimenti la loro dinamica non sarà chiara. Io ne ho circa 30, probabilmente è difficile da tenere a mente, ma comunque in qualche modo riesco a fare trading con le mie mani.
Come ho capito, nell'apprendimento automatico ci sono compiti di classificazione, ad esempio se la tendenza sarà al rialzo o al ribasso, o la previsione di un valore specifico come il prezzo sarà qui con un tale errore. Ma nei mercati finanziari il compito è un po' diverso: massimizzare i profitti riducendo al minimo i drawdown. E non ho visto questo tipo di modelli di piccolo apprendimento.
Cioè più profitto quando la sua dimensione è massimizzata per ogni possibile operazione e le perdite sono ridotte al minimo, con un'elevata precisione nell'entrata e nell'uscita da un'operazione:
Profitto = operazioni positive - operazioni perdenti, tenendo conto dello spread,
dove la somma delle operazioni positive deve tendere al massimo e la somma delle operazioni perdenti deve tendere a zero. Quindi il profitto tenderà al massimo per definizione, a parità di altre condizioni (ad esempio la dimensione del lotto).
In altre parole, a mio parere, dovrebbe esistere un modello di questo tipo, in modo che gli input e gli output siano più accurati.
I numeri negativi e il fatto che la lunghezza della matrice sia di un'unità superiore al numero di misure dei parametri creano confusione.
Inoltre, la forma dei parametri viene impostata nello script, non presa dalle proprietà del modello. Si tratta di un bug o di una caratteristica?
Il valore negativo della dimensione significa che questa dimensione non è fissa e viene impostata tramite un parametro esterno. Pertanto, lo script dovrebbe specificare esplicitamente la dimensionalità.
È chiaro che l'esempio dell'utilizzo del modello ONNX in MQL5 è solo un'illustrazione di ciò e niente di più. Tuttavia, vorrei richiamare l'attenzione su un errore molto importante. Nell'apprendimento automatico, la prima fase è la preelaborazione. Questa include molte cose, dalla banale normalizzazione alla riduzione della dimensionalità e altri trucchi ingegneristici. La regola principale di qualsiasi trasformazione del predittore e del target in questa fase è che tutti i parametri di trasformazione (come media, mediana, sd, mad, ecc.) sono calcolati sul set di addestramento. Il set di test e i nuovi dati vengono elaborati utilizzando i parametri ottenuti sul set di addestramento.
Quindi nell'esempio è stato necessario calcolare media/sd sul treno, passare questi dati alla parte in cui viene fatto il predicato, elaborare i nuovi dati con questi parametri. Quindi, denormalizzare e ottenere i valori reali del prezzo previsto. Questa sequenza è importante.
È chiaro che nessuno inserisce i prezzi reali nell'input del modello, ma questo è già specifico.
Buona fortuna
Un valore negativo della dimensione significa che la dimensione non è fissa e viene impostata tramite un parametro esterno. Pertanto, lo script deve specificare esplicitamente la dimensionalità
Grazie, ora è più chiaro.
Per quanto ne so, nell'apprendimento automatico ci sono compiti di classificazione, ad esempio se la tendenza sarà al rialzo o al ribasso, o la previsione di un valore specifico come il prezzo sarà qui con tale e tale errore. Ma nei mercati finanziari il compito è un po' diverso: massimizzare i profitti riducendo al minimo i drawdown. E non ho mai visto questo tipo di modelli di apprendimento su Raspberry.
Questo problema viene risolto utilizzando una funzione di perdita appropriata durante l'addestramento dei modelli MO. Ci sono due problemi associati a questo. Il primo è di natura tecnica: le funzioni di perdita standard nei pacchetti MO sono legate alla massimizzazione del profitto solo indirettamente, il che porta alla necessità di crearne di personalizzate. Si tratta di un'operazione piuttosto difficile, che richiede una buona conoscenza dei pacchetti MO a livello di codice. Se questo problema viene risolto, potrebbe essercene un secondo, matematico, in cui la funzione di perdita personalizzata è negativa per l'addestramento del modello.
Se qualcuno risolve un problema così difficile, è improbabile che condivida la soluzione.