Versione veloce in JavaScript della libreria Report per i comandi di trading in stile MT4 implementati tramite MT4Orders o Virtual.
Funziona fino a 10 volte più velocemente di Report, la dimensione del file NTML è più piccola, può caricare e visualizzare fino a 5,4 milioni di righe di report (screenshot sotto).
Funzionalità: (la stessa di Report)
Differenze rispetto a Report:

Il grafico del TurnOver è sostituito da un grafico con il P/L degli acquisti e delle vendite e il loro importo. In questo modo è possibile capire se la strategia è rialzista o ribassista. Si può decidere di disattivare una delle direzioni di trading se non è redditizia. Il grafico del prezzo di chiusura dello strumento è mostrato sotto di esso: è comodo seguire come gli acquisti producano profitti quando il tasso sale e le vendite producano perdite, e viceversa quando il tasso scende. Se ci sono più strumenti, i loro prezzi saranno mostrati insieme; è meglio selezionare uno solo degli strumenti tramite un filtro per vedere solo il suo prezzo.

Sono stati aggiunti i grafici degli slippage e degli slippage cumulativi all'apertura, alla chiusura e la loro somma, l'idea è stata presa da qui https://www.mql5.com/ru/blogs/post/760817.

Esempi di utilizzo:
#include <MT4Orders.mqh> #define REPORT_BROWSER // Open report in browswer automatically. Require DLL. //#includere <Report.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));}//ora corrente nel giorno. 3600 sec in ora 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); } }
#include <MT4Orders.mqh> #include <fxsaber\Virtual\Virtual.mqh> #define REPORT_BROWSER // Open report in browswer automatically. Require DLL. //#includere <Report.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);}} //mostrare il rapporto per ogni tester return(AccountInfoDouble(ACCOUNT_BALANCE)); }
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){...}nome_file - nome del file per la registrazione
Esempio di report per 5,4 milioni di transazioni:
(Virtual con report di oltre 100 000 righe sul mio computer mangia tutta la memoria e si blocca, per questo motivo ho realizzato la versione JavaScript).
Questo report è stato mostrato con Firefox. Chrome si blocca, ha bisogno di file più piccoli.
È possibile caricare più di 5,4 milioni di righe in un file, ma il browser Firefox non riesce a gestirne di più.
Durante il caricamento di questo report, il browser ha utilizzato circa 6GB di memoria (elaborata per circa 1 minuto), poi l'ha liberata, dopodiché il report è stato visualizzato sulla pagina: (Il report utilizza 5-6GB da 80-100 mila righe).

Grafico dettagliato con zoom.
Facendo clic su un grafico si apre un grafico interattivo con la possibilità di zoomare per una visualizzazione dettagliata.
Sono disponibili due opzioni:
È possibile selezionare Logarithmic - scala logaritmica (può essere utile se la crescita del bilancio è esponenziale). Per Highcharts è possibile selezionare anche Ordinal - passo uniforme (come nei report dei tester di MetaQuotes). Dopo aver modificato questi elementi, è necessario cliccare nuovamente sul grafico desiderato per applicare l'opzione selezionata.
Esempio da Google.chart: (zoom con la rotella del mouse).
Esempio da Highcharts: (modifica della scala selezionando l'area necessaria con il mouse).
Ordini pendenti eseguiti su MT5
Per gli ordini apparsi in seguito all'attivazione di ordini pendenti, il campo Tipo mostra in blu scuro il tipo di ordine pendente (Buy limit, Sell limit, Buy stop o Sell stop), il tempo trascorso dall'impostazione all'attivazione dell'ordine in secondi e il tipo di ordine/posizione attivato. Queste informazioni vengono mostrate solo per i terminali o i tester MT5; i tester virtuali o MT4 non forniscono queste informazioni.

Grafici dei profitti e delle perdite per ora e giorno della settimana.
A differenza del tester MQ, i profitti e le perdite non sono visualizzati nel momento in cui si verificano, ma nel momento in cui si entra in un'operazione. In questo modo è più facile capire che le entrate in una certa ora sono per lo più non redditizie e quindi è sufficiente escludere questa ora per le entrate.
Inoltre, sono stati creati dei grafici sugli acquisti e sulle vendite.
Se si fa clic su uno di questi grafici, vengono visualizzate le tabelle con gli importi esatti per ora e per giorno. Sono presenti anche delle caselle di controllo che possono essere utilizzate per disattivare le ore e i giorni dagli input: i grafici e le tabelle verranno ricostruiti e sarà possibile valutare il risultato senza ulteriori test. È un analogo di BestInterval di Fxsaber, ma più grossolano (con un passo di 1 ora) e senza automazione. L'intervallo M10 è stato aggiunto per ridurre il passo.

Su questi grafici si possono osservare alcuni profitti orari o giornalieri su piccoli periodi di prova. I grafici sopra mostrano un test di 1 mese con una tendenza al rialzo. Quindi l'acquisto è in profitto e la vendita è in perdita. Se aumentate il test a un anno o più, quando passeranno diverse grandi tendenze in entrambe le direzioni, tutto diventerà uniformemente spalmato e di solito non redditizio, quindi è improbabile che possiate spegnere qualcosa e ottenere un cambiamento significativo nel profitto.
Ecco cosa è successo alla stessa strategia con il test di 1 anno: (si dovrebbe spegnere quasi tutto).
Quindi difficilmente potrà diventare la base della vostra strategia.
Filtraggio degli ordini.
Sono stati aggiunti molti filtri per visualizzare gli ordini in base a diversi parametri.
Compra, Vendi, Limite di acquisto, Limite di vendita, Stop di acquisto, Stop di vendita, Saldo - è possibile rimuovere qualsiasi tipo di ordine dal report.
Symbols - mostrerà l'intero elenco degli strumenti utilizzati; è possibile selezionare solo quelli necessari.
Magic - si possono mostrare gli ordini solo con il Magic specificato
Min Lot, Max Lot - si possono selezionare gli ordini con i lotti richiesti
Negative Slippage - si possono mostrare gli ordini con slippage negativo separatamente per gli ordini di apertura o per quelli di chiusura
Swap - si mostrano gli ordini con swap > 0
Min LengthTime - ordini con durata superiore al tempo specificato (specificato in numero di giorni, ore, minuti e secondi)
Max LengthTime - ordini con durata inferiore al tempo specificato
Open Time - orario di apertura dell'ordine da e verso le date specificate
Close Time - orario di chiusura dell'ordine da e verso le date specificate
TP, SL - ordini che si sono conclusi con l'attivazione di TP o SL
Profitti, perdite - ordini in profitto o in perdita (le commissioni e gli swap non sono inclusi, in quanto possono rendere negativo il profitto finale)
Rifiuti - ordini non eseguiti.
Il pulsante Reimposta consente di ripristinare i filtri ai valori predefiniti e di mostrare tutti gli ordini senza filtri.
Opzioni aggiuntive:

P.S. Maggiore è il numero di commenti sulle operazioni, minore è il numero di righe visualizzabili. Un report con 5,4 milioni di righe non aveva commenti, tranne "fine del test". Quindi è meglio non inserirli se il report supera i 4 milioni di transazioni.
P.P.S. Funziona sia con MT5 che con MT4. Grazie a fxsaber per la modifica per MT4.
Opzioni di miglioramento:
Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/47816
Filtro iCHO Trend CCIDualOnMA
Strategia basata sull'indicatore standard iCHO (Chaikin Oscillator, CHO) e sull'indicatore personalizzato 'CCIDualOnMA'.
Pannello di tracciamento manuale della posizione
Pannello basato sulla classe CDialog. Lavora sul simbolo corrente. Eliminazione, impostazione di Take Profit, impostazione di Breakeven su un gruppo di posizioni
Libreria di base per creare profili di volume
Libreria di base per creare profili di volume sul grafico.
Angolo e velocità
L'indicatore mostra l'angolo o la velocità media di variazione dei prezzi.