Errores, fallos, preguntas - página 2491

 
Alexey Navoykov:
Hace tiempo que me he dado cuenta de que resaltar los nombres de las macros personalizadas en un proyecto grande no siempre funciona. Muchas macros definidas en otros archivos no se resaltan por alguna razón. Todavía no puedo averiguar el patrón. Todo lo que veo es que todas las macros definidas en un determinado archivo después de una determinada línea dejan de resaltarse en otros archivos. ¿Alguien más ve esto en sus archivos?
 
Alexey Navoykov:
Hace tiempo que me he dado cuenta de que el resaltado de los nombres de las macros personalizadas en un proyecto grande no siempre funciona. Muchas macros definidas en otros archivos no se resaltan por alguna razón. Todavía no puedo averiguar el patrón. Todo lo que veo es que todas las macros definidas en un determinado archivo dejan de resaltarse en otros archivos después de una determinada línea. ¿Alguien más ha visto que le ocurre esto?

Me he dado cuenta de algo parecido. No puedo responder a la exactitud de la situación.

 
Alexey Navoykov:
Desde hace tiempo me he dado cuenta de que los nombres de las macros personalizadas en un proyecto grande no siempre se resaltan. Muchas macros definidas en otros archivos no se resaltan por alguna razón. Todavía no puedo averiguar el razonamiento, pero veo que todas las macros definidas en un determinado archivo dejan de resaltarse en otros archivos después de una determinada línea. ¿Alguien más ha visto esto en su entorno?

Sí, y a veces la autofijación no funciona para nuevas variables o campos de clase, normalmente se puede arreglar recompilando el proyecto

Por lo que tengo entendido, en ME en segundo plano se ejecuta un proceso que se ocupa de resaltar y autofijar, en algún momento, no tiene tiempo (o no quiere) de actualizar toda la información

 
Ahora que estamos hablando de rates_total, permítanme preguntar a la comunidad ¿qué construcción en OnCalculate es más inteligente y óptima?
Solía utilizar una construcción como esta en OnCalculate:
if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем последние(rates_total-prev_calculated) бар


Pero después de darme cuenta de que puede haber situaciones en las que prev_calculated>rates_total, me di cuenta de que no entiendo nada, me rendí y, si el recálculo de todas las barras no lleva más de un par de segundos, empecé a utilizar dicha construcción:

if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем все бары

¿Cómo lo hago y cómo lo hago correctamente?

 
Nikolai Semko:
Ya que hablamos de rates_total, permítanme preguntar a la comunidad ¿qué construcción en OnCalculate es más elegante y óptima?
Solía utilizar una construcción como ésta en OnCalculate:


Pero después de darme cuenta de que puede haber situaciones en las que prev_calculated>rates_total, me di cuenta de que no entiendo nada, me rendí y, si el recálculo de todas las barras no lleva más de un par de segundos, empecé a utilizar dicha construcción:

¿cómo lo hace alguien y cómo, en general, es competente?

Es literario porque entiendes lo que está pasando. Nota sobre su construcción: En lugar de ==1 yo escribiría >=1 o simplemente if(rates_total > prev_calculated) para que si se bombean las barras perdidas se recalculen.

Además, en mql5 y con la directiva estricta en mql4, para no sobrepasar el array, debemos considerar cuántas barras pueden estar involucradas en el cálculo desde la barra más a la izquierda. Así que resulta que yo personalmente no tengo una plantilla para todas las ocasiones.

 
Nikolai Semko:
Ahora que estamos hablando de rates_total, quiero preguntar a la comunidad ¿qué construcción en OnCalculate es más elegante y óptima?
Solía utilizar una construcción como ésta en OnCalculate:


Pero cuando entendí que puede haber situaciones en las que prev_calculated>rates_total, me di cuenta de que no entiendo nada y sacudí la cabeza y, si el recálculo de todas las barras no lleva más que un par de segundos, decidí usar esta construcción:

¿cómo lo hace alguien y cómo se hace correctamente en general?

Calculo límite = total_de_tarifas - prev_calculado.
Entonces, si limit > 1, entonces limit = rates_total - 1 (o el número de compases-1 necesarios para el primer cálculo) y la inicialización.
Y luego un bucle desde el límite hasta >=0.
No puedo hacer el código desde mi móvil ...
 
Nikolai Semko:
Ya que hablamos de rates_total, permítanme preguntar a la comunidad ¿qué construcción en OnCalculate es más elegante y óptima?
Solía utilizar una construcción como ésta en OnCalculate:


Cuando entendí que puede haber situaciones en las que prev_calculated>rates_total, me di cuenta de que no entiendo nada, así que desistí y utilicé esta construcción, si el recálculo de todas las barras no lleva más de un par de segundos:

¿cómo lo hace alguien y, en general, de forma competente?

En principio, la pregunta es relevante, en los ejemplos de los desarrolladores (entrega de MT) diferentes formas de cálculo, incluso BarsCalculated() se utiliza en Bears.mql5

Recientemente he discutido en MT4, hasta ahora me he decidido por el siguiente patrón:https://www.mql5.com/ru/forum/314931/page2#comment_11946579

Todavía tengo que comprobarlo en MT5, pero los gráficos se comportan de forma diferente (MT4 / MT5), en MT5 si se desplaza con la rueda del ratón al principio del historial, parece que prev_calculated se pondrá a cero - el año pasado escribí un indicador en MT5 y me sorprendió ver ese comportamiento

ZZY: hacer un gráfico personalizado y mediante un temporizador desplazarse por el historial - se necesita un llamado banco de pruebas para rastrear el comportamiento de rates_total y prev_calculated - escribí aquí hace un par de páginas sobre el desajuste de rates_total e iBars() - también debería tenerse en cuenta

Me gustó su forma de escribir los indicadores - todo está hecho con cuidado. El único problema con sus códigos es un estilo muy peculiar de formato de código fuente.

 
Igor Makanu:

...........................

un estilo muy peculiar de formato de la fuente


 
Сергей Таболин:


Sé cómo usar el estilizador, pero el estilizador no funciona si pones varios operadores en una línea

;)

ejemplohttps://www.mql5.com/ru/code/22766
 

Sólo una pregunta.

ulong tiene un valor máximo de 18.........

Tengo un valor de 61........

YIntegerToString() de este valor da 90............. en absoluto

Me llevó un tiempo encontrar el problema.

¿Hay alguna forma de localizarlo?