Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Publica el código para optimizar MQL5\Experts\Examples\MACD\MACD Sample.mq5. Luego puedes intentar reproducirlo. Ahora casi no hay trabajo constructivo.
Sube el código para optimizar MQL5\Experts\Examples\MACD\MACD Sample.mq5. Luego puedes intentar reproducirlo. Ahora casi no hay trabajo constructivo.
Gracias. Voy a tratar de preparar los archivos y publicarlos. En este momento todo está todavía en el estado desordenado.
Sube el código para optimizar MQL5\Experts\Examples\MACD\MACD Sample.mq5. Luego puedes intentar reproducirlo. Ahora casi no hay trabajo constructivo.
Buenas tardes.
He preparado los archivos y los he adjuntado.
Optimización del 25.03 al 20.05.2024 en el timeframe M1.
Depósito 17000. Apalancamiento 40. Máximo del criterio complejo.
En primer lugar tenemos que limpiar la carpeta "C:\sers\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache" para la pureza del experimento.
El script Nocturne debe ejecutarse parámetro a parámetro para optimizarlo.
A continuación, la salida:
Para el primer parámetro: ProfitNow -1478 ParamMax 0.37 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 30 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 varias veces.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 varias veces
Para el tercer parámetro: ProfitNow -379 ParamMax 6 repetidamente.
Esto muestra el bloqueo de la caché de datos en el tercer parámetro.
Y ahora tenemos que borrar la carpeta "C:\sers\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache" de nuevo
Y luego se repite:
Para el primer parámetro: ProfitNow -1478 ParamMax 0.37 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 30 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 varias veces.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 varias veces
Para el tercer parámetro: ProfitNow -379 ParamMax 6 repetidamente
Las líneas 151-154 del script de Nocturne dice todo como me indicaste:
Run(Odinar);
int GLOC = MTTESTER::GetLastOptCache(Bytes); // Obtener el archivo opt en una matriz de bytes Bytes
TESTERCACHE<ExpTradeSummary> Caché;
bool CL = Cache.Load(Bytes); // Introduce la matriz de bytes Bytes en Cache
El error está, por supuesto, en el código que escribí, pero aún no sé cómo solucionarlo.
Sin embargo, he descubierto experimentalmente que si eliminas manualmente todos los archivos opt de la carpeta "C:\ bytes" antes de ejecutar Ejecutar.
de la carpeta "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache",
entonces mi código funciona correctamente y realiza la optimización en el parámetro seleccionado.
Si no se limpia esta carpeta, el Probador no realiza optimizaciones repetidas (con los mismos datos sin modificar), sino que lee de esta carpeta
archivo opt ya existente de esta carpeta. Esto puede verse claramente cuando se ejecuta repetidamente la misma optimización de forma manual.
Puede verse que la optimización real sólo se realiza la primera vez, y entonces sólo lee el archivo opt de la carpeta.
Esta lectura repetida no parece actualizar el contenido de la caché, y esto es lo que está causando el error en mi código.
Borrar dicha carpeta podría ayudar a resolver el error. Por supuesto, esta es una mala solución, y sería más elegante poder restaurar los datos correctos en la caché.
Pero no sé cómo hacerlo. Por ahora, los datos de la optimización real anterior están colgados en la caché (no coinciden con la relectura de la carpeta).
Desafortunadamente, esta carpeta no se puede limpiar desde el script usando FolderClean, porque está prohibido en MQL5.
Está fuera de la "caja de arena" y se llena sólo por el Probador de Estrategias.
Tal vez deberías crear algún complemento externo mediante C++ y ejecutarlo desde el script.
Saludos, Alexander
Error en el texto:
¡Buenas tardes!
Preparado los archivos y se adjunta.
Optimización de 25.03 a 20.05.2024 en el marco de tiempo M1.
Depósito 17000. Apalancamiento 40. Máximo del criterio complejo.
En primer lugar tenemos que limpiar la carpeta "C:\sers\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache" para la pureza del experimento.
El script Nocturne debe ejecutarse parámetro a parámetro para optimizarlo.
A continuación, la salida:
Para el primer parámetro: ProfitNow -1478 ParamMax 0.37 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 30 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el primer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 6 repetidamente
Para el tercer parámetro: ProfitNow -379 ParamMax 6 repetidamente.
Esto muestra que la caché de datos se cuelga en el tercer parámetro.
Y ahora tenemos que borrar la carpeta "C:\sers\ASUS\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache" de nuevo
Y luego se repite:
Para el primer parámetro: ProfitNow -1478 ParamMax 0.37 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 30 por primera vez.
Para el tercer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el primer parámetro: ProfitNow -379 ParamMax 6 por primera vez.
Para el segundo parámetro: ProfitNow -379 ParamMax 6 repetidamente
Para el tercer parámetro: ProfitNow -379 ParamMax 6 repetidamente.
Las líneas 151-154 del script de Nocturne dice todo como me indicaste:
Run(Odinar);
int GLOC = MTTESTER::GetLastOptCache(Bytes); // Obtener el archivo opt en una matriz de bytes Bytes
TESTERCACHE<ExpTradeSummary> Caché;
bool CL = Cache.Load(Bytes); // Introduce la matriz de bytes Bytes en Cache
El error está, por supuesto, en el código que escribí, pero aún no sé cómo solucionarlo.
Sin embargo, he descubierto experimentalmente que si eliminas manualmente todos los archivos opt de la carpeta "C:\ bytes" antes de ejecutar Ejecutar.
de la carpeta "C:\Users\ASUSAppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\Tester\cache",
entonces mi código funciona correctamente y realiza la optimización en el parámetro seleccionado.
Si no se limpia esta carpeta, el Probador no realiza optimizaciones repetidas (con los mismos datos sin modificar), sino que lee de esta carpeta
archivo opt ya existente de esta carpeta. Esto puede verse claramente cuando se ejecuta repetidamente la misma optimización de forma manual.
Puede verse que la optimización real sólo se realiza la primera vez, y entonces sólo lee el archivo opt de la carpeta.
Esta lectura repetida no parece actualizar el contenido de la caché, y esto es lo que está causando el error en mi código.
Borrar dicha carpeta podría ayudar a resolver el error. Por supuesto, esta es una mala solución, y sería más elegante poder restaurar los datos correctos en la caché.
Pero no sé cómo hacerlo. Por ahora, los datos de la optimización real anterior están colgados en la caché (no coinciden con la relectura de la carpeta).
Desafortunadamente, esta carpeta no se puede limpiar desde el script usando FolderClean, porque está prohibido en MQL5.
Está fuera de la "caja de arena" y se llena sólo por el Probador de Estrategias.
Tal vez deberías crear algún complemento externo mediante C++ y ejecutarlo desde el script.
Saludos, Alexander
He publicado mi robot para la optimización, como Nocturne se orienta en su lista de parámetros.
Pero para MQL5\Experts\Examples\MACD\MACD Sample.mq5 necesita muchas modificaciones.
Por cierto, ¿por qué necesita la entrada de parámetros int inNum = 0?
¿O es sólo un atavismo?
Sube el código para optimizar MQL5\Experts\Examples\MACD\MACD Sample.mq5. Luego puedes intentar reproducirlo. Ahora casi no hay trabajo constructivo.
Buenas tardes.
He conseguido resolver todos mis problemas con la ayuda de Alexander Slavsky: https://www.mql5.com/es/users/s22aa.
Me envió el código para borrar el contenido de Cache.
No pude limpiar Cache directamente, ya que está fuera del sandbox.
Quizás le sea útil a alguien antes de ejecutar el procedimiento Run, para que los resultados de optimizaciones pasadas no interfieran con las nuevas.
Adjunto este script.
Vuestras librerías y este procedimiento de limpieza han conseguido que pueda optimizar el robot de forma consistente.
Muchas gracias por estos códigos y por su ayuda.
Saludos, Alexander
los archivos opt ya existentes de esta carpeta. Esto puede verse claramente cuando se ejecuta manualmente la misma optimización repetidamente.
Se puede ver que la optimización real se realiza sólo la primera vez, y luego sólo lee el archivo opt de la carpeta.
Esta lectura repetida no parece actualizar el contenido de la caché, y esto es lo que causa el error en mi código.
#propiedad tester_no_cache
inFakeRange
código para borrar el contenido de la Caché.
En MTTester.mqh hay una función muy demandada cuando se hacen muchas ejecuciones individuales.
Si reemplazas tst por opt, borrará el último archivo opt. Parece redundante limpiar toda la carpeta Cache.