Bibliotheken: MT4Orders QuickReport - Seite 8

 
Edgar Akhmadeev #:

Grafische Dateimanager sind natürlich etwas für Amateure. Es ist eine Frage der Gewohnheit. Ich bin einmal von dem textbasierten NortonCommander zu FarCommander mit einer Menge Plug-ins gewechselt.

Die NC-Analoga unter DOS habe ich gerne benutzt. FAR verursachte jedoch sofort eine schreckliche Abneigung, ohne dass ich den Grund dafür verstand. TC habe ich ohne Begeisterung ausprobiert (eine aufgepumpte Version, ich habe nichts eingestellt) - es funktionierte perfekt.

An NC erinnere ich mich noch gut und an FAR mit einem Schaudern. Obwohl alle Programmierer, die ich getroffen habe, nur FAR benutzen.

 
fxsaber #:

In TotalCommander vergleiche ich Quellen auf Tastendruck. Jede Kodierung kann dort leicht mit jeder anderen Kodierung verglichen werden.

Ja, ich benutze es auch lokal. Aber es gibt bequemere Software und Dienste von Drittanbietern. Nicht überall spielt die Kodierung "keine Rolle".

 

Update: Ich habe ein paar Dinge hinzugefügt.

1) Das TurnOver-Diagramm wurde durch ein Diagramm mit P/L für Käufe, Verkäufe und deren Beträge ersetzt. Auf diese Weise können Sie erkennen, ob Ihre Strategie bullish oder bearish ist. Sie können beschließen, eine der Handelsrichtungen abzuschalten, wenn sie nicht profitabel ist.


2) Gewinn- und Verlustdiagramme nach Stunden und Wochentagen.

Im Gegensatz zum MQ-Tester werden Gewinne und Verluste nicht zum Zeitpunkt ihres Auftretens angezeigt, sondern zum Zeitpunkt des Einstiegs in einen Handel. Dies macht es einfacher zu verstehen, dass Einstiege in einer bestimmten Stunde meist unrentabel sind und diese Stunde für Einstiege einfach auszuschalten.
Zusätzlich wurden Charts zu Käufen und Verkäufen erstellt.


Wenn Sie auf eines dieser Diagramme klicken, sehen Sie Tabellen mit genauen Beträgen nach Stunden und Tagen. Es gibt auch Kontrollkästchen, mit denen Sie Stunden und Tage aus den Eingaben ausschließen können - die Diagramme und Tabellen werden dann neu aufgebaut und Sie können das Ergebnis ohne zusätzliche Tests auswerten. Es ist ein Analogon zu BestInterval von Fxsaber, aber grober (mit einem Schritt von 1 Stunde) und ohne Automatisierung. Das M10-Intervall wurde hinzugefügt, um die Schrittweite zu verringern.

Einige stündliche oder tägliche Gewinnausbrüche auf diesen Charts sind bei kleinen Testzeiträumen zu erkennen. In den obigen Diagrammen ist der Test für 5 Monate mit einem Aufwärtstrend. Käufe sind also im Gewinn und Verkäufe sind im Verlust. Wenn Sie den Test auf ein Jahr oder länger ausdehnen, wenn mehrere große Trends in beide Richtungen verlaufen, wird alles gleichmäßig verschmiert und in der Regel unrentabel, so dass es unwahrscheinlich ist, dass Sie in der Lage sind, etwas auszuschalten und eine signifikante Veränderung des Gewinns zu erzielen.

Hier ist, was auf der gleichen Strategie mit dem Test für 1 Jahr wurde: (Sie sollten fast alles ausschalten).

Es ist also unwahrscheinlich, dass es die Grundlage Ihrer Strategie wird.

BestInterval
BestInterval
  • www.mql5.com
Вычисление лучшего интервала торговли.
 

Ich schlage vor, die folgenden Änderungen am Code vorzunehmen.

// 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){//
bool QuickReport(string file_name, bool is_open_file_in_browser=true, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){//
// ....
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID="+(string)VIRTUAL::GetNumber(VIRTUAL::GetHandle()) + " " + VIRTUAL::GetID() +";");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID=0;");
    #endif // #ifdef __VIRTUAL__ #else
// ....
   return(f!=INVALID_HANDLE);
}


Dann das Beispiel aus der Kopfzeile.

 for (int v = 1 ; v <= VIRTUAL::Total(); v++)
   _VI(v, QuickReport("report_"+(string)v, true));
 
Forester #:

Update: Es wurden einige Dinge hinzugefügt.

Eine Auswahl des Berichtstyps wurde zu CustomReport hinzugefügt. Ich habe versucht, Backtests/Signale damit zu betrachten - manchmal praktisch, danke.

Возможности анализа не только своей торговой истории.
Возможности анализа не только своей торговой истории.
  • 2022.07.11
  • www.mql5.com
Семейство терминалов MetaTrader позволяет штатно визуализировать историю торговли открытого счета, бэктестов и Сигналов (мониторинг огромного числа торговых счетов). Ниже пойдет речь об использовании
 
fxsaber #:

Ich schlage vor, die folgenden Änderungen am Kodex vorzunehmen.

Dann das Beispiel aus der Kopfzeile.

Ich habe

    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" ';");
    #endif // #ifdef __VIRTUAL__ #else

...
return(f!=INVALID_HANDLE);
}

Ich habe den Funktionsaufruf aus Gründen der Kompatibilität mit der alten Version unverändert gelassen, damit die Arbeitscodes nicht kaputt gehen. D.h. die Nummer der Virtualisierung wird wie bisher der Variable virtual_number entnommen, und die Funktion fügt VIRTUAL::GetID() selbst dazu.

 
fxsaber #:

Ich schlage vor, die folgenden Änderungen am Kodex vorzunehmen.


Dann das Beispiel aus der Kopfzeile.

Eine neue Variante erstellen

bool QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=-1, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?VIRTUAL::GetNumber(VIRTUAL::GetHandle()):virtual_number)+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?0:virtual_number)+" ';");
    #endif // #ifdef __VIRTUAL__ #else
...
return(f!=INVALID_HANDLE);
}

virtual_number - Nummer des virtuellen Testers (-1 - wird automatisch ermittelt, 0 - MT5-Tester, >0 - virtuelle Tester)

Jetzt standardmäßig (wenn virtual_number nicht angegeben ist), wie in diesem Beispiel

QuickReport("report_"+(string)v, true))

wird die virtual_number automatisch festgelegt.
Wenn virtual_number angegeben ist und >=0, wird sie angezeigt.

 
Aktualisierung. Filter hinzugefügt.

Filterung bestellen.

Es wurden viele Filter hinzugefügt, um Bestellungen nach verschiedenen Parametern anzuzeigen.


Buy, Sell, Buy limit, Sell limit, Buy stop, Sell stop, Balance - Sie können jede Art von Orders aus dem Bericht entfernen.
Symbols - zeigt die gesamte Liste der verwendeten Instrumente an, Sie können nur die notwendigen auswählen.
Magic - Sie können nur Orders mit der angegebenen Magic anzeigen
Min Lot, Max Lot - Sie können Orders mit den erforderlichen Lots auswählen
Negative Slippage - Sie können Orders mit negativer Slippage separat für Eröffnungs- oder Schließungsorders anzeigen
Swap - zeigt Orders mit Swaps > 0
Min LengthTime - Orders mit einer Dauer, die länger als die angegebene Zeit ist (angegeben durch die Anzahl der Tage, Stunden, Minuten und Sekunden)
Max LengthTime - Orders mit einer Dauer, die kürzer als die angegebene Zeit ist
Open Time - Eröffnungszeit der Order von und bis zum angegebenen Datum
Close Time - Schließzeit der Order von und bis zum angegebenen Datum
TP, SL - Orders, die mit einem TP- oder SL-Trigger beendet wurden
Profits, Losses - Orders mit Gewinn oder Verlust (Kommissionen und Swaps sind nicht enthalten, sie können den Endgewinn negativ machen)
Rejects - nicht ausgeführte Orders

Mit der Schaltfläche Zurücksetzen können Sie die Filter auf die Standardwerte zurücksetzen und alle Aufträge ohne Filterung anzeigen lassen.


Ausgeführte MT5 Pending Orders

Der schwebende Auftrag, dessen Auslösung diesen Auftrag/diese Position ausgelöst hat, wird in dunkelblauer Farbe in der gleichen Zeile oben angezeigt. Die Zeit, zu der die Pending Order platziert wurde, die Zeit von der Platzierung bis zur Auslösung der Order und die Art der Pending Order (Buy limit, Sell limit, Buy stop oder Sell stop) werden angezeigt. Diese Informationen werden nur für MT5-Terminals oder -Tester angezeigt, virtuelle Tester oder MT4 liefern diese Informationen nicht.

 
Forester #:

Ausgeführte MT5-Aufträge in der Schwebe

Der schwebende Auftrag, dessen Auslösung diesen Auftrag/diese Position ausgelöst hat, wird in dunkelblauer Farbe in der gleichen Zeile oben angezeigt. Der Zeitpunkt des Setzens der Pending Order, die Zeit vom Setzen bis zum Auslösen der Order und die Art der Pending Order (Buy limit, Sell limit, Buy stop oder Sell stop) sind angegeben.

Bitte lassen Sie diese Informationen nicht anzeigen. Sie sind nicht nützlich. Insbesondere wenn die Order vor der Ausführung geändert wurde.
 
fxsaber #:
Bitte geben Sie die Möglichkeit, diese Informationen nicht anzuzeigen. Sie ist nutzlos. Insbesondere wenn der Auftrag vor der Ausführung geändert wurde.
Sie ist standardmäßig ausgeblendet. Aktiviert durch #define ORDER_PARENT