Yeni MetaTrader 5 platformu yapısı 5200: MQL5'te OpenBLAS desteği genişletildi ve kontrol iyileştirildi

 

MetaTrader 5 platformunun güncellenmiş sürümü 1 Ağustos 2025 Cuma günü yayınlanacaktır.

Bu sürümde, MQL5'teki OpenBLAS lineer cebir kütüphanesi için desteği önemli ölçüde genişlettik ve yaklaşık otuz yeni fonksiyon ekledik. Bu yenilikler, makine öğrenimini kullanan Uzman Danışmanlar geliştirmek için daha fazla yetenek sağlar.

Buna ek olarak, MQL5 artık geliştirilen programların kalitesinden emin olmak için daha güçlü kontrollere sahiptir. Yeni derleyici kontrolleri ve kısıtlamaları, uygulama davranışındaki olası hataları önlemeye yardımcı olur.

Yeni MetaTrader 5 platformu yapısı 5200: MQL5'te OpenBLAS desteği genişletildi ve kontrol iyileştirildi

Masaüstü platformu ayrıca işletim sistemi ayarlarınıza göre otomatik arayüz geçişi sunarak manuel olarak ayarlama ihtiyacını ortadan kaldırıyor.


MetaTrader 5 müşteri terminali

  1. Terminal: Windows ayarlarınıza göre açık veya koyu temayı otomatik olarak uygulama özelliği eklendi. Bu özelliği etkinleştirmek için yeni seçeneği seçin: Görünüm\Renk temaları\Sistem. Platform her başlatıldığında, sistem temanızı algılayacak ve ona göre ayarlayacaktır.


    Windows ayarlarınıza göre açık veya koyu temayı otomatik olarak uygulama özelliği eklendi


  2. Terminal: Ana pencereden ayrılmış araç çubuklarıyla ilgili görüntüleme sorunları düzeltildi.
  3. Terminal: Varlıklar bölümündeki portföy tasfiye değeri hesaplaması düzeltildi. Bazı durumlarda, belirli enstrümanlara ilişkin pozisyonlar hesaba katılmıyordu.
  4. Terminal: Piyasa Derinliğinde negatif fiyatların görüntülenmesi düzeltildi. Artık doğru şekilde sıralanıyorlar.
  5. Terminal: Özel sembollere fiyat geçmişi aktarımı düzeltildi. Kök klasörde bulunan enstrümanlar için ilgili komutlar daha önce kullanılamıyordu.
  6. MQL5: Yeni OpenBLAS metotları eklendi:

    Matris indirgemeleri

    • ReduceToHessenberg - reel veya karmaşık bir genel n'ye n matris A'yı ortogonal bir benzerlik dönüşümü ile üst Hessenberg form B'ye indirger: Q**T * A * Q = H. LAPACK fonksiyonu GEHRD.
    • ReflectHessenbergToQ - ReduceToHessenberg tarafından geri döndürülen, n mertebesinde n-1 temel yansıtıcının çarpımı olarak tanımlanan ortogonal matris Q'yu oluşturur: Q = H(1) H(2) . . . H(n-1). LAPACK fonksiyonu ORGHR.

    Öz değerler ve öz vektörler

    • EigenHessenbergSchurQ - bir Hessenberg matrisi H'nin öz değerlerini ve Schur ayrışmasından T ve Z matrislerini hesaplar: H = Z T Z**T, burada T bir üst yarı üçgen matris (Schur formu) ve Z, Schur vektörlerinin ortogonal matrisidir. LAPACK fonksiyonu HSEQR.

    Lineer denklemler

    • SylvesterEquationTriangular - reel yarı üçgen veya karmaşık üçgen matrisler için Sylvester denklemini çözer: op(A)*X + X*op(B) = scale*C veya op(A)*X - X*op(B) = scale*C, burada op(A) = A veya A**T veya A**H ve A ve B'nin her ikisi de üst üçgendir. LAPACK fonksiyonu TRSYL.
    • SylvesterEquationTriangularBlocked - reel yarı üçgen veya karmaşık üçgen matrisler için Sylvester denklemini çözer: op(A)*X + X*op(B) = scale*C veya op(A)*X - X*op(B) = scale*C, burada op(A) = A veya A**T veya A**H ve A ve B'nin her ikisi de üst üçgendir. LAPACK fonksiyonu TRSYL3. Bu, TRSYL'nin blok (BLAS seviye 3) versiyonudur. 5 kata kadar daha hızlı, ancak daha az doğru.

    Faktörlü hesaplamalar

    • SylvesterEquationSchur - reel yarı üçgen veya karmaşık üçgen matrisler için Sylvester denklemini çözer: A*X + X*B = C, burada A ve B'nin her ikisi de üst üçgendir. A m'ye m ve B n'ye n'dir; sağ taraf C ve çözüm X m'ye n'dir. LAPACK fonksiyonu TRSYL.
    • SylvesterEquationSchurBlocked - reel yarı üçgen veya karmaşık üçgen matrisler için Sylvester denklemini çözer: A*X + X*B = C, burada A ve B'nin her ikisi de üst üçgendir. A m'ye m ve B n'ye n'dir; sağ taraf C ve çözüm X m'ye n'dir. LAPACK fonksiyonu TRSYL3. Bu, TRSYL'nin blok (BLAS seviye 3) versiyonudur. 5 kata kadar daha hızlı, ancak daha az doğru.

    Matris normu hesaplamaları

    • MatrixNorm - genel bir dikdörtgen matrisin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonu LANGE.
    • MatrixNormGeTrid - genel bir üç köşegenli matrisin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonu LANGT.
    • MatrixNormHessenberg - bir üst Hessenberg matrisinin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonu LANHS.
    • MatrixNormSy - reel simetrik veya karmaşık bir Hermit matrisinin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonları LANSY, LANHE.
    • MatrixNormComplexSy - karmaşık simetrik (Hermit olmayan) bir matrisin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonu LANSY.
    • MatrixNormSyTrid - reel simetrik veya karmaşık Hermit üç köşegenli matrisin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonları LANST, LANHT.
    • MatrixNormTriangular - m'ye n yamuk veya üçgen bir matrisin 1-normunu, sonsuzluk normunu, Frobenius normunu veya herhangi bir elemanının en büyük mutlak değerini geri döndürür. LAPACK fonksiyonu LANTR.

    Matris sınıflandırması

    • IsSymmetric - bir kare matrisin simetrik matris olup olmadığını kontrol eder.
    • IsHermitian - bir kare karmaşık matrisin Hermit matrisi olup olmadığını kontrol eder.
    • IsUpperTriangular - bir kare matrisin üst üçgen matris olup olmadığını kontrol eder.
    • IsLowerTriangular - bir kare matrisin alt üçgen matris olup olmadığını kontrol eder.
    • IsTrapezoidal - dikdörtgen (kare değil) bir m'ye n matrisin üst veya alt yamuk matris olup olmadığını kontrol eder.
    • IsUpperHessenberg - bir kare matrisin üst Hessenberg matrisi olup olmadığını kontrol eder.
    • IsLowerHessenberg - bir kare matrisin alt Hessenberg matrisi olup olmadığını kontrol eder.
    • IsTridiagonal - bir kare matrisin üç köşegenli olup olmadığını kontrol eder.
    • IsUpperBidiagonal - bir kare matrisin üst iki köşegenli olup olmadığını kontrol eder.
    • IsLowerBidiagonal - bir kare matrisin alt iki köşegenli olup olmadığını kontrol eder.
    • IsDiagonal - bir kare matrisin köşegen matris olup olmadığını kontrol eder.
    • IsScalar - bir kare matrisin skaler matris olup olmadığını kontrol eder.

  7. MQL5: Karmaşık matrisler ve vektörler için Conjugate metodu eklendi. Bu metot, karmaşık bir sayının sanal kısmının işaretini değiştirir ve değiştirilmiş matris veya vektörü geri döndürür.
  8. MQL5: Metot gizleme kuralları güçlendirildi. Türetilmiş bir sınıf, temel sınıftaki bir metotla aynı ada sahip bir metot içerdiğinde, türetilmiş sınıf versiyonu artık varsayılan olarak çağrılır. Temel sınıf metodunu çağırmak için artık bir niteleyici gereklidir:
    struct A
      {
       int y;
      
       string func(double x)
         {
          return(__FUNCSIG__);
         }
      };
      
    struct B : public A
      {
       string func(int x)   // the method hides A::func
         {
          return(__FUNCSIG__);
         }
      };
      
    void OnStart(void)
      {
       B b;
       b.func(M_PI);          // according to new rules, it is a call to B::func
       b.A::func(M_PI);       // call the hidden method A::func
      }
    Bu değişiklik kodun okunabilirliğini basitleştirir ve daha önce yalnızca derleyici uyarısıyla birlikte gelen belirsizliği ortadan kaldırır.

    Öncesinde, derleme bir uyarı veriyordu:
    deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
    Bu değişiklik artık uygulanmıştır.

    Bazı sürümler için, parametrelere göre daha uygun bir gizli metot mevcutsa günlükte bir uyarı görünmeye devam edecektir:
    call resolves to 'string B::func(int)' instead of 'string A::func(double)' due to new rules of method hiding
       see declaration of function 'B::func'
       see declaration of function 'A::func'
    truncation of constant value from 'double(3.141592653589793)' to 'int(3)'
  9. MQL5: Aynı kapsam içinde yinelenen adlar artık yasaklanmıştır. Örneğin, daha önce tek bir dosya içinde aynı adda bir girdi parametresi ve bir fonksiyon bildirmek mümkündü. Bu tür yinelemelere artık izin verilmemektedir:
    input int somename=42;
    
    int somename(int x)
      {
       return(42);
      }
  10. MQL5: Numaralandırmalarda varsayılan değerler için katı tür denetimi eklendi. Bir numaralandırma kabul eden fonksiyon parametreleri için artık sadece değer değil, aynı zamanda tam tür de eşleşmelidir:
    int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT);
    
    int somename(ENUM_TIMEFRAMES TF=0)   // error, type mismatch for the default parameter value, despite having the same value
      {
       return(42);
      }
  11. MQL5: Aynı tanımlayıcılar artık farklı numaralandırmalarda yasaklanmıştır. Bir numaralandırmada bildirilen bir tanımlayıcı artık aynı kapsam içinde başka bir numaralandırmada tekrar kullanılamaz:
    enum A
      {
       Value
      };
      
    enum B
      {
       Value  // error, name 'Value' is already used in enumeration A
      };
      
    void OnStart(void)
      {
       enum C
         {
          Value // OK, 'Value' is not used within the OnStart scope
         };
      }
    Eşleşen adlar farklı kapsamlarda kullanılabilir.

  12. MQL5: Şablon başlatıcı fonksiyonlar için daha katı gereklilikler getirildi. Başlatıcı fonksiyonları kullanarak matrisler/vektörler oluştururken, aşağıdaki özellikler artık devre dışı bırakılmıştır:

    • Şablon fonksiyonlarında otomatik tür çıkarımı
    • Varsayılan parametre değerleri

    Tüm şablon parametreleri ve argümanları artık açıkça belirtilmelidir: 
    template<typename T>
    void Initializer(matrix<T>& mat,int method=0);
    
    matrix<double> A(10,10,Initializer,42);          // error, Initializer must be explicitly typed
    matrix<double> A(10,10,Initializer<double>);     // error, missing 'method' parameter (default values no longer supported)
    matrix<double> A(10,10,Initializer<double>,42);  // OK
  13. MQL5: ONNX desteği geliştirildi. ONNX modelleriyle MQL5 entegrasyonunu basitleştirmek için ulong dizilerini fonksiyonlara geçirirken işaretli türlerin örtük dönüşümü eklendi.
    OnnxSetInputShape( … , ulong_array );
    OnnxSetOutputShape( … , ulong_array );
  14. MQL5: Örtük dizge dönüşümleriyle ilgili derleyici uyarılarında türlerin gösterimi düzeltildi.
  15. MQL5: Python entegrasyon paketi güncellendi. Güncellemeyi yüklemek için şu komutu çalıştırın:
    pip install --upgrade MetaTrader5
  16. MetaEditor: MQL5 Depo ile kullanılan "Revizyona geri dön" komutu düzeltildi. Bir geri döndürme işlemi sırasında oluşabilecek sürümler arasındaki çakışma değerlendirmesi artık işlem başlamadan önce gerçekleştirilmektedir. Geri döndürme mümkün değilse işlem iptal edilir.
  17. Strateji Sınayıcı: Borsa hesaplama moduna sahip hesaplar için OrderCalcMargin fonksiyonu düzeltildi.
  18. Strateji Sınayıcı: Çok dövizli Uzman Danışmanların görsel testi sırasında grafikler arasında geçiş düzeltildi.
  19. Kullanıcı arayüzü çevirileri güncellendi.

MetaTrader 5 Web Terminali

  1. Demo ve ön hesap kaydı sırasında e-posta doğrulaması düzeltildi. Bazı durumlarda, onay kodu için giriş alanı görüntülenmiyordu.
  2. Huawei cihazlarda tarayıcı kullanırken yaşanan hesap bağlantısı sorunları düzeltildi.
  3. Tek kullanımlık şifreler kullanıldığında hesaplara bağlantı düzeltildi. Bazı durumlarda, ilk giriş yapma denemesinde OTP için giriş alanı eksik olabiliyordu.


Güncelleme, Canlı Güncelleştirme sistemi aracılığıyla sunulacaktır.