Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook ü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

MT4Orders Hızlı Rapor - MetaTrader 5 için kütüphane

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

MT4Orders veya Virtual aracılığıyla uygulanan MT4 tarzı ticaret komutları için Report kütüphanesinin hızlı JavaScript sürümü.

Report'tan 10 kata kadar daha hızlı çalışır, NTML dosya boyutu daha küçüktür, 5,4 milyon rapor satırına kadar yükleyebilir ve görüntüleyebilir (aşağıdaki ekran görüntüsü).

İşlevsellik: (Rapor ile aynı)

  • MT4, MT5, test cihazları veya Sanal test cihazı tarafından gerçekleştirilen işlemleri gösterir.
  • Grafikleri gösterir
  • Bir tarayıcıda rapor içeren HTML dosyasını açar (DLL kullanma izni ve #define REPORT_BROWSER komutu gerektirir).

Rapordan Farklılıklar:

  • MT5 yan kodunda, rapor için tüm veriler, satırları HTML koduyla birleştirmeden hemen bir dizi olarak dosyaya çıkarılır. Bu, büyük bir hız artışı ve dosya boyutunun küçülmesiyle sonuçlanır.

  • İstatistiklerin hesaplanması, grafik oluşturma ve işlem satırlarıyla HTML kodunun oluşturulması tarayıcı tarafında JavaScript kodunda yapılır. Gerekli sayfayı gösteren bir sayfalandırıcı yapılır.

  • Grafikler, anlaşmaları anlaşma numarasına göre tek tip bir ölçek yerine bir zaman ölçeğinde görüntüler. Böylece, bir Uzman Danışmanın 1. haftada 1000 anlaşma yaptığını ve 52 hafta daha etkin olmadığını görebiliriz.
    İşte 5 yıl boyunca 3386 anlaşma içeren açıklayıcı bir örnek:
    Sayı_vs_Zaman
    Aynı anlaşmalar her iki grafiğe de yerleştirilir.
    Üst grafik, anlaşmalar arasında tek tip bir adımla oluşturulmuştur (MetaQuotes test cihazının şu anda gösterdiği gibi). Umut verici görünüyor.
    Alt grafik bir zaman ölçeğine göre oluşturulmuştur ve Uzman Danışmanın 5 yıl içinde yalnızca birkaç hafta işlem yaptığını gösterir. Yatay olarak 1 piksel = 1 hafta.
    Alttaki grafiğe göre, başlangıçta 2 yıl hareketsizlik olacağı, ardından Uzman Danışmanın birkaç hafta işlem yapacağı ve ardından tekrar 2,5 yıl hareketsizlik olacağı hemen anlaşılıyor. Bu tür ticaret, ilk grafikteki izlenim kadar ilginç değil.

  • Kaymasız, komisyonsuz, komisyonsuz ve kaymasız seçeneklerle denge grafiği, aynı seçeneklerle (denge işlemleri olmadan) kar (P/L) grafiği ile değiştirildi.

  • Bakiye işlemleri para yatırma/çekme işlemlerini gösterecek ayrı bir bakiye grafiği eklendi. Bu şekilde, P/L grafiğindeki ticari işlemlerin çalışmalarını ve bakiye işlemleriyle tutarlarını ayrı ayrı görebilirsiniz

  • Herhangi bir grafiğe tıklarsanız, etkileşimli bir Google.charts açılacaktır. İçinde yakınlaştırabilir ve işlemleri ayrıntılı olarak görebilirsiniz. 100.000 işlem içeren 4 P/L grafiği ~10 saniye boyunca açıktır.

  • TurnOver grafiği, alışlar, satışlar ve miktarları için P/L içeren bir grafikle değiştirilir. Bu şekilde stratejinizin yükseliş mi yoksa düşüş mü olduğunu anlayabilirsiniz. Kârlı değilse işlem yönlerinden birini kapatmaya karar verebilirsiniz. Enstrüman kapanış fiyatı grafiği aşağıda gösterilmiştir. Oran yükseldiğinde alımların nasıl kar ettiğini ve satışların nasıl zarar ettiğini ve oran düştüğünde bunun tersini izlemek uygundur. Birkaç enstrüman varsa, fiyatları birlikte gösterilecektir, sadece fiyatını görmek için filtre ile enstrümanlardan sadece birini seçmek daha iyidir.

  • Açılış, kapanış ve bunların toplamındaki kayma ve kümülatif kayma grafikleri eklendi, fikir buradan alındı https://www.mql5.com/ru/blogs/post/760817.

  • Raporun sütunlarını biraz yeniden düzenledim, ancak Report-e'de olduğu gibi onları yeniden düzenleyecek bir onay kutusu var. Eğer buna daha alışkınsanız.

  • Virtual'da çalışırken, QuickReport'a birkaç çağrı yapabilir ve her sanal (birkaç tane varsa) ve / veya gerçek MT5 test cihazı için raporlar oluşturabilirsiniz

Kullanım örnekleri:

  • MT4Orders ile basit
    #include <MT4Orders.mqh>
    #define REPORT_BROWSER            // Open report in browswer automatically. Require DLL.
    //#include <Rapor.mqh>
    #include <MT4Orders_QuickReport.mqh>//
    
    void OnInit(){}
    
    void OnTick(){ strategy (); }
    
    void OnDeinit(const int  reason ){
       QuickReport("report", true);
    }
    
    int TimeHour     ( datetime time ){return((int)((time / 3600) % 24));}//gün içinde geçerli saat. Saat içinde 3600 saniye
    
    void strategy (){
      string Symb = _Symbol;
      MqlTick Tick;
      if (SymbolInfoTick(Symb, Tick)){    
        if(TimeHour(TimeCurrent())<23 && TimeHour(TimeCurrent())>0 ){return;} 
        OrderSend(Symb, OP_BUY,  10, Tick.ask, 0, Tick.bid, Tick.bid,  NULL, 1000);
        OrderSend(Symb, OP_SELL, 10, Tick.bid, 0, Tick.ask, Tick.ask,  NULL, 1000);
       }
    }
    
  • büyük test kodu

  • Virtual ile basit
    #include <MT4Orders.mqh>
    
    #include <fxsaber\Virtual\Virtual.mqh>
    #define REPORT_BROWSER            // Open report in browswer automatically. Require DLL.
    //#include <Rapor.mqh>
    #include <MT4Orders_QuickReport.mqh>
    
    double OnTester() { //or OnDeinit()
       for (int v = 0 ; v <= VIRTUAL::Total(); v++){if (VIRTUAL::SelectByIndex(v)){QuickReport("report_"+(string)v, true, v);}} //her test kullanıcısı için raporu göster
       return(AccountInfoDouble(ACCOUNT_BALANCE)); 
    }
  • çağrı parametrelerinin açıklaması
    void QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=0, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){...}
    file_name - kayıt için dosya adı
    is_open_file_in_browser - hesaplama tamamlandığında dosyayı tarayıcıda otomatik olarak açar (DLL izni gereklidir). Birkaç bin tane olabileceğinden, dosyalar optimizasyon sırasında otomatik olarak açılmayacaktır.
    virtual_number - (Virtual ile çalışmak için) sanal test cihazı sayısı (-1 - otomatik olarak belirlenir, 0 - MT5 test cihazı, >0 - sanal test cihazları)
    hide_account_and_name - hesap numarasını ve adını gizle
    common_path - terminallerin ortak klasörüne kaydet. Optimizasyon sırasında dosyaların başka bir aracı tarafından üzerine yazılmasını önlemek için, dosya adlarına aracı numarası (3000, 3001,...) eklenir. Test klasörüne kaydederken (false), hesaplamaları gerçekleştiren aracının klasörüne kaydedilirler.
    fileANSI - ANSI kodlamasında veya UNICODE olarak kaydedin. UNICODE dosyalarının boyutu 2 kat daha büyüktür ve işlenmesi daha uzun sürer, bu nedenle çok fazla veri yüklerseniz, örneğin 1 GB, ANSI kullanmak daha ekonomiktir. UNICODE, ihtiyaç duymanız halinde üçüncü taraf hizmetlerle uyumluluk için eklenmiştir.


5.4 milyon işlem için örnek rapor:

(Bilgisayarımda 100 000 satırdan fazla rapor içeren sanal tüm belleği yiyor ve takılıyor, bu nedenle JavaScript sürümünü yaptım).

QuickReport Örneği

Bu rapor Firefox'u gösterdi. Chrome takılıyor, daha küçük dosyalara ihtiyacı var.

Bir dosyaya 5.4 milyondan fazla satır yüklenebilir, ancak Firefox tarayıcısı daha fazlasını kaldıramaz.

Bu raporu yüklerken, tarayıcı yaklaşık 6GB bellek kullandı (yaklaşık 1 dakika işledi), sonra serbest bıraktı, ardından rapor sayfada görüntülendi: (Rapor 80-100 bin satırdan 5-6GB kullanıyor).

Bellek kullanımı


Yakınlaştırmalı ayrıntılı grafik.

Herhangi bir grafiğe tıklandığında, ayrıntılı görüntüleme için yakınlaştırma özelliğine sahip, o grafikle etkileşimli bir grafik açılır.
2 seçenek vardır:

  1. Varsayılan ücretsiz Google.charts
  2. Ticari bir ürün olarak daha hızlı ve daha kullanışlı olan Highcharts'ı bağlayabilirsiniz, ancak yalnızca geliştirme sırasında programcılar tarafından ücretsiz olarak kullanılabilir; bir proje / ürün yayınlarken, bir lisans satın alınmalı ve yıllık olarak yenilenmelidir. Daha fazlasını buradan okuyun https://shop.highcharts.com/

Logaritmik - logaritmik ölçeği seçebilirsiniz (üstel bakiye büyümeniz varsa yararlı olabilir). Highcharts için ek olarak Ordinal - tek tip adım (MetaQuotes test raporlarında olduğu gibi) seçeneğini belirleyebilirsiniz. Bu öğeleri değiştirdikten sonra, seçilen seçeneği uygulamak için istediğiniz grafiğe tekrar tıklamanız gerekir.

Google.chart' tan örnek : (fare tekerleği ile yakınlaştırma).


Highcharts 'tan örnek : (fare ile gerekli alanı seçerek ölçeği değiştirin).


Gerçekleştirilen MT5 bekleyen emirler

Bekleyen emirlerin tetiklenmesi sonucunda ortaya çıkan emirler için, Tür alanı koyu mavi renkte bekleyen emrin türünü (Alış limiti, Satış limiti, Alış durdurma veya Satış durdurma), saniye cinsinden emrin ayarlanmasından tetiklenmesine kadar geçen süreyi ve etkinleştirilen emrin/pozisyonun türünü gösterir. Bu bilgiler yalnızca MT5 terminali veya test cihazı için gösterilir, sanal test cihazları veya MT4 bu bilgileri sağlamaz.



Saat ve haftanın gününe göre kar ve zarar grafikleri.

MQ test cihazından farklı olarak, kârlar ve zararlar oluştukları anda değil, bir ticarete girme zamanına göre görüntülenir. Bu, belirli bir saatteki girişlerin çoğunlukla kârsız olduğunu anlamayı ve girişler için bu saati kapatmayı kolaylaştırır.
Ayrıca, alım ve satımlara ilişkin grafikler hazırlanmıştır.


Bu grafiklerden herhangi birine tıklarsanız, saatlere ve günlere göre kesin miktarları içeren tablolar göreceksiniz. Girişlerden saatleri ve günleri devre dışı bırakmak için kullanılabilecek onay kutuları da vardır - grafikler ve tablolar yeniden oluşturulacak ve sonucu ek testler yapmadan değerlendirebileceksiniz. Fxsaber'deki BestInterval 'in bir analogudur, ancak daha kaba (1 saatlik bir adımla) ve otomasyonsuzdur. Adımı azaltmak için M10 aralığı eklenmiştir.

Bu grafiklerde bazı saatlik veya günlük kar patlamaları küçük test dönemlerinde görülebilir. Yukarıdaki grafikler yükseliş eğilimi olan 1 aylık bir testi göstermektedir. Yani alım kârda ve satış zararda. Testi bir yıl veya daha uzun bir süreye çıkarırsanız, her iki yönde de birkaç büyük eğilim geçtiğinde, her şey eşit şekilde bulaşacak ve genellikle kârsız hale gelecektir, bu nedenle bir şeyi kapatmanız ve kârda önemli bir değişiklik elde etmeniz olası değildir.
İşte 1 yıllık testle aynı stratejide ne oldu: (neredeyse her şeyi kapatmalısınız).

Bu yüzden stratejinizin temeli olması pek mümkün değildir.


Emir filtreleme.

Emirleri farklı parametrelere göre görüntülemek için birçok filtre eklenmiştir.


Alış, Satış, Alış limiti, Satış limiti, Alış durdurma, Satış durdurma, Bakiye - her tür emri rapordan kaldırabilirsiniz.
Semboller - kullanılan enstrümanların tüm listesini gösterecektir, yalnızca gerekli olanları seçebilirsiniz.
Magic - yalnızca belirtilen Magic ile emirleri gösterebilirsiniz
Min Lot, Max Lot - gerekli lotlara sahip emirleri seçebilirsiniz
Negatif Slipaj - negatif slipajlı emirleri açılış emirleri veya kapanış için ayrı ayrı gösterebilirsiniz
Swap - swaplı emirleri gösterir > 0
Min LengthTime - belirtilen süreden daha uzun süreli emirler (gün, saat, dakika ve saniye sayısı ile belirtilir)
Max LengthTime - belirtilen süreden daha kısa süreli emirler
Open Time - belirtilen tarihlerden itibaren emrin açılma zamanı
Close Time - belirtilen tarihlerden itibaren emrin kapanma zamanı
TP, SL - TP veya SL tetiklemesiyle sonlanan emirler
Karlar, Zararlar - kar veya zararda olan emirler (komisyonlar ve takaslar dahil değildir, nihai karı negatif yapabilirler)
Reddedilenler - gerçekleştirilmemiş emirler.

Sıfırla düğmesi, filtreleri varsayılan değerlere sıfırlamanıza ve tüm siparişleri filtrelemeden göstermenize olanak tanır.


Ek seçenekler:



  1. İleri testin başlangıç tarihini belirleyebilirsiniz, uygulandıktan sonra tam grafiğin, belirtilen tarihten önceki grafiğin (BackTest) ve sonraki grafiğin (ForwardTest) istatistikleri hesaplanacaktır. Grafikler bu tarihte dikey bir çizgi gösterecektir.
  2. Eski sütun sırası - sütun sırası Rapor kitaplığındaki gibi yeniden düzenlenecektir

Not: İşlemlerle ilgili ne kadar çok yorum olursa, o kadar az sayıda satır görüntülenebilir. 5,4 milyon satırlı bir raporda "test sonu" dışında hiçbir yorum yoktu. Bu nedenle, rapor 4 milyondan fazla işlem olacaksa bunları koymamak daha iyidir.

Not: Hem MT5 hem de MT4'te çalışır. MT4 için modifikasyon için fxsaber'e teşekkürler.

İyileştirme seçenekleri:

  • Raporu ikili bir dosyaya boşaltmayı ve tarayıcıda okumayı deneyebilirsiniz, belki 5,4 milyon satırlık büyük bir sayı ile çalışabilir. Ancak o zaman güvenlik kısıtlamaları nedeniyle ikili dosyayı manuel olarak seçmemiz gerekecektir. Yani, testten hemen sonra raporu otomatik olarak açamayacağız.

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/47816

iCHO Trend CCIDualOnMA Filtresi iCHO Trend CCIDualOnMA Filtresi

Standart gösterge iCHO (Chaikin Osilatörü, CHO) ve özel gösterge 'CCIDualOnMA'ya dayalı strateji

Manuel Pozisyon İzleme Paneli Manuel Pozisyon İzleme Paneli

CDialog sınıfına dayalı panel. Mevcut sembol üzerinde çalışın. Bir grup pozisyon üzerinde silme, Kar Al ayarı, Başabaş ayarı

Birim Profilleri Oluşturmak için Temel Kütüphane Birim Profilleri Oluşturmak için Temel Kütüphane

Grafik üzerinde Hacim Profilleri oluşturmak için temel kütüphane.

Açı ve Hız Açı ve Hız

Gösterge, fiyat değişiminin açısını veya ortalama hızını gösterir.