Discussione sull’articolo "Sviluppo di un robot in Python e MQL5 (Parte 1): Preelaborazione dei dati" - pagina 6

 
A proposito di segni stazionari, un'altra osservazione.

Il modello XGBoost nei test, indipendentemente dal numero di volte in cui lo eseguo, in date diverse, mostra uno dopo l'altro proficui forward, decine di volte in date diverse con segni attuali. Anche se sono un principiante, ma non un idiota, ho interrotto l'allenamento per il periodo 2007-2016 e poi ho eseguito un test forward puro. L'accuratezza dei tag con operazioni di rischio-ricompensa 1:8 - 66% sui forward è nella media, a volte l'XGB fa registrare il 72-74%. Tutti gli altri modelli, le reti neurali, tutti gli altri bousting, le foreste casuali - versano in modo indecoroso.

Non pubblicherei nemmeno il primo articolo di un ciclo con le caratteristiche attuali se il modello è stato usato in avanti per oltre 10 anni.

C'è un motivo per cui il modello XGB batte molti concorsi di previsione e di scienza dei dati. A quanto pare, in qualche modo sa come lavorare con i dati grezzi. E la convalida incrociata è integrata. Me ne ha parlato un conoscente scienziato, dottore in scienze, che lo usa per le previsioni, beh, e anche per fare trading, mi ha lanciato un report di trading con un fattore di profitto di 55, ma è scomparso da Internet, aveva molti sviluppi, non è chiaro cosa possa essergli successo. In realtà è stato lui e anche i super articoli di Maxim Dmitrievsky a portarmi al MO un paio di anni fa.

Ma XGB richiede molto tempo per essere appreso. L'ultimo modello è stato addestrato per due giorni, sono già stanco di aspettare, mentre un normale booleano di solito impara in un paio di minuti sul server. Ma per me questo è in qualche modo un indicatore della complessità e dell'efficienza dell'algoritmo. Affitterò un server più potente per la ricerca.

Spero che la versione ONNX non pesi troppo e non abbia troppe righe. In MQL5 c'è un limite al numero di righe di dati del modello ONNX. Una volta ho addestrato un modello con 100 milioni di righe e ne sono rimasto molto turbato, mcl non me lo fa usare) Penso che peserà molto, e anticipando questo ho realizzato un modello per il trading online direttamente tramite Python, che apparirà nei prossimi articoli del ciclo, lunedì lo metterò alla prova. La bozza della serie è già pronta. All'inizio volevo pubblicare tutto in un unico foglio, ma l'amministrazione non me l'ha permesso, e probabilmente ha ragione, sarebbe stato noioso leggere un tale pasticcio).

L'idea di uno scalper per Sber in Finam MT 5 è apparsa, il punto è che c'è una funzione nella libreria Python mkle per ottenere la storia dello stack dei prezzi, e se addestrassimo un modello su di esso, e lo lasciassimo scalpitare, i ragazzi del propakh fanno trading sullo stack, e con discreto successo. A giudicare dall'esperienza dei prop trader, non sono il primo ad avere un'idea del genere, e ci sono molti algoritmi di scalping di questo tipo su MO da molto tempo. Lo scalping è interessante perché la redditività può essere coperta giorno per giorno. Ho un conto Finam come investitore straniero in Russia, anche se piccolo) Quindi forse l'ultimo articolo della serie sarà dedicato a questo scalper sulla Borsa di Mosca o sul CME, tramite Finam o AMP Futures Europe.

Ho anche una bozza di computer vision su Python, di cui farò un articolo dopo l'attuale ciclo.

Le idee sono tante, davvero tante, ogni giorno ne spunta una nuova e mi siedo a lavorare sul codice. Anche se mia moglie dice: "Facciamo già i soldi, prendiamo il Prop USA con quello che abbiamo, facciamo i soldi". Ci sono già decine di modelli addestrati. Ma io sono più interessato alla ricerca. Credo che sia vero, dovrei aprire un conto e calmarmi. Ho fatto un conto a febbraio, e peccato che ci siano stati problemi con il prop con le quote meta, mi pare di capire che il prop non volesse comprare le licenze e chemed. La fortuna ha voluto che il mio prop rimuovesse MT 5, io facevo trading con le mie mani attraverso un altro terminale che hanno messo al posto di MT 5, e ho finito per perdere. Prenderò un nuovo conto in un'altra piattaforma con MT 5, e scriverò notizie in merito, su come sta andando il trading.

Per quanto riguarda il fatto che la scelta dei migliori predittori dovrebbe essere limitata alla data di FORWARD, è un'ottima idea, in qualche modo mi è sfuggito questo punto).
 

Campione forward dal 2010, formazione prima del 2010.

Ad esempio, ho implementato anche il campione EXAMWARD per testare il modello separatamente, ecco il risultato. Tutti gli altri modelli e reti neurali si sono basati su queste caratteristiche fin dal primo giorno.

 

Ecco come si differenzia un semplice forward:

E un forward con chip come la convalida incrociata, il bagging del modello (sì, questo è tutto cucito in XGB per impostazione predefinita, credo, ma ho deciso di implementarlo), l'enumerazione degli iperparametri della griglia, ecc:


 
Yevgeniy Koshtenko #:
Se le etichette delle classi non vengono azzerate, allora la caratteristica migliore per prevedere le etichette saranno le etichette stesse, no?

Non si azzerano le etichette (che significa azzerare - cancellare - come sinonimo), ma si escludono le colonne che contengono le etichette e si inseriscono le etichette stesse separatamente nel modello come target, cioè le informazioni su di esse non vengono azzerate e non scompaiono irrimediabilmente, ma vengono utilizzate durante l'addestramento del modello.

 
Yevgeniy Koshtenko #:
Il modello XGBoost sui test, non importa quante volte lo esegua, in date diverse, mostra uno dopo l'altro proficui forward, decine di volte in date diverse con segni attuali. Anche se sono un principiante, ma non un idiota, ho interrotto l'allenamento per il periodo 2007-2016, e poi ho eseguito un test forward puro. L'accuratezza dei tag con operazioni di rischio-ricompensa 1:8 - 66% sui forward è nella media, a volte XGB tira fuori il 72-74%. Tutti gli altri modelli, le reti neurali, tutti gli altri bousting, le foreste casuali, hanno un'accuratezza spaventosa.

Ci sono molti errori da principiante nell'articolo - ho scritto prima, se si usa lo stesso codice - ci possono essere miracoli.

Provate a fare trading con la vostra soluzione per un mese su una demo, poi confrontate i punti di ingresso aggiungendo un campione per testare il modello.

È sicuramente interessante leggere dei miracoli di XGB, soprattutto per quanto riguarda il modo in cui hai trovato gli iperparametri - ho letto che è molto sensibile a questi ultimi.

 
Rashid Umarov #:

Non volevo fare questa supposizione per non offenderti :)

D'ora in avanti, controlla la tua fonte prima di rimproverare

Ho installato il terminale in modalità portatile, devo scrivere la chiave "portatile" in qualche modo?

Se il terminale è in esecuzione - il codice non funziona, e se lo si spegne, prova ad avviarsi senza la chiave, ma non funziona nemmeno.

 
Aleksey Vyazmikin #:

Ho installato il terminale in modalità portatile, devo scrivere la chiave "portatile" in qualche modo?

Se il terminale è in esecuzione, il codice non funziona, e se è spento, tenta di avviarsi senza la chiave, ma non funziona nemmeno questo.

Provate a eseguirlo direttamente dal terminale. Basta lanciare lo script sul grafico per stampare i risultati nella scheda "Esperti".

Forse è necessario specificare il percorso della cartella python nel meta-editor.

A me funziona così. Ma dopo un bel po' di balletti))))

 
Aleksandr Slavskii #:

Provate a eseguirlo direttamente dal terminale. Basta lanciare lo script sul grafico e i risultati vengono stampati nella scheda "Esperti".

Forse è necessario specificare il percorso della cartella python nel meta-editor.

A me funziona così. Ma dopo un bel po' di balletti))))

State usando il terminale in modalità portatile?

In ME il percorso è prescritto (appare automaticamente).

 
Aleksey Vyazmikin #:

Siete in modalità portatile utilizzando il terminale?

In ME il percorso è prescritto (appare automaticamente).

Ho controllato nella versione portatile e tutto funziona.

Se sono in esecuzione due terminali e il percorso del terminale non è specificato nello script, si verifica un errore in uno dei terminali quando si cerca di compilare.

 
Aleksandr Slavskii #:

Controllato nella versione portatile, tutto funziona.

Se sono in esecuzione due terminali e il percorso del terminale non è specificato nello script, si verifica un errore in uno dei terminali quando si cerca di compilare.

L'ho eseguito dal terminale

2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 1)
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 2)
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 3)
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 4)
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 5)

Il percorso è stato specificato in entrambi i modi per il terminale.

terminal_path = "C:/FX/MT5_02/terminal64.exe"
#terminal_path = "C:\\FX\\MT5_02\\terminal64.exe"

Da qualche parte sta cercando nel posto sbagliato: c'è una cronologia nel terminale.