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

 

E così, il mio concetto di come il "machine learning" potrebbe essere implementato in relazione al trading MQL:


Prima i concetti di base:

1. La firma è una descrizione numerica del carattere delle modifiche dei valori dei parametri. La firma è fatta da un algoritmo speciale. Ha un formato. È memorizzato in un blocco speciale (array). È il risultato finale di tutti gli algoritmi, calcoli e operazioni.

2. periodo corrente - un periodo di tempo stabilito. È implementato in un ring buffer attraverso il quale passano i valori dei parametri. Ogni nuovo valore sposta l'intera coda dei valori precedentemente registrati e prende la testa dell'array, e il valore più vecchio viene cancellato. Ci possono essere molti periodi attuali, e ognuno può essere dedicato a una scala temporale e a un parametro diversi.

3. Intervallo del valore del parametro - l'intervallo entro il quale cambia il valore di un parametro. È impostato dall'esperienza durante il test del sistema. L'intervallo tra i valori min e max può includere una divisione in intervalli più piccoli, che servono a spezzare l'intera gamma dei valori di un parametro e a portarli in una scala conveniente.

4. Spazi temporali tra i valori in arrivo - misurati man mano che i valori arrivano nel ring buffer. Insieme agli intervalli sono necessari per compilare la natura del cambiamento di valore e la successiva analisi matematica.

5. Curva di cambiamento del valore - visualizzazione condizionale del cambiamento del valore nel programma, che combina i valori stessi e gli intervalli di tempo tra di essi. Il risultato è una curva grafica (rappresentata in matrice bidimensionale) alla quale si possono applicare vari metodi di analisi matematica.

6. Filtri matematici - metodi di analisi (formule) che rivelano varie caratteristiche del cambiamento di valore nel periodo corrente.

7. Riduzione del valore a un intervallo - riassumendo il valore corrente per ridurre il numero delle sue varianti. È necessario nell'analisi della variazione.

8. Raccolta di statistiche di firma - Processo che viene effettuato durante il test del sistema o durante il funzionamento in condizioni reali. In realtà "l'esperienza" del sistema è raccolta, la sua "conoscenza" con varie situazioni che rappresentano vari caratteri di comportamento dei valori di vari parametri è effettuata. Queste firme sono memorizzate in un database speciale.

9. Database di firme - Blocco di memoria dove sono memorizzate tutte le firme effettive. Il luogo di stoccaggio delle "esperienze" del sistema, filtrate da una costante selezione statistica. All'interno del database, le firme rilevanti sono selezionate e ruotate e quelle meno rilevanti sono gradualmente sostituite. La selezione è guidata dal periodo corrente da cui certe firme sono prese nel database dopo la loro creazione (dopo l'analisi e il filtraggio dei valori, naturalmente). Quelle più ricorrenti sono affollate da quelle meno ricorrenti.


Descrizione del processo di lavoro del sistema:

Immaginiamo un motore di programma - da una parte che riceve i valori dei parametri, dall'altra che dà le firme pronte dei modelli dei loro cambiamenti in vari periodi di tempo. Un motore che memorizza anche queste firme in un database e le fa ruotare nel database.

Supponiamo che un utente digiti un gruppo di parametri semplicemente puntando il motore su variabili predefinite o parametri d'ambiente. Questi parametri cominciano ad essere "osservati" dal motore. Cioè, i loro valori vanno in buffer circolari, vengono collassati in periodi di tempo e analizzati attraverso filtri matematici. Di conseguenza - le firme finite vengono inserite nel database.

Poi, l'utente comincia ad "addestrare" il motore, che si fa come segue:

Collega i valori dei parametri di input della sua strategia a firme specifiche. Cioè, imposta la dipendenza dei valori dei parametri di input su specifici "cast" digitali della situazione attuale. Inoltre, l'utente può collegare le sue chiamate di funzione alle firme selezionate, semplicemente indicizzando queste chiamate. Il motore chiamerà le funzioni definite dall'utente in base al loro numero sulle firme selezionate.

Tuttavia, il sistema non è indipendente in questa fase, poiché l'utente deve "addestrare" manualmente il sistema collegando i migliori valori dei parametri di input della sua strategia a firme specifiche. Immaginiamo come il sistema potrebbe essere ulteriormente sviluppato verso la piena indipendenza:

Per questo, il sistema non dovrebbe solo raccogliere le firme nella fase di apprendimento, ma in parallelo ottimizzare i parametri di input della strategia in modo da ottenere la massima redditività di questa strategia. Nel momento in cui si raggiunge la massima redditività, i valori dei parametri di input saranno collegati alla firma specifica che riflette la situazione in cui questi valori sono più efficaci. Quindi, avendo una serie di firme che riflettono una grande varietà di situazioni di mercato, il sistema avrà impostazioni pronte dei parametri di input della strategia per ogni situazione.

//===================================================================================

Questo approccio può non avere nulla a che fare con la comprensione classica del machine learning, ma il fatto che realizzi il suo scopo nel trading è certo. Fin qui è tutto in termini generali, ma non ho dubbi sulla validità di questo approccio e sulla fattibilità di implementarlo in MQL.

Si prega di condividere l'opinione degli esperti di IO e di altri che sono interessati a questo.

Grazie per l'attenzione.



 
panturale:

Grazie mille, è proprio quello che ha ordinato il dottore! Breve e conciso! Tutto il MO in 10 righe! Pantural è contento, Pantural ti ringrazia! Yo hey, kamon!

double perceptron() 
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = iAC(Symbol(), 00);
   double a2 = iAC(Symbol(), 07);
   double a3 = iAC(Symbol(), 014);
   double a4 = iAC(Symbol(), 021);
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }

Ora puoi capire la differenza tra l'ingenuità infantile e il trolling grasso...

Ma a quanto pare è il primo.

panturale:

Salve a tutti. Sono Pantural.

La mia terza volta cercando di stabilirsi sul forex, sento che questo è qualcosa, ma la vita piega il suo corso, e oltre la prugna 2 depo 200 $ ciascuno, non è venuto. Sto cercando di fare dei buoni risultati ora più di 4 anni fa, almeno gli spreads sono wow cool (oh mio dio! è il pantural! wow!)

 
Tag Konow:

E così, il mio concetto di come il "machine learning" potrebbe essere implementato in relazione al trading MQL:

Non importa in quale lingua sia il MO, l'importante è che qui si consideri il concetto di MO come segue:

1. Mi viene in mente un'idea

2. Abbiamo preso il primo pacchetto disponibile da R

3. Testatelo, assicuratevi che il pacchetto sia spazzatura o dia risultati insoddisfacenti secondo l'idea, andate al punto 2 per provare tutti i pacchetti. Quando hai finito i pacchetti, vai al punto 1.

Quello che cercate di assimilare o attuare, non sarete capiti qui, al massimo sarete chiamati troll.

 
Andrey Dik:

Non importa in che lingua sia il MO, ciò che è importante è che qui il concetto di MO è visto come segue:

1. Mi viene in mente un'idea.

2. Otteniamo il primo pacchetto che vediamo da R

3. Controllalo, assicurati che il pacchetto sia spazzatura o dia risultati insoddisfacenti secondo l'idea, vai al punto 2 per provare tutti i pacchetti. Quando hai finito i pacchetti, vai al punto 1.

E quello che cerchi di assimilare o realizzare - non sarai capito qui, nel migliore dei casi ti dichiareranno un troll.

Sono d'accordo con i primi tre punti. Ma questi sono utenti comuni che si comportano in questo modo. Ci sono specialisti che devono capire di cosa sto scrivendo.

Se anche loro non hanno nulla da dire sull'essenza del concetto, significa che il quadro locale è così ristretto da non permettere alcun libero pensiero. Vediamo...

 
Tag Konow:

Sono d'accordo con i primi tre punti. Ma sono gli utenti comuni che si comportano così. Ci sono esperti che dovrebbero capire di cosa sto scrivendo.

Se non hanno niente da dire sull'essenza del concetto, allora il quadro locale è così ristretto che non permette alcun pensiero libero. Vediamo...

Non utenti comuni, ma utenti molto intelligenti, alcuni con dottorati di ricerca, ma sono utenti di R e questo dice tutto.

Potete parlare con Yuri Reshetov sull'argomento, ma anche lui non ha la pazienza di scrivere qualcosa qui per molto tempo.

 
mytarmailS:

Quello chetoxic ha mostrato è una specie di clustering ma con un insegnante, i punti all'inizio sono i segni o meglio i loro parametri numerici, avete un target di acquisto e vendita, quindi prima dell'allenamento avete segnato su (comprare) e giù (vendere), e l'algoritmo inizia a dividere i parametri dei segni per il target, come l'area blu è comprare, rosso è vendere...

Ma in questo momento l'ultimo ronzio è qualcosa del genere

https://www.youtube.com/watch?v=05rEefXlmhI

https://www.youtube.com/watch?v=qv6UVOQ0F44

https://www.youtube.com/watch?v=xcIBoPuNIiw

ma sono un nerd totale.

E questo è esilarante).

https://www.youtube.com/watch?v=pgaEE27nsQw

Grazie per questi video, i dinosauri che saltano specialmente consegnano ))))

imho la rete neurale per Mario illustra un punto importante:

si può addestrare un algoritmo a superare un particolare livello (anche molto difficile)

ma questo non significa che avrà lo stesso successo su un altro livello

e se si guarda da vicino come questo bot passa un livello, è chiaro

è solo un tweak e il bot non ha senso della situazione e non ha una vera intelligenza da giocatore

La rete ha appena preso il tempo per i pulsanti.

Lo si capisce dal modo in cui Mario sbatte la faccia contro gli ostacoli e salta contro i muri.

il suo successo è più casuale che logico

proprio come nel forex, un bot può passare con successo una sezione/livello e fallire un'altra

perché non ha l'intelligenza del trader e il bot "non capisce" cosa sta facendo...

per avere successo in qualsiasi area/livello il bot dovrebbe avere un modello a oggetti del mondo in cui esiste

cioè, l'algoritmo non deve solo ottimizzare i modelli

L'algoritmo deve operare con categorie semantiche e descrivere la situazione come è vista dal commerciante/giocatore

Il bot deve distinguere i tipi di oggetti e le loro caratteristiche, e valutare dinamicamente il pericolo della situazione

e questo richiede un livello di euristica molto diverso dalla semplice ottimizzazione della rete neurale

Il risultato dell'apprendimento deve essere un modello semantico e la conoscenza di oggetti e processi.

Se è assente, allora i bot commerciali sono condannati al poking casuale

è spesso chiaro dalla storia delle transazioni dei bot quanto stupidamente l'algoritmo valuta la situazione del trading

ed entra dove un normale commerciante umano non sarebbe mai stato coinvolto

Ecco perché sono pessimista sulla robotica

si può al massimo fare un semi-robot con una descrizione del dominio sotto forma di elaborazione di alcune situazioni tipiche

(ad esempio, flat-out o inversione di tendenza)

ma comunque, devi tenere d'occhio il tuo robot, per evitare che faccia delle irregolarità come fanno i bot di Mario in un nuovo livello

 
transcendreamer:

...

Sono d'accordo con il suo punto di vista.
 
Tag Konow:

Sono d'accordo con i primi tre punti. Ma sono gli utenti comuni che si comportano così. Ci sono esperti che devono capire di cosa sto scrivendo.

Se non hanno niente da dire sull'essenza del concetto, significa che il quadro locale è così ristretto da non permettere alcun libero pensiero. Vediamo...

MoD è prima di tutto un'arte ingegneristica, il risultato giustifica qualsiasi concetto. Dammi il risultato. Ecco la sfida: https://numer.ai/

Numerai
Numerai
  • numer.ai
A new kind of hedge fund built by a network of data scientists.
 
Tag Konow:

E così, il mio concetto di come il "machine learning" potrebbe essere implementato in relazione al trading MQL:

Prima i concetti di base:...................

Per favore, date la vostra opinione agli esperti di MQL e a chiunque altro sia interessato.

Inizierò con le basi: per prima cosa inizierò con le basi dell'apprendimento automatico.

Personalmente non lo capisco nemmeno)

Ma potrei, non mi considero un esperto.

 

MoD è prima di tutto un'arte ingegneristica, il risultato giustifica qualsiasi concetto. Dammi il risultato. Ecco la sfida: https: //numer.ai/

E per quanto riguarda l'approccio? Altrimenti - "dare, dare... ".)) Farò questo motore. Ma dopo che il progetto principale è finito.