Rápida versión JavaScript de la librería Report para comandos de trading estilo MT4 implementados a través de MT4Orders o Virtual.
Funciona hasta 10 veces más rápido que Report, el tamaño del archivo NTML es menor, puede cargar y mostrar hasta 5,4 millones de líneas de informe (captura de pantalla a continuación).
Funcionalidad: (la misma que Report)
Diferencias con el Informe:

El gráfico TurnOver se sustituye por un gráfico con P/L para compras, ventas y su importe. De esta manera puede entender si su estrategia es alcista o bajista. Puede decidir desactivar una de las direcciones de negociación si no es rentable. A continuación se muestra el gráfico del precio de cierre del instrumento. Es conveniente seguir cómo las compras producen beneficios cuando el tipo sube y las ventas pérdidas, y viceversa cuando el tipo baja. Si hay varios instrumentos, sus precios se mostrarán juntos, es mejor seleccionar sólo uno de los instrumentos por filtro para ver sólo su precio.

Añadidos gráficos de deslizamientos y deslizamientos acumulados en apertura, cierre y su suma, la idea fue tomada de aquí https://www.mql5.com/ru/blogs/post/760817.

Ejemplos de uso:
#include <MT4Orders.mqh> #define REPORT_BROWSER // Open report in browswer automatically. Require DLL. //#include <Informe.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));}//hora actual en día. 3600 seg en hora 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. //#include <Informe.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);}} //mostrar el informe de cada probador 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){...}file_name - nombre del archivo para la grabación
Ejemplo de informe para 5,4 millones de transacciones:
( Virtual con informe de más de 100 000 líneas en mi ordenador se come toda la memoria y se cuelga, por esta razón hice versión JavaScript).
Este informe mostró Firefox. Chrome se cuelga, necesita archivos más pequeños.
Más de 5,4 millones de filas se pueden cargar en un archivo, pero el navegador Firefox no puede manejar más.
Al cargar este informe, el navegador utilizó alrededor de 6GB de memoria (procesado alrededor de 1 minuto), luego la liberó, después de lo cual el informe se muestra en la página: (Informe utiliza 5-6GB de 80-100 mil líneas).

Gráfico detallado con zoom.
Al hacer clic en cualquier gráfico se abrirá un gráfico interactivo con ese gráfico, con la posibilidad de ampliarlo para verlo en detalle.
Hay 2 opciones:
Puede seleccionar Logarithmic - escala logarítmica (puede ser útil si tiene un crecimiento exponencial del balance). Para Highcharts puede seleccionar adicionalmente Ordinal - paso uniforme (como en los informes de los probadores de MetaQuotes). Después de cambiar estos elementos, es necesario hacer clic de nuevo en el gráfico deseado para aplicar la opción seleccionada.
Ejemplo de Google.chart: (zoom con la rueda del ratón).
Ejemplo de Highcharts: (cambiar la escala seleccionando la zona necesaria con el ratón).
Órdenes pendientes ejecutadas en MT5
Para las órdenes que aparecieron como resultado de la activación de órdenes pendientes, el campo Tipo muestra en color azul oscuro el tipo de orden pendiente (Buy limit, Sell limit, Buy stop o Sell stop), el tiempo desde la configuración hasta la activación de la orden en segundos y el tipo de orden/posición activada. Esta información sólo se muestra para el terminal o probador MT5, los probadores virtuales o MT4 no proporcionan esta información.

Gráficos de pérdidas y ganancias por hora y día de la semana.
A diferencia del comprobador MQ, los beneficios y pérdidas no se muestran en el momento en que se producen, sino en el momento de entrada en una operación. Esto hace que sea más fácil entender que las entradas en una hora determinada son en su mayoría poco rentables y simplemente desactivar esta hora para las entradas.
Además, se han elaborado gráficos sobre compras y ventas.
Si hace clic en cualquiera de estos gráficos, verá tablas con los importes exactos por horas y días. También hay casillas de verificación que se pueden utilizar para desactivar las horas y los días de las entradas - los gráficos y las tablas se reconstruirán y podrá evaluar el resultado sin pruebas adicionales. Es un análogo de BestInterval de Fxsaber, pero más grueso (con un paso de 1 hora) y sin automatización. Se ha añadido el intervalo M10 para reducir el paso.

En estos gráficos se pueden observar algunas ráfagas de beneficios por hora o por día en pequeños periodos de prueba. Los gráficos de arriba muestran una prueba de 1 mes con una tendencia alcista. Por lo tanto, la compra está en beneficios y la venta en pérdidas. Si aumenta la prueba a un año o más, cuando pasarán varias tendencias grandes en ambas direcciones, todo se volverá uniforme y generalmente no rentable, por lo que es poco probable que pueda desactivar algo y obtener un cambio significativo en el beneficio.
Aquí está lo que se convirtió en la misma estrategia con la prueba durante 1 año: (usted debe apagar casi todo).
Así que difícilmente puede convertirse en la base de su estrategia.
Filtrado de órdenes.
Se han añadido muchos filtros para mostrar las órdenes por diferentes parámetros.
Buy, Sell, Buy limit, Sell limit, Buy stop, Sell stop, Balance - puede eliminar cualquier tipo de orden del informe.
Symbols - mostrará toda la lista de instrumentos utilizados, puede seleccionar sólo los necesarios.
Magic - puede mostrar órdenes sólo con Magic especificado
Min Lot, Max Lot - puede seleccionar órdenes con lotes requeridos
Negative Slippage - puede mostrar órdenes con deslizamiento negativo por separado para órdenes de apertura o de cierre
Swap - muestra órdenes con swaps > 0
Min LengthTime - órdenes con duración superior al tiempo especificado (especificado por número de días, horas, minutos y segundos)
Max LengthTime - órdenes con duración inferior al tiempo especificado
Open Time - hora de apertura de la orden desde y hasta las fechas especificadas
Close Time - hora de cierre de la orden desde y hasta las fechas especificadas
TP, SL - órdenes que finalizaron con TP o SL activados
Ganancias, Pérdidas - órdenes con ganancias o pérdidas (no se incluyen comisiones y swaps, que pueden hacer que el beneficio final sea negativo)
Rechazos - órdenes no ejecutadas.
El botón Restablecer permite restablecer los filtros a los valores por defecto y mostrar todas las órdenes sin filtrar.
Opciones adicionales:

P.D. Cuantos más comentarios haya sobre las operaciones, menor será el número de filas que se puedan mostrar. Un informe con 5,4 millones de filas no tenía más comentarios que "fin de la prueba". Así que es mejor no ponerlos si el informe va a tener más de 4 millones de operaciones.
P.P.S. Funciona tanto en MT5 como en MT4. Gracias a fxsaber por la modificación para MT4.
Opciones de mejora:
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/47816
Filtro iCHO Trend CCIDualOnMA
Estrategia basada en el indicador estándar iCHO (Chaikin Oscillator, CHO) y el indicador personalizado 'CCIDualOnMA'.
Panel de seguimiento de posición manual
Panel basado en la clase CDialog. Trabaja sobre el símbolo actual. Borrar, establecer Take Profit, establecer Breakeven en un grupo de posiciones.
Biblioteca básica para crear perfiles de volumen
Biblioteca básica para crear perfiles de volumen en el gráfico.
Ángulo y velocidad
El indicador muestra el ángulo o la velocidad media de variación del precio.