Yeni MetaTrader 5 platformu yapısı 5260: Algo Forge'da iyileştirmeler, genişletilmiş OpenBLAS desteği ve MQL5'te yeni kalıtım kuralları

 

MetaTrader 5 platformunun güncellenmiş sürümü 5 Eylül 2025 Cuma günü yayınlanacaktır.

Bu platform yapısında, MQL5'teki OpenBLAS lineer cebir kütüphanesini yeni bir dizi fonksiyonla genişletmeye devam ediyoruz. Bu metotlar, geliştiricilere ön matris hazırlığından hassas ve kararlı spektrum hesaplamasına kadar tam bir dönüşüm döngüsü sağlar.

Ek olarak, MQL5 artık sınıflar ve yapılarda kalıtım ve metot aşırı yüklemesi üzerinde daha sıkı bir denetim uyguluyor. Yeni kalıtım davranışı ve derleyici kısıtlamaları, uygulama mantığındaki olası hataları önlemeye yardımcı olur. 

Yeni MetaTrader 5 platformu yapısı 5260: Algo Forge'da iyileştirmeler, genişletilmiş OpenBLAS desteği ve MQL5'te yeni kalıtım kuralları


Ayrıca Algo Forge projelerinde dosya işlemeyi iyileştirerek hash hesaplamalarını hızlandırdık ve dosya değişikliklerinin yanlış tespitlerini ortadan kaldırdık.

Hizmet web sitesinde kapsamlı MQL5 Algo Forge dokümantasyonunu yayınladık. Algoritmik yatırımcılar için Git sistemini kullanmanın tüm özelliklerini ve avantajlarını açıkça göstermektedir: projeleri nasıl keşfedeceğinizi, ilgi çekici yayınları nasıl takip edeceğinizi, nasıl işbirliği yapacağınızı ve depoları nasıl klonlayacağınızı.


MetaTrader 5 müşteri terminali

  1. Terminal: Alım-satım sembolü özelliklerinde teminat ayarlarının görüntülenmesi düzeltildi. Önceden, değişken kaldıraç kullanıldığında (örneğin, hesap pozisyon hacmine göre hesaplandığında), sözleşme özelliklerindeki teminat parametreleri yanlış gösterilebiliyordu.
  2. Terminal: Negatif fiyatlara izin verilen semboller için emir defteri sıralaması düzeltildi. Pozitif, negatif ve sıfır fiyatlı emirler artık doğru şekilde ve uygun sırada görüntüleniyor. 
  3. Terminal: Terminal kullanıcı kılavuzunda artık “Sınayıcı geçmiş verileri nasıl indirir?” başlıklı yeni bir bölüm bulunmaktadır. Strateji Sınayıcının işlem geçmişiyle nasıl çalıştığını anlamak için gereken temel noktaları özetler. Hesaplama kararlılığını sağlamak için sınayıcı her zaman bir “başlatma öncesi geçmiş tamponu” yükler:
    • D1 ve aşağısı - bir önceki takvim yılının başından itibaren. Bu, en az 1 yıllık geçmiş sağlar. Örnek: Test başlangıç tarihi 01.03.2023 ise, terminal 01.01.2022 tarihinden itibaren terminal verilerini indirecektir. Bu da testin başlamasından 14 ay öncesine denk gelmektedir.
    • W1 - en az 100 haftalık çubuk (~2 yıl).
    • MN1 - en az 100 aylık çubuk (~8 yıl).

    Mevcut geçmiş yetersizse, sınayıcı otomatik olarak başlangıç tarihini gereksinimleri karşılayan en yakın noktaya kaydırır.

    Bu gibi durumlarda test, kullanıcı tarafından belirtilen tarihten daha sonra başlar. Sınayıcı günlüğü ilgili bir mesaj gösterecektir, örneğin:

    start time changed to 2024.03.15 00:00 to provide data at beginning
  4. MQL5: Matris Dengesi bölümüne kare matrisler için işlevselliği artıran beş yeni OpenBLAS metodu eklendi. Yeni fonksiyon seti şunları sağlar:
    • Özdeğer hesaplamalarında gelişmiş doğruluk için matris dengeleme.
    • Özvektörlerin geriye doğru dönüşümleri.
    • Ortogonal matris üretimi de dahil olmak üzere Hessenberg formuna ve Schur ayrıştırmasına indirgeme.

    Bu metotlar, geliştiricilere ön matris hazırlığından hassas ve kararlı spektrum hesaplamasına kadar tam bir dönüşüm döngüsü sağlar.

    Metotlar, yüksek performans ve güvenilirlik sağlayan LAPACK algoritmalarına (GEBAL, GEBAK, GEHRD, ORGHR, HSEQR) dayanmaktadır:

    • MatrixBalance: Satır ve sütunlara permütasyon uygulayarak ve diyagonal benzerlik dönüşümleri uygulayarak genel bir reel veya karmaşık matrisi dengeler. Dengeleme, matrisin 1-normunu azaltabilir ve hesaplanan özdeğerlerin ve/veya özvektörlerin doğruluğunu artırabilir (LAPACK fonksiyonu GEBAL).
    • EigenVectorsBackward: Dengeli matrisin hesaplanan özvektörleri üzerinde geriye doğru dönüşüm yaparak reel veya karmaşık bir genel matrisin sağ veya sol özvektörlerini oluşturur (LAPACK fonksiyonu GEBAK). 
    • ReduceToHessenbergBalanced: Reel veya karmaşık bir genel dengeli matrisi ortogonal benzerlik dönüşümüyle üst Hessenberg formuna indirger (LAPACK fonksiyonu GEHRD).
    • ReflectHessenbergBalancedToQ: Hessenberg formuna indirgenerek oluşturulan n dereceli temel yansıtıcıların çarpımı olarak tanımlanan Q ortogonal matrisini oluşturur (LAPACK fonksiyonu ORGHR).
    • EigenHessenbergBalancedSchurQ: Bir Hessenberg matrisinin özdeğerlerini ve Schur ayrışmasından T ve Z matrislerini hesaplar; isteğe bağlı olarak Hessenberg formuna indirgenmiş bir girdi matrisinin Schur ayrışmasını hesaplar (LAPACK fonksiyonu HSEQR).


  5. MQL5: Özdeğerler bölümüne iki yeni metot eklendi. Her iki fonksiyon da Schur ayrışmasından sonra özvektörleri verimli bir şekilde hesaplayarak MQL5'teki tüm lineer cebir araçlarını tamamlar:

    • EigenVectorsTriangularZ: Reel bir üst yarı üçgen veya karmaşık üst üçgen matrisin (Schur formu) özvektörlerini hesaplar. A = Q · T · Qᴴ ayrışmasını kullanır (LAPACK fonksiyonu TREVC). Yüksek doğruluk sağlar.
    • EigenVectorsTriangularZBlocked: Reel bir üst yarı üçgen veya karmaşık üst üçgen matrisin özvektörlerini hesaplamak için blok versiyonu (LAPACK fonksiyonu TREVC3). Daha hızlı ama o kadar doğru değil.


  6. MQL5: Yeni metot gizleme kuralı ile kalıtımda önemli bir değişiklik yapıldı.

    Önceden, türetilmiş bir sınıf veya yapı, temel sınıftakiyle aynı ada sahip bir metot tanımlarsa, aşırı yükleme gerçekleştiriliyordu: tüm sürümler (hem üst hem de alt sınıftan) türetilmiş sınıfta mevcuttu. Şimdi, türetilmiş bir sınıfta aynı ada sahip metotlar temel sınıf metotlarını gizler (metot gizleme).

    Gizli bir temel sınıf metodunu çağırmak için, metodu çağırırken kapsamını açıkça belirtmeniz gerekir:
    class Base
      {
    public: 
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");    // call of Derived::Print(string)
       d.Print(10);        // ATTENTION! Calling Derived::Print(string) since Base::Print is hidden (inaccessible)
       d.Base::Print(10);  // explicit call to hidden parent method
      }
    MQL5 derleyicisi, gizli bir temel metodun çağrı parametreleri için mevcut türetilmiş metottan daha iyi bir eşleşme olması durumunda bir süre uyarı verecektir. Yukarıdaki kod için örnek d.Print(10):
    call resolves to 'void Derived::Print(string)' instead of 'void Base::Print(int)' due to new rules of method hiding
       see declaration of function 'Derived::Print'
       see declaration of function 'Base::Print'
    implicit conversion from 'number' to 'string'

  7. MQL5: Temel sınıf metot aşırı yüklerini geri getirmek için using operatörü eklendi.

    Yeni davranışı kontrol etmek için MQL5 ‘using’ operatörünü sunar. Bir metodun tüm aşırı yüklerini temel türden bir sınıfın veya yapının kapsamına “çekmenize” olanak tanır:
    class Base
      {
    protected:
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
       using Base::Print;  // return Print overloads from Base
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");   // Derived::Print(string)
       d.Print(42);       // Base::Print(int)
       d.Print(3.14);     // Base::Print(double)
      }
    'using Base::Print;' kaldırılırsa, d.Print(42) ve d.Print(3.14) çağrıları kullanılamaz; yalnızca Derived::Print(string) kalır.

    Ayrıca, bu örnekte, temel sınıftaki protected metotların türetilmiş sınıfta erişilebilir hale geldiğini görebilirsiniz (görünürlükleri protected’dan public hale gelir).

    Bu, geliştiricilere sınıf hiyerarşileri üzerinde daha esnek ve öngörülebilir kontrol sağlayarak, hangi temel sınıf metot aşırı yüklerinin türetilmiş türlerde erişilebilir kalması gerektiğini tam olarak tanımlamalarına olanak tanır.

  8. MetaEditor: Algo Forge'da Git işlemleri için SHA-1 hash hesaplamaları hızlandırıldı. Performans iyileştirmeleri toplu işlemler için %40'ı aşmaktadır.
  9. MetaEditor: Git işlemleri için dosya değişiklik kontrolleri düzeltildi. Yalnızca değişiklik zamanı değişir ancak dosya içeriği aynı kalırsa, dosya artık değiştirilmiş olarak değerlendirilmez. Bu, yanlış algılamaları ortadan kaldırır ve uzak depolarla çakışmaları önler.
  10. Algo Forge: MQL5 Algo Forge Kullanıcı Kılavuzu yayınlandı. Gereksiz karmaşıklık olmadan Git'in tüm temel faydalarını vurgular:
    • güvenilir sürüm geçmişi depolama ve dallar oluşturma,
    • hızlı deneme ve değişikliklerin güvenli bir şekilde birleştirilmesi,
    • tek tıklamayla kendi deponuzu oluşturun veya diğer geliştiricilerin projelerini çatallayın,
    • katkıların takip edildiği şeffaf ekip işbirliği,
    • başkalarından öğrenme fırsatı sunan bir açık projeler kataloğu.


    Başka bir geliştiricinin projesini klonlama
    Klonlamak istediğiniz projeyi forge.mql5.io adresinde açın ve Fork'a tıklayın. Çatal için bir ad ve açıklama girin ve kaydedin.

    Bir projeyi klonlama

    MetaEditor'da, aynı MQL5 hesabını kullanarak, Kılavuzdan Yenile komutunu çalıştırın. Çatalınız Shared Projects klasöründe görünecektir. Git Clone kullanarak Algo Forge'dan indirin. Yalnızca proje dosyalarını değil, aynı zamanda tüm commit geçmişini ve tüm dalları da alacaksınız. Bu, klonlanan projenin tüm geçmişine sahip olurken çatal üzerinde çalışmaya devam edebileceğiniz anlamına gelir.  

    Algo Forge'da Git Clone komutu

  11. Terminal arayüzünün İrlandaca çevirisi eklendi.
  12. Kullanıcı arayüzü çevirileri güncellendi.


Web Terminali

  1. Sembol özelliklerinde işlem ve kotasyon seanslarının gösterimi düzeltildi.
  2. Sembol özelliklerinde teminat ayarlarının görüntülenmesi düzeltildi.
  3. Sembol özelliklerinde işlem ve kotasyon seanslarının gösterimi düzeltildi.
  4. Yarışma hesap türü için destek eklendi. Bu tür hesaplar mavi renkte, demo hesaplar ise yeşil renkte gösterilir.
  5. Belirli koşullar altındaki değişken kaldıraç teminat hesaplamalarının doğruluğu düzeltildi. 
  6. Yeni bir hesap açarken İleri düğmesinin bazen bir sonraki adıma geçememesine neden olan bir sorun düzeltildi.
  7. Borsa işlem gerçekleştirme türü için Bid ve Ask fiyatları arasında limit emri vermenin mümkün olmamasına neden olan bir sorun düzeltildi.
  8. Emir gerçekleştirme fiyatlarının gösterimi düzeltildi. Bir emir gönderildikten sonra, gerçekleştirme sonuçları pencerede görünür: başarılı bir işlem veya neden gerçekleştirilmediğine dair bir neden. Bazı durumlarda, gerçekleştirme fiyatı yanlışlıkla “0” olarak gösterilebiliyordu.
  9. Hızlı pozisyon kapatma düğmesinin görüntülenmemesine neden olan bir sorun düzeltildi.

    Pozisyon kapatma düğmesi

  10. Hesap seçimi penceresinde işlem hesabı para birimlerinin gösterimi düzeltildi.


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

MQL5 Algo Forge - Ultimate Git Platform for Developers | Build your Software
MQL5 Algo Forge - Ultimate Git Platform for Developers | Build your Software
  • MQL5 Algo Forge - trader's community
  • forge.mql5.io
MQL5 Algo Trading community features uniques services for users of MetaTrader 5 and MetaTrader 4 trading platforms