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

 

Il nuovo articolo Sviluppo di un robot in Python e MQL5 (Parte 1): Preelaborazione dei dati è stato pubblicato:

Sviluppo di un robot di trading basato sull'apprendimento automatico: Una guida dettagliata. Il primo articolo della serie tratta della raccolta e della preparazione dei dati e delle caratteristiche. Il progetto è stato implementato utilizzando il linguaggio di programmazione e le librerie Python, nonché la piattaforma MetaTrader 5.

Il mercato sta diventando sempre più complesso. Oggi si sta trasformando in una battaglia di algoritmi. Oltre il 95% del fatturato del trading è generato dai robot. 

Il passo successivo è l'apprendimento automatico. Non si tratta di IA forti, ma non sono nemmeno semplici algoritmi lineari. Il modello di apprendimento automatico è in grado di realizzare profitti in condizioni difficili. È interessante applicare l'apprendimento automatico per creare sistemi di trading. Grazie alle reti neurali, il robot di trading analizzerà grandi dati, troverà pattern e prevederà i movimenti dei prezzi.

Esamineremo il ciclo di sviluppo di un robot di trading: la raccolta dei dati, l'elaborazione, l'espansione del campione, l'ingegnerizzazione delle caratteristiche, la selezione e l'addestramento del modello, la creazione di un sistema di trading tramite Python e il monitoraggio delle operazioni.

Lavorare in Python ha i suoi vantaggi: la velocità nel campo dell'apprendimento automatico come la capacità di selezionare e generare caratteristiche. L'esportazione dei modelli in ONNX richiede esattamente la stessa logica di generazione delle caratteristiche di Python, il che non è facile. Ecco perché ho scelto il trading online tramite Python.


Autore: Yevgeniy Koshtenko

 
Un approccio sensato 👍 un modo interessante di selezionare i tratti.
 
Grazie mille per questo interessante articolo. Non ho mai usato python prima d'ora, ma mi hai fatto interessare all'apprendimento di questo potente strumento. Non vedo l'ora di leggere nuove pubblicazioni e di seguire la tendenza!
 

В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.

Tra l'altro, su oltre 700.000 dati, il prezzo è cambiato di più dello spread solo in 70.000 casi.

EURUSD ha uno spread di ~0 il 90% delle volte. State lavorando con dati H1. Come avete ottenuto questo risultato?

 
Кстати, искушенный в машинном обучении читатель уже давно понял, что мы в итоге разработаем модель классификации, а не регрессии. Мне больше нравятся регрессионные модели, я в них вижу немного больше логики для прогнозирования, нежели в моделях классификации. 
Sembra che la seconda frase contraddica la prima.
 

Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).

Utilizzeremo un approccio automatico. Applicheremo il nuovo metodo di creazione delle caratteristiche per estrarre automaticamente le migliori caratteristiche dai nostri dati. Selezioneremo quindi quelle più informative dall'insieme risultante.

La migliore caratteristica per la previsione dei prezzi è risultata essere il prezzo di apertura stesso. I segnali basati su medie mobili, incrementi di prezzo, deviazione standard, variazioni di prezzo giornaliere e mensili sono stati inclusi nella parte superiore. I segnali generati automaticamente si sono rivelati poco informativi.

C'è una questione di qualità degli algoritmi per la generazione delle caratteristiche, o piuttosto la loro completa assenza.


Una persona ha generato tutti gli attributi dai dati OHLCT - cinque colonne in totale. Si sta spingendo l'algoritmo di generazione delle caratteristiche su un numero molto maggiore di caratteristiche originali. È difficile immaginare che l'algoritmo di generazione del chip non sia in grado di riprodurre il più semplice chip MA.

 
Mi sono piaciuti il linguaggio, lo stile e la presentazione delle informazioni nell'articolo. Grazie all'autore!
 

Il clustering delle caratteristiche combina caratteristiche simili in gruppi per ridurre il numero di caratteristiche. Questo aiuta a eliminare i dati ridondanti, a ridurre la correlazione e a semplificare il modello senza overfitting. La caratteristica migliore per la previsione dei prezzi si è rivelata essere il prezzo di apertura stesso.

Il clustering ha scartato i prezzi HLC perché rientravano nello stesso cluster del prezzo O?

Se il prezzo si è rivelato il miglior segno per la sua previsione (e gli altri segni sono i suoi derivati), significa che dovremmo dimenticarci degli altri segni e che è ragionevole aggiungere altri dati di input passando a un timeframe inferiore e prendendo i prezzi di altri simboli come segni?

 

I prezzi dovrebbero ovviamente essere rimossi dal campione di allenamento, poiché il MO non funzionerà adeguatamente sui nuovi dati, soprattutto se non rientrano nell'intervallo di allenamento.

L'elevata informatività dei prezzi deriva dall'unicità dei loro valori, cioè è più facile per l'algoritmo ricordare o abbinare i prezzi alle etichette.

Nella pratica del MO, non vengono rimosse solo le caratteristiche non informative, ma anche quelle sospettosamente sovrainformative, che sono i prezzi grezzi.

In uno scenario ideale, dovrebbero esserci diversi attributi +- ugualmente informativi. In altre parole, non ci sono chiari leader o outsider. Ciò significa che nessuno degli attributi sporca la formazione e non tira la coperta su se stesso.
 
Maxim Dmitrievsky #:

I prezzi dovrebbero ovviamente essere rimossi dal campione di allenamento, poiché il MO non funzionerà adeguatamente sui nuovi dati, soprattutto se non rientrano nell'intervallo di allenamento.

Se si passa ai rendimenti, l'algoritmo di generazione delle caratteristiche è obbligato a generare una somma cumulativa, che sarà costituita dagli stessi prezzi. Allo stesso tempo, non si saprà che si tratta di prezzi.

 
fxsaber #:

Se si passa ai rendimenti, l'algoritmo di generazione delle caratteristiche è obbligato a generare una somma cumulativa, che sarà costituita dagli stessi prezzi. Non si saprà che si tratta di prezzi.

Non capisco

Tutti i segni dovrebbero essere pseudo-stazionari, come gli incrementi. I prezzi grezzi dovrebbero essere eliminati dalla formazione.