"MQL5'te ONNX modelleri nasıl kullanılır?" makalesi için tartışma

 

Yeni makale MQL5'te ONNX modelleri nasıl kullanılır? yayınlandı:

Açık sinir ağı santrali (Open Neural Network eXchange, ONNX), makine öğrenimi modellerini temsil etmek için oluşturulmuş açık bir formattır. Bu makalede, finansal zaman serilerini öngörmek için bir CNN-LSTM modelinin nasıl oluşturulacağını ele alacağız. Ayrıca oluşturulan ONNX modelinin bir MQL5 Uzman Danışmanında nasıl kullanılacağını da göstereceğiz.

Bir model oluşturmanın iki yolu vardır: Bir onnx dosyasından bir model oluşturmak için OnnxCreate'i veya bir veri dizisinden oluşturmak için OnnxCreateFromBuffer'ı kullanabilirsiniz.

Bir ONNX modeli bir Uzman Danışmanda kaynak olarak kullanılıyorsa, modeli her değiştirdiğinizde Uzman Danışmanı yeniden derlemeniz gerekecektir.


Tüm modeller tam olarak tanımlanmış büyüklüklerde girdi ve/veya çıktı tensörüne sahip değildir. Normalde paket büyüklüğünden sorumlu olan ilk boyuttur. Bir modeli çalıştırmadan önce, OnnxSetInputShape ve OnnxSetOutputShape fonksiyonlarını kullanarak büyüklükleri açıkça belirtmeniz gerekir. Modelin girdi verileri, modeli eğitirken yapıldığı gibi hazırlanmalıdır.

Girdi ve çıktı verileri için, modelde kullanılan aynı türdeki dizileri, matrisleri ve/veya vektörleri kullanmanızı öneririz. Bu durumda, modeli çalıştırırken verileri dönüştürmeniz gerekmeyecektir. Veriler gerekli türde ifade edilemiyorsa, otomatik olarak dönüştürülecektir.

Yazar: MetaQuotes

 

Python 3.9.16 sürümünü kullanmak zorunda mısınız?

  1. Kaynağı .tar.gz olarak indirin
  2. 7-Zip gibi bir program kullanarak kaynağı ayıklayın
  3. PCbuild\readme.txt dosyasındaki talimatları izleyin
 

LightGBM için ONNX modellerine dönüşümü python 3.10 ve 3.11'de onnxmltools ve onnxconverter_common paketleri ile elde ettim. Çıktı yalnızca python 3.10'da onnxruntime paketi ile çalıştı, bu da 3.11'e uymadı. Belki son üç haftada bir şeyler değişmiştir.

ME5'in python py başlatıcısını desteklememesi çok kötü.

 
Lütfen bana burada nerede deney yapacağımı söyler misiniz?

Neyi değiştirmeli, hangi aralıkta hangi sayıları eklemeli, vb. Mekanik çalışma, lütfen
 
Ivan Butko #:
Lütfen bana burada nerede deney yapacağımı söyler misiniz?

instrument/timeframe and dates in copy_rates_range, number of input close prices for the forecast (burada time_step = 120 ve input_shape=(120,1) in model.add(Conv1D)), - bu durumda bir sonraki fiyat tahmininin dayandığı saatlik kapanış fiyatlarının sayısıdır.

modellerin kendi mimarisi, örn.

model = Sequential()
model.add(LSTM(units = 50, return_sequences = True, input_shape = (time_step, 1)))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50))
model.add(Dropout(0.2))
model.add(Dense(units = 1))
model.compile(optimizer='adam',loss= 'mse',metrics=[rmse()])

EA parametreleri

input double InpLots       = 1.0;    // Açık pozisyon için lot miktarı
input bool   InpUseStops   = true;   // Ticarette stopları kullanın
input int    InpTakeProfit = 500;    // TakeProfit seviyesi
input int    InpStopLoss   = 500;    // StopLoss seviyesi

ticaret algoritmasının kendisi vb.

 
Quantum #:

instrument/timeframe ve copy_rates_range içindeki tarihler, EA değişikliklerinde tahmin için girdi kapanış fiyatlarının sayısı (burada time_step = 120 ve input_shape=(120,1) model.add(Conv1D) içinde)

modellerin kendi mimarisi, örn.

EA parametreleri

ticaret algoritmasının kendisi vb.

Teşekkür ederim.

 
Quantum #:

instrument/timeframe ve copy_rates_range içindeki tarihler, EA değişikliklerinde tahmin için girdi kapanış fiyatlarının sayısı (burada time_step = 120 ve input_shape=(120,1) model.add(Conv1D) içinde)

modellerin kendi mimarisi, örn.

EA parametreleri

ticaret algoritmasının kendisi vb.

GPU hesaplamaları NVIDIA GeForce GeForce RTX 2080 Ti grafik kartı üzerinde ... kütüphaneleri yardımıyla gerçekleştirilmiştir. ve CUDNN 8.1.0.7.


Lütfen bana bu dosyaları nereye atacağımı söyleyebilir misiniz? (Onları siteden indirdim ve yükleyici yok, sadece bir klasördeki dosyalar var).

 
Ivan Butko #:
GPU hesaplamaları, NVIDIA GeForce GeForce RTX 2080 Ti grafik kartı üzerinde ... kütüphaneleri kullanılarak gerçekleştirilmiştir. ve CUDNN 8.1.0.7.


Lütfen bana bu dosyaları nereye atacağımı söyleyebilir misiniz? (Bunları siteden indirdim ve yükleyici yok, sadece bir klasördeki dosyalar var).

GPU Derin Öğrenme için Windows 11'de CUDA, CUDNN, Keras ve TensorFlow' un nasıl kurulacağına dair bir video var

Videonun 1. yorumunda, tensorflow 2.10.0 sürümünü açıkça belirtmeniz gerektiğine dikkat edin.

18:35 bu noktada sadece install tensorflow==2.10.0 olarak değiştirin. bundan sonra Jeff'in söylediği her şeyi takip edin.
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
  • 2022.01.05
  • www.youtube.com
Complete walkthrough of installing TensorFlow/Keras with GPU support on Windows 11. We make use of a "pip install" rather than conda, to ensure that we get t...
 
Quantum #:
GPU Derin Öğrenme için Windows 11'de CUDA, CUDNN, Keras ve TensorFlow' un nasıl kurulacağına dair bir video var

Tamamdır!

 
Ivan Butko #:

Anlaşıldı!

Videonun 1. yorumunda, tensorflow 2.10.0'ı açıkça belirtmeniz gerektiğini lütfen unutmayın.

18:35 bu noktada sadece install tensorflow==2.10.0 olarak değiştirin. bundan sonra Jeff'in söylediği her şeyi takip edin.
[Silindi]  
Ivan Butko #:
Lütfen bana burada nerede deney yapacağımı söyleyebilir misiniz?

Neyi değiştirmeli, hangi aralıkta hangi sayıları eklemeli vb. Mekanik çalışma, lütfen

Burada deney yapmanın bir anlamı yoktur, çünkü böyle bir tahmin naif bir tahminden farklı değildir (önceki kapanış fiyatının değeri bir tahmin olarak alınır). Bu durumda, modelin tahmin yeteneği hakkında hiçbir şey söylemeyen neredeyse en küçük öğrenme hatasını (RMS) elde edersiniz. Daha ziyade, ONNX'te karmaşık mimarinin bile terminale kolayca aktarılabileceğine dair eğitici bir örnektir. Zaman serisi tahminleri için sinir ağı mimarilerinin araştırılmasına ilişkin bu makalenin yazarlarının ne içtiğini bilmiyorum :) burada ya tahmin yeterli olmalı ya da regresyon yerine sınıflandırma yapılmalıdır.

Deneyler için metrikseçenekleri

Time Series Forecasting: Error Metrics to Evaluate Model Performance
Time Series Forecasting: Error Metrics to Evaluate Model Performance
  • Pablo Cánovas
  • medium.com
The idea of this post comes from the different error metrics I have dealt with working with time series data and forecasting models. Among other things, we make energy production forecasts of renewable power plants of different capacities and technologies. Our aim is to develop forecasting models that reduce the penalties caused by the...