Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
Сode que registra gráficos de equilibrio y equidad y calcula criterios de optimización adicionales. - librería para MetaTrader 5
- Visualizaciones:
- 28
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
He decidido compartir el código de un granproyecto diseñado en una bibliotecaindependiente .
Si tiene acceso al código del Asesor Experto, puede guardar gráficos de balance y equidad y calcular criterios de optimización adicionales añadiendo código adicional de esta biblioteca.
Descargue el archivo Advanced Optimization Report Saver.mqh del enlace adjunto y guárdelo en la carpeta terminal \MQL5\Include\
Añada el código que conecta el archivo descargado: (puede añadirlo debajo de la última línea de su código de Asesor Experto o en cualquier otro lugar).
#include <Advanced Optimization Report Saver.mqh> A continuación, debe añadir llamadas a las funciones exportadas a las funciones existentes en su Asesor Experto: (si no hay funciones, añádalas)
void OnTick(){ //... tu código //Guardar gráficos de saldos y fondos propios save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY)); } void OnTesterInit() { //... tu código save_OnTesterInit();//print to chart "¡No cierre esta ventana hasta que la optimización esté completa!" } void OnTesterDeinit(){ //... tu código save_OnTesterDeinit();// obtener fotogramas } double OnTester(){ //... tu código //guardar los valores personalizados: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nombre, sort_min_to_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//tu fitness personalizado saveCharts(Custom);//salvar la equidad final, todos los tratos... return Custom; }
save_Add funciones, le permiten añadir sus propios criterios que desea incluir a su Informe:
save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nombre, sort_min_to_max
save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
Por ejemplo, vamos a añadir este código al Asesor Experto de Media Móvil de la carpeta Ejemplos (...\MQL5\Experts\Examples\Moving Average\MovingAverage.mq5). Primero, copie el Asesor Experto original y nómbrelo Moving Average Charts.mq5. Ahora, agregue el código de las instrucciones anteriores a la misma.
Los cambios son sólo al final del código, a partir de la OnTick() función después de CheckForOpen(); línea:
void OnTick(void) { //--- if(SelectPosition()) CheckForClose(); else CheckForOpen(); //Guardar gráficos de saldos y fondos propios save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { //... tu código save_OnTesterInit();//print to chart "¡No cierre esta ventana hasta que la optimización esté completa!" } void OnTesterDeinit(){ //... tu código save_OnTesterDeinit();// obtener fotogramas } double OnTester(){ //... tu código //guardar los valores personalizados: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nombre, sort_min_to_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//tu fitness personalizado saveCharts(Custom);//salvar la equidad final, todos los tratos... return Custom; } #include <Advanced Optimization Report Saver.mqh>
Como puedes ver, es bastante sencillo y sólo te llevará un par de minutos.
Después de eso, puedes ejecutar la optimización:


La última captura de pantalla muestra que el código conectado añadido 2 parámetros:
- Guardar estadísticas - activa o desactiva la recopilación de estadísticas.
- Pixels in balance and equity charts - especifica el número de pixels en el ancho de los mini-gráficos.
Una vez finalizada la optimización, puede crear un informe (utilizando un programa que analice los cuadros guardados) y ver lo siguiente:
| 100 líneas con MovingPeriod | 10 líneas con MovingShift |
Si hay más de 20 líneas, sólo se mostrarán 3 líneas horizontales de valores medios: 3 en la parte superior y 3 en la parte inferior.
100 líneas son difíciles de percibir, por lo que es necesario reducir su número.
Para utilizar las variables de entrada no con el mismo paso, pero con una escala a través de un enumerador (enum), por ejemplo: 1,2,3,5,7,10,15,20,30,50,70,100 - sólo habrá 12 líneas en lugar de 100.
enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; input nums1 MovingPeriod = 10; // Período de media móvilPuede descargar la versión enum del Asesor Experto de los archivos adjuntos.
En lugar de 1000 pases de optimización, habrá 120, y el tiempo de cálculo será ~8 veces más rápido, y el tamaño del archivo será ~8 veces menor.
El resultado es más visible:

El resultado con MovingPeriod = 15 destaca inmediatamente, con la línea media más alta y el máximo más alto.
Sin embargo, como suele ocurrir, los mejores resultados en el backtest no son los mejores en el forward test.
Su programa que analiza los cuadros guardados puede mostrar gráficos como éste:

Y criterios adicionales como este:
Si tienes un código para otros criterios interesantes, puedes sugerirlos para añadirlos a la biblioteca.
Actualizaciones:
- 2026-02-02: Añadido soporte para caracteres UTF en nombres de Criterios Personalizados.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/68706
EA Duplicate Detector
Permitir que el EA determine si hay EA duplicados en el gráfico en función de las condiciones.
Project Template Generator
Este script sirve como ejemplo práctico de cómo los desarrolladores pueden trabajar programáticamente con archivos usando MQL5. Uno de sus objetivos clave es demostrar la organización eficaz de los archivos de proyecto, que es esencial para los desarrolladores que trabajan en sistemas a gran escala o con el objetivo de crear proyectos portátiles y autónomos. El concepto puede ampliarse y perfeccionarse con ideas adicionales para dar soporte a flujos de trabajo de desarrollo más avanzados.
Binary tradng based on candle colors
Una simple estrategia de comercio binario que cuenta los colores de las velas.
Accelerator Oscillator (AC)
El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.


