Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Twitter üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Kütüphaneler

A powerful and feature-rich JSON library for MQL5, designed to bring a modern development experience similar to Python/JS - MetaTrader 5 için kütüphane

Görüntülemeler:
54
Derecelendirme:
(3)
Yayınlandı:
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

1. Genel Bakış

MQL5 JSON Kütüphanesi, MQL5 ortamında JSON verilerini ayrıştırmak, işlemek ve serileştirmek için özel olarak tasarlanmış güçlü, zengin özelliklere sahip bir kütüphanedir. MQL5'teki JSON işleme deneyimini JavaScript ve Python gibi modern programlama dilleriyle karşılaştırılabilir hale getirmeyi amaçlayan basit ve sezgisel bir Belge Nesne Modeli (DOM) API'si sağlar.

Bu kütüphane, basit EA konfigürasyonlarının okunmasından sistemler arasında karmaşık gerçek zamanlı veri alışverişine kadar çok çeşitli görevleri yerine getirebilir. Ana işlevleri ve özellikleri şunlardır:

  • --- Ayrıştırma ve Oluşturma ---
  • Dizeden veya Dosyadan Yükle: JSON metnini güvenilir bir şekilde işlenebilir bellek içi nesnelere ayrıştırır ( JsonParse , JsonFromFile ).
  • Sıfırdan Oluştur un: JsonNewObject ve JsonNewArray gibi özlü API'leri kullanarak programlı olarak kolayca yeni JSON nesneleri ve dizileri oluşturun.
  • Esnek Ayrıştırıcı: İsteğe bağlı olarak, çeşitli veri kaynaklarıyla uyumluluğu artırmak için kod yorumları ve sondaki virgüller gibi JSON5'in bazı standart dışı özelliklerini destekler.

  • --- Manipülasyon ve Erişim ---

  • Sezgisel DOM Çaprazlama: Python sözlüğü veya JavaScript nesnesi kullanır gibi, anahtarlar ( node["key"] ) ve indeksler ( node[0] ) ile sezgisel sözdizimi kullanarak verilere erişin.

  • Güvenli Tip Dönüşümü: AsInt(defaultValue) ve AsString(defaultValue) gibi varsayılan değerlere sahip bir dizi yöntem sağlayarak, tür uyuşmazlıkları veya var olmayan yollar nedeniyle program çökmeleri konusunda endişelenmeden bir düğümden istenen türdeki verileri güvenli bir şekilde çıkarmanıza olanak tanır.
  • Dinamik Değişiklik: JSON nesnelerindeki anahtar-değer çiftlerini ve dizilerdeki öğeleri serbestçe ekleyin, güncelleyin veya silin ( Set , Add , Remove ).

    --- Gelişmiş Sorgulama ve İşleme ---

  • Güçlü Sorgu Motoru: JSON Pointer (RFC 6901, doğrudan yol erişimi için) ve JSONPath (karmaşık ve bulanık sorgular için) için yerleşik destek, derin iç içe geçmiş, karmaşık yapılardan bir veya daha fazla veri düğümünün toplu olarak veya hassas bir şekilde verimli bir şekilde çıkarılmasını sağlar.

  • Düşük Bellekli Akış Ayrıştırma: Gigabayt ölçekli, devasa JSON dosyalarını işlemek için JsonStreamParser sağlar. Dosyanın tamamını belleğe yüklemeden olay akışı tarzında dosyayı belirteç belirte okur, böylece en üst düzeyde bellek verimliliği elde eder.
  • Yardımcı İşlevler: Belge klonlama (.Clone()) ve derin birleştirme ( JsonMerge) gibi gelişmiş özellikler sunarak "varsayılan yapılandırma" ile "kullanıcı yapılandırmasını" birleştirme gibi yaygın karmaşık görevleri büyük ölçüde basitleştirir.

    --- Sağlamlık ve Güvenlik ---

  • Otomatik Bellek Yönetimi: RAII (Resource Acquisition Is Initialization) tasarım modelini benimser. JsonDocument, tüm düğümlerinin yaşam döngüsünü yönetmekten sorumludur. Geliştiricilerin herhangi bir JSON öğesini manuel olarak yenilemesine / silmesine gerek yoktur, bu da bellek sızıntısı riskini temelde ortadan kaldırır.

  • Belgeler Arası İşlem Güvenliği: Farklı JsonDocument örnekleri arasında bir düğüm atarken, kütüphane otomatik olarak güvenli bir derin kopyalama (Clone) gerçekleştirerek sarkan işaretçileri ve kazara veri bozulmasını önler.
  • Detaylı Hata Raporlama: Ayrıştırma başarısız olduğunda, JsonError nesnesi hata satır numarası, sütun numarası ve bağlam dahil olmak üzere ayrıntılı bilgi sağlayarak hızlı sorun teşhisini kolaylaştırır.

2. Temel Kavramlar ve Bellek Yönetimi

[!!] 2.1 İsim Alanı - Projenizi Entegre Etmenin Anahtarı [!!] En Önemli İpucu: Bu kütüphanedeki tüm sınıflar (örn. JsonDocument , JsonNode ) ve global fonksiyonlar (örn. JsonParse ) MQL5_Json adlı bir isim alanı içinde kapsüllenmiştir.

**Nasıl Doğru Kullanılır:** - **Başlık Dosyalarında (.mqh)**: MQL5, başlık dosyalarının genel kapsamında `isim alanı kullanımına` izin vermez. **Bu nedenle, tam nitelikli adlar kullanmalısınız**. Bu, çok dosyalı projelerde tek güvenilir yoldur. Yanlış: `JsonDocument doc;` Doğru: `MQL5_Json::JsonDocument doc;` - **Ana Program Dosyalarındaki (.mq5)** İç Fonksiyonlar: Kolaylık sağlamak için, işlevlerin içinde `using namespace MQL5_Json;` kullanabilirsiniz, ancak örneklerin genelliğini sağlamak için, bu kılavuzdaki tüm kodlar tam nitelikli ad yaklaşımını kullanacaktır . **Eğer `'JsonNode' - türsüz bildirim` derleme hatasıyla karşılaşırsanız,** ** bunun nedeni neredeyse her zaman türlere ve fonksiyonlara `MQL5_Json::` ön ekini** ** eklemeyi unutmuş olmanızdır.**

[!!] 2.2 Bellek Yönetim Modeli JsonDocument verilerin sahibidir; JsonNode sadece bir görünümdür.

[!!] 2.3 MQL5'te Nesne Geçişi MQL5, fonksiyon argümanı olarak geçirilen tüm sınıf nesnelerinin (JsonNode dahil ) referansla (& kullanılarak) geçirilmesini gerektirir. Yanlış: void myFunction(MQL5_Json::JsonNode node) Doğru: void myFunction(MQL5_Json::JsonNode &node


MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/62735

Mumlar Düzleştirilmiş HTF Mumlar Düzleştirilmiş HTF

Daha küçük bir zaman diliminde daha büyük bir zaman diliminin "ortalaması alınmış" mumlarını görüntüleyen bir gösterge.

Büyütülmüş Piyasa Fiyatı Büyütülmüş Piyasa Fiyatı

Gösterge, grafiğin bir köşesinde mevcut fiyatı gösterir.

Multi_Divergence_EA Multi_Divergence_EA

EA, kullanıcı tanımlı sayıda göstergenin (örneğin 3'te 2) aynı anda sapma göstermesini bekleyerek ticaret kurulumlarını tanımlar. Bu çok katmanlı teyit yaklaşımı piyasa gürültüsünü filtreler. Temel Özellikler: Üçlü Teyit Motoru: RSI, MACD ve Stokastik sapmayı analiz eder. Gelişmiş Filtreler: Üstün sinyal kalitesi için isteğe bağlı Trend Filtresi (MA) ve Hacim Filtresi. Tam Özelleştirme: Tüm gösterge ayarlarını, sapma hassasiyetini ve ticaret mantığını kontrol edin. Profesyonel Risk Yönetimi: SL/TP ile sabit lotlar veya yüzde bazlı para yönetimi kullanın.

Üç Kutuplu Süper Pürüzsüz Filtre Üç Kutuplu Süper Pürüzsüz Filtre

Bu gösterge, hareketli ortalamayı hesaplamak için John Ehlers'ın "Hisse Senetleri ve Vadeli İşlemler için Sibernetik Analiz: Ticaretinizi Geliştirmek için En İleri DSP Teknolojisi" kitabından 3. dereceden bir süper yumuşatma filtresi kullanır.