Bibliotheken: MT4Orders QuickReport - Seite 3

 
Forester #:

Welcher Browser? Wie viele Transaktionen? Ich habe 100.000, und es dauert etwa 10 Sekunden, um zu denken, aber es wird angezeigt.

Chrome. 40.000 Zeilen. Ab dem zweiten Klick erscheint manchmal das Diagramm. Umsatz-Grafik-Formation lädt CPU die meisten.

 
Варианты улучшения:
  • Sie können versuchen, den Bericht in eine Binärdatei hochzuladen und im Browser zu lesen, vielleicht funktioniert das bei einer großen Anzahl von Zeilen. Aber dann müssen wir die Binärdatei aufgrund von Sicherheitseinschränkungen manuell auswählen. Das heißt, wir können den Bericht nicht sofort nach dem Test automatisch öffnen.
Hier wird er über eine Datei geöffnet. Es gibt keine Probleme mit dem automatischen Öffnen.

.
  • Ich denke, man kann nicht nur über MT4Orders Trades hochladen, sondern auch über einen normalen MQL5-Code.

Es wird schwierig sein.

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

Chrom. 40K Zeilen. Ab dem zweiten Klick erscheint manchmal der Chart. Turnover-Grafik-Formation belastet CPU am meisten.

Versuchen Sie Mozilla. Er zeigt und vergrößert bis zu 100 000. Ich habe 700 000 versucht - es wird angezeigt, aber es kann nicht mehr zoomen, es verbraucht den ganzen Speicher.

.
fxsaber #:
Hier wird es über eine Datei gemacht. Es gibt keine Probleme mit dem automatischen Öffnen.

Es wird ein paar Tage dauern. Ich werde es verschieben, wenn 5 Millionen nicht genug sind. Im Moment nicht relevant.

fxsaber #:
Es wird schwierig werden.

Auch in der Schublade. Füge eine Zeile hinzu

#include <MT4Orders.mqh>
einfacher)
 
Forester #:

wenn 5 Millionen nicht genug sind.

Warum mit solchen html-Angaben arbeiten?

 
Übrigens ist die Bibliothek zu 90% plattformübergreifend - sie funktioniert auf MT4 und MT5. Es gibt ein wenig Arbeit, damit sie auch auf MT4 läuft.
 
Diese Bibliothek muss nicht geändert werden, um eine HTML-Anweisung für gesperrte Konten des Signalservice zu erhalten.
 
fxsaber #:
Übrigens ist die Bibliothek zu 90% plattformübergreifend - sie funktioniert auf MT4 und MT5. Es gibt noch ein wenig Arbeit, damit sie auf MT4 funktioniert.
Wenn es jemand fertigstellt, werde ich den Code aktualisieren, um ihn für alle verfügbar zu machen.

.
fxsaber #:
Hier wird es durch eine Datei gemacht. Es gibt keine Probleme mit dem automatischen Öffnen.

Sie erstellen eine JavaScript-Textdatei, die von der HTML-Seite aus aufgerufen wird (Sie können sie übrigens nicht in einer separaten Datei speichern, sondern fügen sie in den Seitencode ein, wie in meiner Version).
Ich habe eine Variante beschrieben, bei der die Daten nicht in einer Textdatei, sondern in einer Binärdatei gespeichert werden. Sie kann nicht automatisch als JavaScript-Datei geladen werden, da es sich nicht um JS-Code handelt; Sie müssen diese Datei auf der Festplatte auswählen, um sie zu lesen. Vielleicht ist es dann möglich, mehr als 5,6 Millionen Zeilen zu lesen.

fxsaber #:

Warum mit solchen HTML-Statistiken arbeiten?

Im Moment gibt es keine Notwendigkeit dafür. Aber wenn sich die Notwendigkeit ergibt, gibt es einen Plan, wie man es machen kann.

fxsaber #:

Das war mir nicht klar. Leider ist dieses google.charts sehr langsam und unbequem im Vergleich zu highcharts.

Ich habe es auf highchart umgestellt. Es stellte sich heraus, dass es besser war: google.charts fror bei 700.000 Geschäften ein, während highchart sie ohne besondere Bremsen anzeigte und in der Lage war, auf einzelne Geschäfte zu zoomen.

Sie können Ordinal - einheitlicher Schritt (wie in den Berichten der MetaQuotes-Tester) oder Logarithmisch - logarithmische Skala (dies kann nützlich sein, wenn Sie ein exponentielles Bilanzwachstum haben) wählen. Nachdem Sie diese Optionen geändert haben, müssen Sie erneut auf das gewünschte Diagramm klicken, um die gewählte Option anzuwenden.
 
Forester #:
Wenn jemand es fertigstellt, werde ich den Code aktualisieren, damit er für alle verfügbar ist.
#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            // Bericht automatisch im Browser öffnen. Erfordert DLL.
#include <MT4Orders_QuickReport.mqh> // https://www.mql5.com/de/code/47816

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

Ich wechselte zu Highchart. Es stellte sich heraus, dass es besser war: google.charts fror bei 700.000 Geschäften ein, während highchart sie ohne besondere Bremsen anzeigte und in der Lage war, auf einzelne Geschäfte zu zoomen.

Das ist cool!

Sie können Ordinal - einheitlicher Schritt (wie in den Berichten der MetaQuotes-Tester) oder Logarithmisch - logarithmische Skala (dies kann nützlich sein, wenn Sie ein exponentielles Bilanzwachstum haben) wählen. Nachdem Sie diese Optionen geändert haben, müssen Sie erneut auf das gewünschte Diagramm klicken, um die gewählte Option anzuwenden.

Nützlich.


Die Chronologie scheint kaputt zu sein.

 
fxsaber #:
Vielen Dank für den Code. Habe ihn zu \MT4Orders_QuickReport.mqh
hinzugefügt.
fxsaber #:
Die Chronologie scheint kaputt zu sein.


Nur der MQ-Testerbericht hatte dies. Beim virtuellen Bericht war es nicht der Fall.
Ich habe alle Operationen, einschließlich der Limit-Operationen, in das Array für die Diagrammerstellung aufgenommen. Sie ändern den Saldo nicht, so dass sie nicht sehr störend sind.

Es stellte sich heraus, dass der MQ-Tester die gelöschten Limit-Aufträge mit einer Verzögerung in das Archiv überträgt:

Order

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

ist 2 Ticks später in die Geschichte eingestiegen. Sollte nach 00:03:59.331 gewesen sein, Tick 00:03:59.380 verpasst, um Tick 00:03:59.430 in die Geschichte verschoben.
Auftrag

123 1005 2023.05.29 00:03:59.331 2023.05.29 00:03:59.380
kam 1 Tick später ins Archiv. Weitere Beispiele finden Sie auf dem Screenshot oben.
.


Die Schlusszeit ist korrekt, aber anscheinend werden die Grenzwerte in einem separaten Array gespeichert und die Übertragung in die Historie wird nicht bei jedem Tick verarbeitet.

In Ihrem virtuellen Tester ist alles klar: (das Array ist gemeinsam genutzt und wird bei jedem Tick an die Historie gesendet)

Ich habe die Ausgabe von Limits auf Charts entfernt, jetzt sind diese Balken mit falscher Zeit nicht mehr da.