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

 
Renat Fatkhullin:

Abbiamo già detto che ci stiamo muovendo verso l'implementazione del machine learning in MQL5.

Presto rilasceremo il supporto nativo per i numeri complessi (pronto), vettori di velocità e matrici. Questa è esattamente la funzionalità nativa del linguaggio, non le librerie.

Poi includeremo una vasta serie di meccaniche ML e daremo funzionalità simili a TensorFlow. Questo ci permetterà di scrivere un livello completamente diverso di robot nativi.

Questo è interessante, ma abbiamo bisogno di interpreti di modelli dello stesso CatBoost con supporto per predittori categorici e diverse varianti di costruzione di alberi, più con multiclassificazione. Procedo da questo che ho bisogno di funzionalità per utilizzare le conquiste moderne, e poi funzionalità per ricrearle, migliorarle, riciclarle.

Costruito in diversi metodi di clustering, classificazione, conversione, compressione della dimensionalità, trasformazione, selezione di predittori può essere utile, adattato al commercio.

 
Aleksey Vyazmikin:

Questo è interessante, ma abbiamo bisogno di interpreti di modelli CatBoost con supporto per predittori categorici e diverse varianti di alberi, più la multiclassificazione. Presumo che abbiamo bisogno di funzionalità per utilizzare le conquiste moderne, e poi di funzionalità per ricrearle, migliorarle, riciclarle.

Costruito in diversi metodi di clustering, classificazione, conversione, compressione delle dimensioni, trasformazione, selezione di predittori - può essere utile con l'indennità di trading.

Tutto passo dopo passo.

Abbiamo già fatto cose (complessi, vettori e matrici nelle versioni alfa) che i linguaggi convenzionali, incluso Python (che non ha nemmeno matrici native di tipi semplici) non hanno.

In realtà, i filtri e i motori di TensorFlow non sono super complessi. Possono essere portati in modo creativo a MQL5 senza il peso della compatibilità con tutto ciò che è inerente al progetto iniziale.

Nel nostro tempo abbiamo trasferito e presentato in codice sorgente MQL5 circa 500 funzioni da R. E in MQL5 è da 3 a 50 volte più veloce.

Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
 
Renat Fatkhullin:

Abbiamo già detto che ci stiamo muovendo verso l'implementazione del machine learning in MQL5.

Presto rilasceremo il supporto nativo per i numeri complessi (pronto), vettori di velocità e matrici. Questa è esattamente la funzionalità nativa del linguaggio, non le librerie.

Poi includeremo un ampio set di meccanica ML e daremo funzionalità simili a TensorFlow. Questo vi permetterà di scrivere un livello completamente diverso di robot nativi.

Avete intenzione di usare WinML o DirectML o qualche vostra soluzione?

Ci sarà supporto per ONNX?

 
Renat Fatkhullin:

Abbiamo già detto che ci stiamo muovendo verso l'implementazione del machine learning in MQL5.

Presto rilasceremo il supporto nativo per i numeri complessi (pronto), vettori di velocità e matrici. Questa è esattamente la funzionalità nativa del linguaggio, non le librerie.

Poi includeremo una vasta serie di meccaniche ML e daremo funzionalità simili a TensorFlow. Questo permetterà di scrivere robot nativi su un livello assolutamente altro.

Renat, questo è davvero interessante. Spero in una documentazione completa sulla direzione sviluppata. Grazie!
 

Renat Fatkhullin:

Presto rilasceremo il supporto nativo per i numeri complessi (pronto), i vettori di velocità e le matrici.

La capacità di lavorare con gli array senza loop, come in matlab e numpy (moltiplicazione per numero, moltiplicazione elemento per elemento, slice) è molto necessaria.

 
Rorschach:

La capacità di lavorare con gli array senza loop, come in matlab e numpy (moltiplicazione per numero, moltiplicazione elemento per elemento, slice) è molto necessaria.

Questo è già disponibile a livello di lingua.

 
Koldun Zloy:

Userete WinML o DirectML, o qualche soluzione vostra?

Ci sarà il supporto ONNX?

In primo luogo, stiamo facendo un supporto nativo per nuovi tipi di dati e operazioni su di essi direttamente nel linguaggio.

L'accelerazione delle operazioni tramite OpenCL/multithreading sarà nascosta e trasparente per gli sviluppatori.

WinML/ONNX sarà considerato in seguito.

 
Offtopic cancellato.
 
Renat Fatkhullin:

Abbiamo intenzione di applicare automaticamente e in modo trasparente OpenCL alle operazioni di matrice e ML.

In effetti, stiamo andando a spremere il massimo senza usare tonnellate di librerie CUDA e tensorflow mostruosamente configurabili.

OpenCL non sarà automaticamente applicato ai vettori?
Cioè, se lavoriamo con diversi vettori, sarebbe più ragionevole usare una matrice?
O i vettori saranno supportati anche in OpenCL?

Aggiunto.
La risorsa hardware della CPU o della GPU sarà selezionata automaticamente tra quelle disponibili?
O sarà possibile decidere quale risorsa utilizzare?

 
Romano:

OpenCL non si applica automaticamente ai vettori?
Cioè, se lavoriamo con diversi vettori, sarebbe più razionale usare una matrice?
O i vettori saranno supportati anche in OpenCL?

Aggiunto.
La risorsa hardware su CPU o GPU sarà selezionata automaticamente tra quelle disponibili?
O sarà possibile determinare quale risorsa utilizzare?

Non ha molto senso usare OpenCL ad alto costo per singoli vettori.

Dove troviamo un effetto, lo applicheremo. OpenCL non è un fine in sé.

Aspettate le versioni beta delle operazioni di matrice senza OpenCL all'inizio. Una volta che la funzionalità di base è stata debuggata, passeremo alla velocizzazione.

Tutto sarà sicuramente coperto da stress-test e benchmark.