Errores, fallos, preguntas - página 1524

 
Slawa:

¿Qué hay que documentar? "Hermanos, relájense y tómenlo con calma, desiníciense como quieran. Los desarrolladores lo permitieron.

Pero cuando se cierra el terminal, se activan condiciones estrictas, que ya se han mencionado específicamente en la documentación. Y la próxima vez que abra el terminal, es posible que no haya abierto los gráficos, porque no han conseguido guardarse en el tiempo previsto.

¿Qué tiene esto que ver?

Intente inundar el registro en un bucle sin fin y vea lo rápido que crece y cómo 64 MB cortan los registros duplicados y truncan el principio del registro. Exageras con tu afirmación sobre la falta de protección. Hace tiempo que tendríamos todos los discos de los sitios de alojamiento atascados.

Documentar tal como está o hacer lo documentado... Vale, eso es cosa tuya.

Lo probé, me arriesgué por la salud del ordenador, tasa de llenado ~1,5 GB/min. Pero el terminal no se cuelga, comparando con el 4).

 
-Aleks-:

Uf, así que el fallo no ha vuelto - puedes cerrar el terminal y asegurarte de que todos los gráficos se guardan.

Dice que al cerrar la terminal, el programa se ve obligado a terminar después de 3 segundos ahora. Así es como funciona ahora y seguirá funcionando. No quieren devolver el cierre forzado cuando el programa se retira del gráfico sin terminar el terminal.
 
Slawa:

Originalmente se trataba de un indicador de bucle. Lo cual es categóricamente desaconsejable. Incluso como ilustración

No estamos hablando del indicador en bucle, sino de cualquier indicador sin comprobación IsStopped dentro de sus ciclos. Porque los ciclos de construcción de indicadores complejos pueden ser largos. Por supuesto, este tema no es tan actual para mí por el bucle infinito, simplemente no puedo mostrar el código fuente, y es inútil porque es demasiado engorroso.
 

Cualquier indicador utiliza al menos un ciclo.

Un bucle sin comprobación IsStopped hace que este bucle sea potencialmente infinito. Porque puede haber millones de datos de precios en la matriz, y cada iteración puede escribirse de forma no óptima.

Un programador que crea deliberadamente un bucle infinito no puede apelar a la falta de información en la documentación; además, la documentación establece explícitamente

В одном потоке с индикаторами также последовательно выполняются остальные действия по данному символу - обработка тиков и синхронизация истории. Это означает, что если в индикаторе выполняется бесконечное действие, все остальные события по его символу никогда не выполнятся.

El programador consciente entiende inmediatamente que en este caso, es él/ella el responsable de la eficacia del indicador, no la documentación. Además, ha habido muchos debates y artículos sobre este tema

 
Slawa:

El programador concienzudo entiende inmediatamente que en este caso es responsable de la eficacia del indicador, no de la documentación. Además, ha habido muchos debates y artículos sobre este tema

Confieso que no tenía la comprobación IsStopped, y por eso tuve problemas de interrupciones en la construcción de indicadores complejos por mi sola culpa. Pero, por otro lado, me acostumbré a que el trabajo del programa y su documentación deben coincidir.
 
Ilya Malev:
Dice que cuando se cierra el terminal, el programa es forzado a terminar después de 3 segundos ya. Así es como funciona ahora y seguirá funcionando. No quieren recuperar el cierre forzado al eliminar el programa de la carta sin terminar el terminal.
Um, he hecho mi punto de vista sobre el cuádruple - parece terminar y cerrar todo correctamente ahora, mientras que solía perder gráficos con EAs.
 
Ilya Malev:
Todo esto es correcto, me arrepiento de no haber tenido la comprobación de IsStopped y por lo tanto tenía problemas con la interrupción de la construcción de los indicadores complejos sólo por mi culpa. Pero, por otro lado, me acostumbré a que el trabajo del programa y su documentación coincidieran.

La documentación no puede tener en cuenta todos los matices. Especialmente cuando hablamos de segundos, GHz, megabytes - los valores que son medibles pero dependen fuertemente de su entorno

Intentamos rellenar los espacios en blanco de la documentación (aunque secretamente esperamos una presunción de concienciación)

 
-Aleks-:
Um, hice un comentario sobre el cuádruple - parece completar y cerrar todo correctamente ahora, pero solía perder gráficos con EAs.

El cuarteto ha seguido en paralelo los procesos de cierre de cada carta. Por lo tanto, pudieron aumentar el tiempo de espera de cada uno.

Antes, los gráficos se memorizaban uno por uno, y cada uno recibía el mismo tiempo de espera. Cuantos más gráficos y más EAs inhibidos había en ellos, más largo era el proceso de cierre.

 
Slawa:

El cuarteto ha seguido en paralelo los procesos de cierre de cada carta. Por lo tanto, pudieron aumentar el tiempo de espera de cada uno.

Antes, los gráficos se memorizaban uno por uno, y cada uno recibía el mismo tiempo de espera. Cuantos más gráficos y sobre ellos, más largo fue el proceso de cierre.

Entendido a grandes rasgos.

Lento no es lento, depende mucho del hardware y de las tareas que realice el EA, y hay que tener en cuenta que los programas a menudo no están escritos por programadores profesionales, para eso hay un lenguaje de programación, creo.

 

MT4. Me gustaría llamar su atención una vez más sobre las peculiaridades de la inicialización de las variables globales del programa.

Las variables globales se inicializan una vez cuando se instala el programa en un gráfico o se recompila el código.

Si desea cambiar el marco temporal, el símbolo o los parámetros de entrada, las variables globales no se reinicializan (por ejemplo, no se borran), y mantienen sus valores, que obtuvieron durante el trabajo con los marcos temporales, símbolos o parámetros de entrada anteriores.

input int c;
int a,b;
void OnInit() {
 a++; Print(" a=",a," b=",b," c=",c); }

Resulta que si no se borran todas las variables globales mediante programación, cuando se cambie el TF, el instrumento o los parámetros de entrada, el código funcionará con los valores anteriores, es decir, incorrectamente.

¿Es razonable? ¿No sería mejor hacerlo en el probador de estrategias? Allí, las variables globales se reinicializan a cada cambio de TF, de instrumento o de parámetros de entrada.