Kütüphaneler: MT4Orders Hızlı Rapor - sayfa 3

 
Forester #:

Hangi tarayıcı? Kaç işlem var? Benim 100.000'im var ve düşünmem 10 saniye sürüyor ama belli oluyor.

Krom. 40 bin satır. İkinci tıklamadan itibaren bazen grafik görünür. CPU'yu en çok ciro-grafik oluşumu yükler.

 
Варианты улучшения:
  • Raporu ikili bir dosyaya yüklemeyi ve tarayıcıda okumayı deneyebilirsiniz, belki çok sayıda satırla ç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.
Burada bir dosya aracılığıyla yapılır. Otomatik açma ile ilgili herhangi bir sorun yok.

.
  • İşlemleri yalnızca MT4Orders aracılığıyla değil, aynı zamanda normal bir MQL5 kodundan da yükleyebileceğinizi düşünüyorum.

Zor olacak.

MQL5 Ордера истории - Извлечь цену открытия и закрытия каждой транзакции в истории сделок
MQL5 Ордера истории - Извлечь цену открытия и закрытия каждой транзакции в истории сделок
  • 2023.11.20
  • www.mql5.com
Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам. Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Идентификатор позиции указывается в каждом ордере , которая ее открыла
 
fxsaber #:

Krom. 40 bin satır. İkinci tıklamadan itibaren bazen grafik görünür. CPU'yu en çok yükleyen şey devir-grafik formasyonu.

Mozilla'yı deneyin. Gösteriyor ve 100 000'e kadar artırıyor. 700 000'i denedim - gösteriyor, ancak daha fazla yakınlaştıramıyor, tüm belleği tüketiyor.

.
fxsaber #:
Burada bir dosya üzerinden yapılmaktadır. Otomatik açma ile ilgili herhangi bir sorun yoktur.

Birkaç gün sürer. Eğer 5 milyon yeterli olmazsa erteleyeceğim. Şimdilik konuyla ilgili değil.

fxsaber #:
Zor olacak.

Ayrıca çekmecede. Bir satır ekleyin

#include <MT4Orders.mqh>
daha kolay)
 
Forester #:

Eğer 5 milyon yeterli değilse.

Neden böyle html-ifadeleri ile çalışıyorsunuz?

 
Bu arada, kütüphane %90 çapraz platformdur - MT4 ve MT5 üzerinde çalışır. MT4'te de çalışmasını sağlamak için biraz çalışma var.
 
Sinyaller hizmetinin kilitli hesaplarının html beyanını almak için bu kütüphanenin değiştirilmesine gerek yoktur.
 
fxsaber #:
Bu arada, kütüphane %90 çapraz platformdur - MT4 ve MT5 üzerinde çalışır. MT4 üzerinde çalışmasını sağlamak için küçük bir çalışma var.
Birisi bunu sonuçlandırırsa, kodu herkes için kullanılabilir hale getirmek için güncelleyeceğim.

.
fxsaber #:
Burada bir dosya üzerinden yapılmaktadır. Otomatik açma ile ilgili herhangi bir sorun yoktur.

HTML sayfasından çağrılan bir JavaScript metin dosyası oluşturursunuz (bu arada, bunu ayrı bir dosyaya kaydedemezsiniz, ancak benim sürümümde olduğu gibi sayfa koduna ekleyebilirsiniz).
Verileri bir metin dosyasına değil, bir ikili dosyaya kaydetmenin bir varyantını tanımladım. Otomatik olarak bir JavaScript dosyası olarak yüklenemez, çünkü JS kodu değildir, okumaya başlamak için diskte bu dosyayı seçmeniz gerekecektir. Belki o zaman 5,6 milyon satırdan fazlasını okumak mümkün olacaktır.

fxsaber #:

Neden böyle html istatistikleriyle çalışıyorsunuz?

Şimdilik buna gerek yok. Ancak ihtiyaç duyulursa, bunun nasıl yapılacağına dair bir plan var.

fxsaber #:

Fark etmemiştim. Ne yazık ki, bu google.charts çok yavaş ve highcharts ile karşılaştırıldığında rahatsız edici.

Highchart ile değiştirdim. Daha iyi olduğu ortaya çıktı: google.charts 700.000 anlaşmada donarken, highchart bunları özel frenler olmadan görüntüledi ve tek tek anlaşmaları yakınlaştırabildi.

Ordinal - tek tip adım (MetaQuotes test raporlarında olduğu gibi) veya Logaritmik - logaritmik ölçek (üstel bakiye büyümeniz varsa yararlı olabilir) seçebilirsiniz. Bu öğeleri değiştirdikten sonra, seçilen seçeneği uygulamak için istediğiniz grafiğe tekrar tıklamanız gerekir.
 
Forester #:
Birisi bunu sonuçlandırırsa - kodu herkesin kullanımına açık olacak şekilde güncelleyeceğim.
#ifndef __MQL5__

#property strict

long OrderOpenTimeMsc( void ) { return(OrderOpenTime() * 1000); }
long OrderCloseTimeMsc( void ) { return(OrderCloseTime() * 1000); }

double OrderOpenPriceRequest( void ) {return(OrderOpenPrice()); }
double OrderClosePriceRequest( void ) {return(OrderClosePrice()); }

enum ENUM_ACCOUNT_MARGIN_MODE
{
  ACCOUNT_MARGIN_MODE_RETAIL_NETTING,
  ACCOUNT_MARGIN_MODE_EXCHANGE,
  ACCOUNT_MARGIN_MODE_RETAIL_HEDGING  
};

#define SYMBOL_CUSTOM (-1)

#define ACCOUNT_MARGIN_MODE (-1)
#define ACCOUNT_CURRENCY_DIGITS (-2)

long AccountInfoInteger2( const int Property )
{
  switch (Property)
  {
    case ACCOUNT_MARGIN_MODE:
      return(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
    case ACCOUNT_CURRENCY_DIGITS:
      return(2);      
  }
  
  return(AccountInfoInteger(Property));
}

#define AccountInfoInteger AccountInfoInteger2

// string BASEPATH_ = (::TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL4\\Files\\\\");

#endif // #ifndef __MQL5__

#define  REPORT_BROWSER            // Raporu tarayıcıda otomatik olarak açın. DLL gerektirir.
#include <MT4Orders_QuickReport.mqh> // https://www.mql5.com/tr/code/47816

void OnStart()
{  
  QuickReport("QuickReport", true);
}
 
Forester #:

Highchart'a geçtim. Daha iyi olduğu ortaya çıktı: google.charts 700.000 anlaşmada donarken, highchart bunları özel frenler olmadan görüntüledi ve tek tek anlaşmaları yakınlaştırabildi.

Bu harika bir şey!

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

Yararlı.


Kronoloji bozuk gibi görünüyor.

 
fxsaber #:
Kod için teşekkürler. \MT4Orders_QuickReport.mqh
adresine ekledim.
fxsaber #:
Kronoloji bozulmuş gibi görünüyor.


Sadece MQ test raporunda bu vardı. Sanal olanda yoktu.
Limit işlemleri de dahil olmak üzere tüm işlemleri grafik için diziye koydum. Dengeyi değiştirmiyorlar, bu yüzden fazla müdahale etmediler.

MQ test cihazının silinen limit emirlerini gecikmeli olarak arşive aktardığı ortaya çıktı:

Sipariş

99 1005 2023.05.29 00:03:59.281 2023.05.29 00:03:59.331

hikayeye 2 tik sonra girdi. 00:03:59.331 saatinden sonra olmalıydı, 00:03:59.380 saati kaçırıldı, 00:03:59.430 saatinde geçmişe taşındı.
Sipariş

123 1005 2023.05.29 00:03:59.331 2023.05.29 00:03:59.380
arşive 1 tik sonra girdi. Yukarıdaki ekran görüntüsünde daha fazla örnek var.
.


Kapanış zamanı doğru, ancak görünüşe göre ayrı bir dizide limitleri var ve geçmişe aktarım her tikte işlenmiyor.

Sanal test cihazınızda her şey açıktır: (dizi paylaşılır ve kendi tikinde geçmişe gönderilir)

Grafiklerdeki limitlerin çıktısını kaldırdım, şimdi yanlış zamana sahip bu çubuklar orada değil.