Yeni MetaTrader 5 Platformu yapısı 3980: İyileştirmeler ve düzeltmeler

MetaQuotes  

MetaTrader 5 platformunun güncellenmiş sürümü 21 Eylül 2023 Perşembe günü yayınlanacaktır. Güncelleme, platform için bir dizi iyileştirme ve düzeltme içermektedir.

Yeni MetaTrader 5 Platformu yapısı 3980: İyileştirmeler ve düzeltmeler


MetaTrader 5 Müşteri Terminali yapı 3980

  1. Terminal: Yeni ticaret raporu iyileştirmeleri. Toplam swap değerinin ve kâr grafiğinin sembollere göre gösterimi düzeltildi.
  2. Terminal: Para yatırma ve para çekme sayfaları optimize edildi. Ödeme sistemleriyle yeni platform entegrasyonu hakkında daha fazla bilgi için lütfen yapı 3950 sürüm notlarını okuyun.
  3. Terminal: Strateji sınayıcı da dahil olmak üzere tüm platform genelinde finansal işlemlerin yeniden hesaplamaları optimize edildi. Artık kâr, teminat ve diğer birçok parametre daha hızlı hesaplanmaktadır.
  4. Terminal: Kullanıcı arayüzü çevirileri güncellendi.
  5. MQL5: complex, vector<complex> ve matrix<complex> türleri için Conjugate metotları eklendi. Karmaşık eşlenik işlemleri uygularlar.
    //+------------------------------------------------------------------+
    //| Komut dosyasını başlatma fonksiyonu                              |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  6. MQL5: Harita sekansı türündeki ONNX model çıktılarının işlenmesi eklendi.

    Çıktı katmanında harita sekansları (ONNX_TYPE_MAP’te ONNX_TYPE_SEQUENCE) sağlayan ONNX modelleri için, dinamik veya sabit yapı dizisi çıktı parametresi olarak iletilmelidir. Bu yapının ilk iki alanı ONNX_TYPE_MAP anahtar ve değer türleriyle eşleşmeli ve sabit veya dinamik diziler olmalıdır.

    Aşağıdaki Python komut dosyası tarafından oluşturulan iris.onnx modelini ele alalım:
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # ONNX formatına dönüştür
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    Oluşturulan onnx dosyasını MetaEditor'da açalım:


    ONNX modelini MetaEditor'da görüntüleme


    Harita sekansı "output_probability" olarak iletilir. INT64 türünde bir anahtara (MQL5'te long'a karşılık gelir) ve float türünde bir değere sahiptir. Bu çıktıdan veri almak için aşağıdaki yapıyı bildirelim:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    Burada uygun türlere sahip dinamik diziler kullandık. Bu durumda, sabit diziler kullanabiliriz çünkü bu model için harita her zaman 3 anahtar+değer çifti içerir.

    Harita sekansı geri döndürüldüğünden, output_probability çıktısından veri almak için bu tür yapılardan oluşan bir dizi parametre olarak iletilmelidir. Bu dizi, belirli bir modelin özelliklerine uygun olarak dinamik veya sabit olabilir. Örnek:
    //--- output_probability çıktı katmanından veri almak için bir dizi bildir
    MyMap output_probability[];
    
    ...
    
    //--- modeli çalıştır
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
  7. MetaEditor: ONNX model görüntüleyicisinde çıktı türlerinin görüntülenmesi düzeltildi.

MetaTrader 5 Web Terminali yapı 3980

  1. Web terminalinin ana menüsüne Brokerla İletişime Geç bölümü eklendi.
  2. SSL kimlik doğrulamaları için hata işleme eklendi. Bu kimlik doğrulama türü web terminalinde desteklenmemektedir. Bunun yerine tek seferlik şifreler kullanılabilir.
  3. Ana menüdeki masaüstü platformu indirme linki düzeltildi.
  4. Hesap yönetimi penceresi düzeltildi. Broker demo veya gerçek hesap açma seçeneği sunmuyorsa, ilgili menü öğesi gizlenecektir.


Güncelleme, Live Update sistemi aracılığıyla sunulacaktır.

Neden: