Comprobación automática de los productos en el mercado (preguntas y sugerencias) - página 6

 
Andrey Khatimlianskii:

Sí, efectivamente, me olvidé de "@global_initializations".

Resulta que dibujar las barras y los búferes de los indicadores por sí mismo lleva tanto tiempo?

Y si compilas para liberar y ejecutas el visualizador en el mismo intervalo, desplazándote directamente hasta el final ("saltar a..."), ¿cuánto tiempo tarda?

Bueno, ¿cuánto tiempo?

 
Prostocar:
Hola Hola, he perdido mi Market en el terminal no puedo instalar Expert Advisors e indicadores desde el Market la reinstalación del terminal no ha servido así como los productos comprados anteriormente en el Market no se actualizan quien sabe como solucionar el problema

Todavía no has respondido a mi pregunta:

Puedes comprobarlo en el terminal, en la ventana de Herramientas, en la pestaña de Registro.


Segunda pregunta: ¿a qué servidor se está conectando? Intente conectarse a MetaQuotes-Demo.

 
MetaQuotes Software Corp.:

Los registros del autovalidador mostraron que la prueba en M1 no puede pasar el intervalo mensual en una hora .

Mientras que en H1 el mismo indicador pasa la prueba en un par de minutos.

Busque la razón en su código.

Es más probable que la razón esté en el autovalidador. He conseguido averiguar que el problema está relacionado de alguna manera con el procesamiento del historial de ticks.

Cuando se procesa el primer evento OnCalculate, el indicador intenta cargar el historial de ticks del último día, ejecutando la función CopyTicksRange. Si cada barra recibe al menos algunos ticks, se dibuja el historial recibido y luego procesa los ticks en línea. Si algunas barras del historial no han recibido ningún tic, el manejador de OnCalculate devuelve 0 e inicia un temporizador de 5 segundos. En los siguientes eventos OnCalculate el indicador sigue intentando cargar el historial de ticks. En el manejador OnTimer, el temporizador se detiene y si todas las llamadas OnCalculate no logran cargar el historial durante 5 segundos, la solicitud de actualización se realiza mediante lallamada ChartSetSymbolPeriod(0, NULL, 0).

Nótese que todo se ejecuta de forma asíncrona y no hay cuelgues por lógica. En el peor de los casos, si suponemos que la base de datos de ticks no está disponible por alguna razón, obtendremos una serie de refrescos con un periodo de 5 segundos. Pero el indicador en este caso no se calcula en absoluto, ya que no hay datos. Se ha investigado la influencia del refresco, que está ausente - véase el comentario más abajo.

Este código me funciona bien en línea en diferentes servidores, diferentes personajes/plazos y en el probador.

El mismo código parece colgar en alguna parte del autovalidador. Por el método de la intuición (que no debería ocurrir en caso de retroalimentación normal, registros, etc.) he descubierto lo siguiente.

Si se comenta el comentario del historial de ticks, el indicador se autovalida normalmente.

Dado que hay muchos factores que solicitan la historia, no puedo decir exactamente qué y en qué combinación "cuelga" el autovalidador:

  • CopyTicksRange en ausencia de ticks de la historia (pero incluso si están ausentes, el indicador no calcula e inmediatamente devuelve el control al entorno, los ticks en línea continúan "ticando" libremente, emulé tal situación - no se cuelga);
  • temporizador;
  • ChartSetSymbolPeriod (como prueba de estrés he ejecutado el indicador con este refresco en modo extremo (en cada tick) y no resulta en ninguna ralentización o carga notable de la CPU, esta petición también es asíncrona);
  • He añadido un contador de refresco fallido para detenerlos después de un número determinado de intentos (5), pero esto no tiene ningún efecto sobre el éxito.

Si se solicita la actualización desde el manejador OnTimer - la autovalidación falla. Si la actualización se transfiere a OnCalculate - la autovalidación tiene éxito. Por lo tanto, hay una evidencia indirecta de que es llamar a ChartSetSymbolPeriod desde OnTimer lo que da un efecto negativo. He ejecutado a propósito tal combinación en el probador - sin problemas. Obviamente, el autovalidador es diferente del probador disponible al público.

Dado que las condiciones identificadas para pasar la validación no son muy claras (extrañas al menos) y requieren hacer el código artificialmente más complejo por intuición, son inaceptables para un producto de lanzamiento.

 
Buenas tardes, solicito ayuda, al autovalidar no hay indicador, el indicador se configura vía recurso, el archivo compilado en otros terminales funciona sin problemas tanto en la prueba como en la cuenta real. ¿Cuál puede ser el problema?
Archivos adjuntos:
2yr38jvml4.png  32 kb
 
RODION SLOTIN:
Hola, solicito ayuda, durante la autovalidación se produce un error sobre la ausencia de indicador, el indicador se establece a través de recurso, en otros terminales el archivo compilado funciona sin problemas tanto en prueba como en tiempo real. ¿Cuál puede ser el problema?

Procure no utilizar dobles extensiones ni guiones. Esto es sólo una suposición rápida.

 
RODION SLOTIN:


¿Puede decirme dónde exactamente?

#Recurso "\NIndicators\\\\guru.ex4"

double SigUp= iCustom(Symbol(),0,"\Experts\/SnowyOwl.v1-1.eng.ex4::Indicadores\\guru.ex4",Sensibilidad,PopUp_Alert,5,0);


Deberías escribirlo así (ejemplo):

#resource "\\Indicators\\trend_channel.ex4"

iCustom(Symbol(),0,"::Indicators\\trend_channel.ex4",kstd,bars,shift,0,bars);

y tienes algunas tonterías escritas aquí.

 
La carpeta de Bibliotecas también aparece en el registro por alguna razón. ¿Por qué es así? Eugene ha descrito correctamente la referencia a un recurso. Debería funcionar localmente (si todas las carpetas por defecto, MQL4/Expertos, MQL4/Indicadores). Cuando arregle el lanzamiento local, lo más probable es que funcione en el autovalidador.
 

Hola.

Estoy intentando subir mi producto al mercado. La validación automática da el siguiente error:

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) Sin embargo esto no puede ser. Estoy colocando el VWAP donde el ratón mueve el punto de inicio. El script compila sin errores y todo funciona bien. ¿Quizás la validación automática no puede interactuar con los scripts en los que tengo que seleccionar el punto de inicio?

¿Cuál puede ser la razón? El indicador puede elegir entre leer con o sin volúmenes. Por defecto es "sin", pero quizás el validador recorre todos los parámetros posibles y tropieza con el cálculo con volúmenes en los pares de divisas. ¿Qué hacer?

 
Anton Polkovnikov:

Hola.

Estoy intentando subir mi producto al mercado. La validación automática da el siguiente error:

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) Sin embargo esto no puede ser. Estoy colocando el VWAP donde el ratón mueve el punto de inicio. El script compila sin errores y todo funciona bien. ¿Quizás la validación automática no puede interactuar con los scripts en los que tengo que seleccionar el punto de inicio?

¿Cuál puede ser la razón? El indicador puede elegir entre contar con o sin volúmenes. Por defecto es "sin", pero quizás el validador recorre todos los parámetros posibles y tropieza con el cálculo con volúmenes en los pares de divisas. ¿Qué hacer?

Intentar importar archivos compilados (incluso EX4/EX5) y DLLs

Los programas que se distribuyen a través del Mercado deben garantizar la seguridad de los usuarios. Por lo tanto, cualquier intento de utilizar DLLs o funciones de archivos compilados EX4/EX5 se considera un error. Estos productos no se publicarán en el mercado.

Si su programa necesita utilizar indicadores adicionales que no se suministran, utiliceRecursos.


Aplicación a los indicadores personalizados mediante iCustom()

Si su programa necesita acceder a los datos de los indicadores personalizados, debe colocar todos los indicadores necesarios enRecursos. Los productos del mercado deben estar listos para funcionar en cualquier entorno no preparado, por lo que deben contener todo lo necesario en su archivo EX4/EX5. Artículos recomendados sobre el tema:


https://www.mql5.com/ru/articles/2555#dll_and_libraries_prohibited

 
Anton Polkovnikov:

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) Sin embargo esto no puede ser.

El array fuera de rango en la línea 387 es el carácter 30. Está escrito. Debemos comprobar la matriz.