Errores, fallos, preguntas - página 2190

 
Alexey Viktorov:

Después de tres minutos de experimentación, llegué a la conclusión de que el desplazamiento es de


y no desde la posición actual.

¿Y qué? El número de barras visibles está cambiando. Sería mejor comprobar cuando el gráfico se mueve con el ratón. Puedes cogerlo. Y si hay un desplazamiento en el gráfico con la acción del ratón, entonces no es una función.
 
Artyom Trishkin:
¿Y qué? El número de barras visibles está cambiando. Sería mejor comprobar cuando se mueve el gráfico con el ratón. Puedes cogerlo. Si hay un desplazamiento de un gráfico con la acción del ratón, entonces no está funcionando.

No he hablado de una comprobación en tiempo de ejecución. Si se desplaza manualmente el gráfico hacia la derecha en 100 barras y luego se intenta desplazar otras 10 barras hacia la derecha, el desplazamiento se establecerá en 10 a partir de la marca mostrada en la imagen. De hecho, en este ejemplo, el desplazamiento no se producirá a la derecha en 10, sino a la izquierda en 90.

En cuanto a la comprobación... ¿qué sentido tiene comprobar algo que no funciona como se espera? Más exactamente escrito no como se esperaba. Para mover el gráfico más de una vez, el desplazamiento debe hacerse desde CHART_CURRENT_POS, y en el ejemplo fue CHART_END.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Errores, fallos, preguntas

Aleksey Vyazmikin, 2018.04.12 15:43

Si llamo al script a menudo - una vez tras otra después de la ejecución, el desplazamiento del gráfico deja de funcionar, es decir, los comandos para esta acción se saltan

   long handle=ChartID(); 
   if(handle>0) // если получилось, дополнительно настроим 
     { 
      ChartNavigate(handle,CHART_END,-2000); 
     } 

De ahí el problema.

 
Alexey Viktorov:

No he hablado de una comprobación en tiempo de ejecución. Si se desplaza manualmente el gráfico hacia la derecha en 100 barras y luego se intenta desplazarlo otras 10 barras hacia la derecha, el desplazamiento se establecerá en 10 desde la marca que se muestra en la imagen. De hecho, en este ejemplo, el desplazamiento no se producirá a la derecha en 10, sino a la izquierda en 90.

En cuanto a la comprobación... ¿qué sentido tiene comprobar algo que no funciona como se espera? Más exactamente escrito no como se esperaba. Para mover el gráfico más de una vez, tenemos que desplazarnos desde CHART_CURRENT_POS y en el ejemplo, desde CHART_END.


De ahí el problema.

No he leído el código. Tal vez lo necesite así.

Lo que digo es que la función de desplazamiento del gráfico es asíncrona, lo que significa que cuando devuelve el éxito de la ejecución, no se trata del desplazamiento del gráfico, sino del éxito de poner tal orden en la cola de eventos del gráfico. Y esto no es lo mismo, ya lo sabes.

Así que, basándome en eso, estoy hablando de capturar el evento de la ejecución del comando de desplazamiento de la carta...

Ojalá tuviera tiempo para experimentar... Pero, por desgracia...

 

El perfilador no muestra las firmas de las funciones, por lo que no se puede saber inmediatamente a qué función sobrecargada se refiere


Es decir, la lista se llena con __FUNCTION__, mientras que a mí me gustaría __FUNCSIG__.

 

Ayuda a encontrar el post del desarrollador donde se publicó el código fuente de ArrayResize. Buscar en Google "site:mql5.com/es/forum ArrayResize+reserve" no ayuda.

Recuerdo que había un código fuente. En él se puede ver inmediatamente la lógica de implementación del parámetro de reserva.

 
fxsaber:

Ayuda a encontrar el post del desarrollador donde se publicó el código fuente de ArrayResize. Buscar en Google "site:mql5.com/es/forum ArrayResize+reserve" no ayuda.

Recuerdo que había un código fuente. Se puede ver inmediatamente la lógica detrás de la implementación del parámetro de reserva.

¿El código fuente o el pseudocódigo? Son cosas diametralmente distintas.

 
Artyom Trishkin:

Si sólo te basas en el hecho de un desplazamiento, puedes desplazar el gráfico a mano - eso es un agujero en la lógica...

Al parecer, hay que comprobar el desplazamiento respecto a la barra calculada, no sólo el desplazamiento. Sólo hay que averiguar cómo implementarlo correctamente...

Alexey Viktorov:

No he hablado de comprobar la ejecución. Si se desplaza manualmente el gráfico hacia la derecha en 100 barras y luego se intenta desplazar otras 10 y también hacia la derecha con el script, el desplazamiento se establecerá en 10 desde la marca indicada en la instantánea. De hecho, en este ejemplo, el desplazamiento no se producirá a la derecha en 10, sino a la izquierda en 90.

En cuanto a la comprobación... ¿qué sentido tiene comprobar algo que no funciona como se espera? Más exactamente escrito no como se esperaba. Para mover el gráfico más de una vez, tenemos que desplazarnos desde CHART_CURRENT_POS y en el ejemplo tenemos CHART_END.


De ahí el problema.

Necesito CHART_END, porque se supone que hacemos el desplazamiento en el bucle por fechas, y es más conveniente buscar las fechas desde el principio o desde el final de los datos, que desde el medio...

 
Sergey Dzyublik:

¿Código fuente o pseudocódigo? Son cosas radicalmente diferentes.

Creo que el código fuente fue publicado directamente. Pero incluso si hay pseudocódigo, y será útil.

 
Aleksey Vyazmikin:

Al parecer, hay que comprobar el desplazamiento respecto a la barra calculada, no sólo el desplazamiento. Sólo tengo que averiguar cómo implementarlo correctamente...

Necesito CHART_END, porque se supone que debe hacer el cambio en el ciclo por fechas, y es más conveniente buscar las fechas desde el principio o el final de los datos, en lugar de desde el medio...

Así que no hay ningún problema. El desplazamiento sólo será imperceptible si se intenta desplazar el mismo número de compases 2 o más veces con un periodo sin cambios.

Espero no haberme olvidado de desactivar el desplazamiento automático del gráfico.

ChartSetInteger(0, CHART_AUTOSCROLL, 0, false);
 
Alexey Viktorov:

Así que no hay ningún problema. El desplazamiento sólo será imperceptible si se intenta desplazar el mismo número de compases 2 o más veces con el mismo periodo.

Espero no haberme olvidado de desactivar el autoskill.

El autodesplazamiento, por supuesto, está desactivado.