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

 
Maxim Dmitrievsky:

È questo che è così fastidioso, le eterne integrazioni che richiedono più tempo dello sviluppo di TC. Mi piacerebbe fare anche un po' di python, ma non ho ancora il tempo.

Ahimè, non c'è soluzione a questo problema:

1. o scrivere in un linguaggio di terze parti (piattaforma) per il TS, ma si ottengono problemi:

a) nessun dato storico

b) nessun tester

c) nessun test su un conto demo

-) ci possono essere alcuni problemi con il supporto della piattaforma, per esempio, ho cercato su Google Alglib, ci sono pochissime informazioni su di esso, tutto solo sul sito dello sviluppatore, non c'è supporto

Tutte queste cose si devono risolvere con .dll, integrazioni e altre stampelle.

2. O scrivi tutto in MQL e non avrai problemi a.b.c.. Cercherete soluzioni pronte e apparati matematici nel codice base o scriverete tutta la logica (dell'apparato matematico) da zero con l'aiuto delle capacità MQL.

3. La variante universale è una .dll pronta all'uso, che può essere usata nel codice MQL. Se si scrive il codice da soli, questa è la soluzione più pratica, non si può usare la .dll per Market.

Molti sistemi di sviluppo e analisi permettono di creare una .dll come esempio - Matlab


ZS: MQL mi soddisfa al 90%, l'unica cosa che devo fare è visualizzare i risultati quasi da zero. In Matlab, l'output è sempre a portata di mano, una riga di codice e hai un grafico pronto, tutte le variabili sono visibili, puoi cambiare le variabili... in una parola, Matlab è un ambiente di sviluppo pronto per una matrice.

 
Igor Makanu:

Voglio dire che la ricerca in termini di MO, è un processo abbastanza specifico dove il lavoro principale è con le matrici, è un incubo lavorare con loro in linguaggi di basso livello. Il resto può essere in qualche modo sopravvissuto :)

 
Maxim Dmitrievsky:

tutte le librerie MoD si sono sviluppate, poiché questa si limita a librarsi sui professionisti

non comodo e lungo con MO in linguaggi di basso livello, specialmente la ricerca

Non ho solo il problema della scelta. E in generale, è tutto applicato - la mia enfasi è sui predittori e un po' di targeting, e più tempo viene speso solo per sviluppare nuovi predittori dalla carta al codice. Quindi la prima domanda che mi pongo è se è stata una buona idea aggiungere nuovi predittori o no! E con una risposta più chiara a questa domanda posso eventualmente cercare altre implementazioni/approcci di integrazione nel codice finale, ma ora ne sono lontano.

 
Igor Makanu:

Ahimè, non c'è soluzione a questo problema:

1. o scrivere in un linguaggio di terzi (piattaforma) TC, ma si ottengono problemi:

a) nessun dato storico

b) nessun tester

c) nessun test su un conto demo

Cosa vale in una lingua terza:

1. caricare la cronologia in CSV,

2. Fate un tester (questo è solo e non più di un loop),

3. su un conto demo, è possibile testare, per esempio, tramite lo scambio di file con il terminale. Se lo fai tramite RAM-Disk, le prestazioni sono come lo scambio attraverso la memoria - Gigabyte al secondo.

Se il sistema riesce, cosa che non succederà la prima volta, risparmierà molto tempo per la modellazione. E poi come stipare il tutto nel terminale è una questione gestibile.

 
Maxim Dmitrievsky:

Voglio dire che la ricerca in termini di MO, è un processo abbastanza specifico dove il lavoro principale è con le matrici, è un incubo lavorare con loro in linguaggi di basso livello. Il resto è ancora in qualche modo sopravvivibile :)

Capisco - io stesso sono nella stessa situazione, ecco perché dopo aver studiato la letteratura o lo strumento matematico, prima tiro tutto in Matlab, poi comincio a sperimentare e in parte lo porto in MQL. Le stesse matrici e vettori in Matlab sono inizialmente legate a tutte le variabili, non devi descrivere o analizzare nulla, basta lavorare, moltiplicare un vettore per una matrice o trasporlo, è difficile immaginare cosa Matlab non può fare in termini di operazioni matematiche

SZY: Con MO, è ancora lungo da risolvere in MQL, MATlAB sembra essere in grado di aiutare, ma ricordo che quando l'ho installato tutto era chiaramente lì e la rete era disegnata e lo stato di ogni elemento della rete poteva essere visualizzato passo dopo passo, come NeuroSolutions , forse più tardi ci arriverò

 
Aleksey Vyazmikin:

Non ho solo il problema della scelta. E in generale, è tutto applicato - la mia enfasi è sui predittori e un po' di targeting, e più tempo viene speso solo per sviluppare nuovi predittori dalla carta al codice. Quindi la prima domanda che mi pongo è se è stata una buona idea aggiungere nuovi predittori o no! E ci sarà una risposta più chiara a questa domanda, poi alla fine potremo cercare altre implementazioni/approcci da integrare nel codice finale, e al momento sono molto lontano da questo.

Onestamente, non so quale sia la tua filosofia di produzione del Graal, visto che usi il machine learning solo per selezionare i predittori... e poi cosa farne? )

 
Yuriy Asaulenko:

Cosa vale in una lingua terza:

1. caricare la cronologia in CSV,

2. Fate un tester (questo è solo e non più di un loop),

3. su un conto demo, è possibile testare, per esempio, tramite lo scambio di file con il terminale. Se lo fai tramite RAM-Disk, le prestazioni sono come lo scambio attraverso la memoria - Gigabyte al secondo.

Se il sistema riesce, cosa che non succederà la prima volta, risparmierà molto tempo per la modellazione. E dopo, come portarlo nel terminale è una questione gestibile.

1. Questo è quello che faccio in Matlab.

Ho provato a farlo in Delphi molto tempo fa, ma per fortuna non ci sono riuscito. Sono passato a MQL, posso vedere il drawdown e visualizzare come l'EA faceva trading, posso aggiungere indicatori già pronti come filtri aggiuntivi, aggiungere trailing bar, medie... Posso vedere tutto nel tester, simulare tutto in un software di terze parti.Perché è più facile studiare MQL da zero in 3-4 mesi e imparare a scrivere EAs da un template. Ora posso controllare qualsiasi indicatore grafico nel tester in 15 minuti - scrivo il mio EA usando un template pronto in forma di programmazione procedurale, cioè, collego solo funzioni pronte

3. si può, ma ho tutto in MQL, ciò che manca io aggiungere o collegare .dll


Ma poi di nuovo sulla questione della modellazione - viviamo in tempi felici, le soluzioni pronte sono un'inezia sul web, l'ambiente di modellazione e la piattaforma di trading dovrebbero essere separati, così si scopre che una persona deve essere uno sviluppatore e un programmatore e un matematico, e ... e tutto il resto.

O quello o come il 90% dei "commercianti" in runet commerciano con TS primitivo)))

 
Maxim Dmitrievsky:

Onestamente non so che tipo di metodologia di produzione del graal avete, visto che usate solo il machine learning per selezionare i predittori... e poi cosa ci fate? )

Seleziono i predittori allo scopo di sbarazzarmi di quelli errati che sono rumorosi e contribuiscono all'apprendimento eccessivo...

Allo stesso tempo sto estraendo i fogli degli alberi per R, che si rivelano anche essere dei buoni predittori e catbust li mangia con piacere.

Ora ho prolungato l'esperimento sulla divisione della radice dell'albero in R, cioè dopo aver costruito un nuovo albero (usando la genetica - non conosco i dettagli, per lo script delDr. Trader), rimuovo il predittore della radice e costruisco di nuovo l'albero - questo processo non è veloce - in media 3-4 giorni, quindi sono già su 29 spaccature, e ciò che è interessante, nuove e interessanti foglie dell'albero, che lavorano in profitti positivi nel 2014-2018 (ogni anno profitti), e la formazione è sul 2015-2017, appaiono anche ora. Da questo segue che gli algoritmi di costruzione degli alberi non sono ancora così bravi nei risultati, poiché mancano le cose ovvie quando hanno un surplus di buoni predittori, ma quando cominciano a morire di fame, emergono nuove soluzioni. In generale, da questa esperienza voglio provare a nutrire i predittori in gruppi e vedere dove sarà la maggiore sensibilità. Poi voglio costruire diversi alberi con diversi gruppi, farne un organo decisionale collettivo e mandarli a commerciare...

 
Aleksey Vyazmikin:

Seleziono i predittori per sbarazzarmi di quelli errati, che sono rumorosi e contribuiscono all'apprendimento eccessivo...

Allo stesso tempo, ho estratto i fogli degli alberi per R, che si rivelano anche buoni predittori e catbust li mangia avidamente.

Ora ho prolungato l'esperimento sulla divisione della radice dell'albero in R, cioè dopo aver costruito un nuovo albero (usando la genetica - non conosco i dettagli, per lo scriptDr. Trader), rimuovo il predittore della radice e costruisco di nuovo l'albero - questo processo non è veloce - in media ci vogliono 3-4 giorni, quindi sono già su 29 spaccature, e ciò che è interessante, anche ora appaiono nuove e interessanti foglie dell'albero, che lavorano in profitti positivi nel 2014-2018 (ogni anno profitti), e la formazione è sul 2015-2017. Da questo segue che gli algoritmi di costruzione degli alberi non sono ancora così bravi nei risultati, poiché mancano le cose ovvie quando hanno un surplus di buoni predittori, ma quando cominciano a morire di fame, emergono nuove soluzioni. In generale, da questa esperienza voglio provare a nutrire i predittori in gruppi e vedere dove sarà la maggiore sensibilità. Poi con gruppi diversi costruire alberi diversi, farne un organo decisionale tra pari e mandarli a commerciare...

non capisco bene la divisione della radice dell'albero... anche solo per lo schema :) e come possono le foglie lavorare separatamente, la struttura di lavoro è l'albero nel suo insieme...

Ci penserò domani, ho sonno :)

A proposito, mql5 ha classi standard ctree e cnode per costruire alberi binari. Se sai come usarli per il datamining... ma non lo so, ma sembra che tu abbia qualcosa del genere

 
Maxim Dmitrievsky:

Non capisco bene la divisione della radice dell'albero... uno schema sarebbe bello :) e come i fogli possono lavorare separatamente, la struttura di lavoro è l'albero nel suo insieme...

Ci penserò domani, ho sonno :)

A proposito, mql5 ha classi standard ctree e cnode per costruire alberi binari. Se sai come usarli per il datamining... ma non lo so, ma sembra che tu abbia qualcosa del genere

"Radice dell'albero", nella mia lingua, è il primissimo predittore che divide l'albero in altri rami - di solito in due parti (ma ci sono anche altre varianti).

La "divisione dell'albero" è l'esclusione del predittore radice dal campione prima di elaborare nuovamente i dati.

Le foglie sono solo un insieme di regole, che sono implementate raramente, ma possono dare risultati stabili a differenza dell'intero albero. Cioè sono per il trading senza fretta - se l'algoritmo non capisce la situazione del mercato, è meglio lasciarlo aspettare fino a quando la mappa è distesa e può prendere una decisione.

Ho trattato più di 20000 foglie finora e ho osservato la genetica, ma le foglie buone per le decisioni di trading sono circa 200 - quelle con profitto ogni anno e redditività accettabile (1,4 come minimo), ma ci sono buoni filtri con segnale di "attesa" - non li ho contati - ora sto sviluppando il mio metodo di selezione più preciso.

Ho 3 classi, cioè l'albero ha il segnale di acquisto, di vendita e di attesa, è ora sto sperimentando con catbust e ho semplificato gli obiettivi per essere compressi in una classe...

Non so nulla delle classi ctree e cnode, così come dell'OOP in generale - non sono molto bravo a programmare, quindi è difficile capire i codici delle classi senza un programmatore...