Model Oluşturma

ONNX formatında hazır bir model elde etmek için birçok yöntem mevcuttur. Popüler ONNX Model Zoo kütüphanesi, farklı görev türleri için önceden eğitilmiş birkaç ONNX modeli içerir. Bu koleksiyonun avantajı, her modelin not defterinin eğitim veri kümesine linkler ve model mimarisini açıklayan orijinal belgeye referanslar içermesidir.

Çoğu makine öğrenimi çerçevesi Python'ı kullanır. Python için ONNX çalışma zamanını kurmak adına aşağıdaki komutlardan birini kullanın:

pip install onnxruntime       # CPU build
pip install onnxruntime-gpu   # GPU build

Python'da ONNX çalışma zamanını çağırmak için aşağıdaki komutu kullanın:

import onnxruntime
session = onnxruntime.InferenceSession("path to model")

Model girdileri ve çıktıları için ilgili modelin dokümantasyonuna bakın. Modeli görüntülemek adına Netron veya WinML Dashboard gibi görselleştirme araçlarını kullanabilirsiniz. ONNX çalışma zamanında, modelin meta verilerini, girdilerini ve çıktılarını sorgulayabilirsiniz:

results = session.run(["output1""output2"], {
                      "input1"indata1"input2"indata2})
results = session.run([], {"input1"indata1"input2"indata2})

ONNX modellerini Python'ı kullanarak doğrudan MetaTrader 5 terminalinde veya MetaEditor'da oluşturabilirsiniz.

MetaTrader 5'te Python

MetaTrader 5, Python komut dosyaları için kullanıma hazır destek sunmaktadır. Bu amaçla, terminal geliştiricileri Python için MetaTrader5 modülü sağlamıştır: https://pypi.org/project/MetaTrader5.

MetaEditor entegre geliştirme ortamı, yalnızca MQL5'te uygulama yazmanıza değil, aynı zamanda Python komut dosyalarını doğrudan düzenleyiciden çalıştırmanıza da olanak tanır. Bunu yapmak için MetaEditor ayarlarından yürütülebilir dosyanın yolunu belirtin:

MetaEditor ayarlarından Python yürütülebilir dosyasının yolunu ayarlama

Python bilgisayarınızda kurulu değilse, kurulum dosyasını indirmek için Kura tıklayın.

MetaEditor'da bir Python komut dosyası oluşturabilir veya onu terminalin veri klasörüne aktarabilir ve F7 (Derle) tuşunu kullanarak hemen çalıştırabilirsiniz. Devamında MetaTrader 5 terminali açılacak ve komut dosyası mevcut grafikte başlatılacaktır. Python konsolundan (stdout, stderr) gelen mesajlar Hatalar bölümü altında görüntülenecektir.

MetaTrader 5'te modellerle çalışma

MQL5 dili, ONNX modellerini doğrudan MetaTrader 5 terminalinde çalıştırmanıza olanak sağlar. Bu üç adımda yapılır:

  1. Modeli Python gibi üçüncü taraf bir platformda eğitin
  2. Modeli ONNX'e dönüştürün
  3. ONNX modelini, ONNX fonksiyonunu kullanarak bir Uzman Danışmana dahil edin ve MetaTrader 5 terminalinde çalıştırın

MQL5 dilinin Python entegrasyonu, Python komut dosyasının çalıştırılmasına ve ONNX modelinin MetaEditor'da kaydedilmesine veya doğrudan MetaTrader 5'te grafik üzerinde çalıştırılmasına olanak tanır. Modeli, önceden yazılmış bir Python komut dosyası kullanarak doğrudan terminalde ihtiyaç duyduğunuz sıklıkta eğitebilirsiniz. Kütüphane, fiyat verilerini elde etmek için ONNX modeline girdi olarak kullanılabilecek hazır fonksiyonlar içerir:

 

Model örneği #

Herkese açık projelerde hazır bir ONNX modeli örneği bulunmaktadır. İlk olarak, MetaEditor ayarlarından MQL5 giriş kimliğinizi (büyük/küçük harfe duyarlı) belirterek Kılavuzdan MQL5 Depoyu etkinleştirmelisiniz.

activate_storage

Etkinleştirdikten sonra, ONNX.Price.Prediction projesini bulun ve içerik menüsü komutuyla projeye katılın.

project_join

 

Ardından, projeyi MQL5 Depodan güncelleyin.

update_project

Proje bir ONNX modeli, iki Python komut dosyası, projenin çalışması için bir MQL5 komut dosyası ve bir MQL5 proje dosyası (ONNX.Price.Prediction.mqproj) içermektedir.

python_script

 

 

Projede yer alan PricePredictionTraining.py komut dosyasını kullanarak kendiniz bir ONNX modeli oluşturabilirsiniz. Bunun için öncelikle komut satırından gerekli modülleri kurmalısınız.

python.exe -m pip install --upgrade pip
python -m pip install --upgrade tensorflow
python -m pip install --upgrade pandas
python -m pip install --upgrade scikit-learn
python -m pip install --upgrade matplotlib
python -m pip install --upgrade tqdm
python -m pip install --upgrade metatrader5
python -m pip install --upgrade onnx==1.12
python -m pip install --upgrade tf2onnx
python -m pip install --upgrade numpy
python -m pip install onnxruntime

Modülleri kurduktan sonra MetaEditor'da PricePredictionTraining.py komut dosyasını açın ve Derle butonu yada F7 tuşu ile çalıştırın.

python_script_compile

 

Python komut dosyasını çalıştırmadan önce, MetaTrader 5 terminalinin EURUSD sembolünün mevcut olduğu bir sunucuya bağlı olduğundan emin olun. Örneğin, MetaQuotes-Demo sunucusuna bağlanın ve terminal ayarlarından "Python ile entegrasyon" seçeneğini işaretleyin.

terminal_py_integration_check_box

 

Ağı eğitirken, MetaEditor, eğitim tamamlanana kadar Python komut dosyasından mesajlar yazdıracaktır.

onnx_model_ready

 

Sonuç %100 olduğunda, ONNX modeli hazırdır ve <terminal veri klasörü>\MQL5\Shared Projects\ONNX.Price.Prediction\Python yolundaki proje klasörüne kaydedilir.

Ortaya çıkan modeli, F7'ye basıp ikinci PricePrediction.py komut dosyasını çalıştırarak kontrol edebilirsiniz.

prediction_result