Errores, fallos, preguntas - página 2938

 
Dado que no hay cotizaciones los fines de semana, ¿significa que el servidor no da el historial? En mi opinión, esta es una suposición poco probable, pero había razones para pensar que sí, porque los fines de semana el indicador o no funciona, o después de la tediosa y persistente conmutación de los TFs y el cambio de los parámetros de entrada del indicador en la ventana de configuración, se obtuvieron los resultados tan esperados, aunque deberían haber ocurrido en cualquier configuración de los ajustes.
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Среди программ для автоматического трейдинга можно выделить две большие категории: торговые роботы и индикаторы. Первые предназначены для совершения торговых операций на рынках, а вторые — для анализа котировок и выявления закономерностей в их изменении. При этом индикаторы могут использоваться непосредственно в роботах, образуя полноценную...
 
x572intraday:

Sí, lo recuerdo perfectamente: hacer un intento de precarga del historial falso en OnInit. No funcionó allí ni en OnCalculate, ni siquiera en un bucle con cien repeticiones. No sé cómo funciona en realidad, pero por fuera no había la carga de historia prometida (aunque con retraso), el resultado siguió siendo insatisfactorio hasta el final.

Además, hubo otros casos en los que la respuesta se devolvió repetidamente:

pero al final no hubo continuación del indicador, hubo silencio en la respuesta.

No es necesario hacer ciclos con repeticiones.

Si se trata de un indicador, haga una única solicitud del símbolo-período correcto en OnCalculate. Si falla, entonces return(0)

Tome la hora de llegada del símbolo-período requerido, normalice esta hora al principio del período requerido, pregunte a 1 última barra del símbolo-período requerido y compruebe su hora. A continuación, pregunte por el estado de la historia del tiempo

Dependiendo de la lentitud de su ordenador y de la carga de recursos, pueden pasar más de cien OnCalculate.

El código al que te refieres es muy antiguo. Pero es bueno para ilustrar. Pero no es adecuado para los indicadores, porque las solicitudes de historia de los indicadores se ejecutan sin ninguna espera (lo que está claramente escrito en la documentación) y el sueño en los indicadores es inútil.

 
x572intraday:
Dado que no hay cotizaciones los fines de semana, ¿significa que el servidor no da el historial? Creo que es una suposición poco probable, pero había razones para pensar que sí, porque los fines de semana el indicador o no funciona, o después de la tediosa y persistente conmutación de los TFs y el cambio de los parámetros de entrada del indicador en la ventana de configuración, se obtuvieron los resultados tan esperados, aunque deberían haber ocurrido en cualquier configuración.

El servidor da el historial incluso los fines de semana.

Controla la construcción de barras por la hora del último tick del símbolo correspondiente

 
Slava:

Si se trata de un indicador, haga una solicitud única para el período de caracteres requerido en OnCalculate. Si falla, entonces return(0)

Bueno return(false) en caso de fallo es un clásico. Así que lo hago. Todo estaría bien, pero el problema es que mis cálculos posteriores están atados a la carga exitosa de la historia (y esta lógica no puede cambiar), y en el caso de fallo y retorno de la función de cálculos, simplemente no se producen y las construcciones gráficas posteriores no obtienen las coordenadas necesarias, todo se bloquea. Cómo evitar esto - no han pensado todavía y no esperan cambiar algo también. Hasta ahora tengo lo siguiente: o bien se carga todo el historial y se construyen todas las series temporales para todos los plazos y el indicador funciona casi inmediatamente sin que falte ningún cálculo debido a return(false), o bien falta parte del historial y el códigovuelve a una función de nivel superior conreturn e intenta solicitar el historial que falta en un bucle sin fin, que no conduce a nada. Simplemente he rechazado la tercera variante -sin retorno- y algunos cálculos fallan, lo que hace que el dibujo de los gráficos sea incompleto.

Todavía está sentado en el tanque un poco, todavía estoy perplejo ... ¿Es real organizar la lógica MQL del indicador para que funcione sólo con el historial local, sin necesidad de descargar el historial que falta y sufrir retrasos por ello? O cualquier función de Copia... ... inevitablemente tengo que contactar con el servidor para descargar incluso esa parte del historial, que no necesito para el procesamiento? Sencillamente, los indicadores estándar se dibujan al instante en el historial existente en mi PC, sin ninguna descarga (he buscado indicadores en la carpeta Examples y allí sólo utilizan CopyBuffer(), y no en todos) ... ¿O la reanudación se oculta a los ojos? ¿Cuál es el objetivo de la reanudación?

Gracias. Pensaré en sus recomendaciones - probablemente, me serán útiles.

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стили рисования - Константы индикаторов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

He estado alejado del ordenador durante unas horas. Durante este tiempo, se produjo una situación anormal y el robot empezó a coser muchas huellas. Como resultado, el disco está completamente obstruido. Esto interrumpe el trabajo de los terminales, ya que no pueden volcar su historial de precios en el disco.


Tenemos que evitar ese atasco del disco. Una de las alternativas es prohibir la escritura en la carpeta. Es decir, vivir sin registros en el disco siempre. Otra opción es matar los archivos de registro cuando no queda suficiente espacio libre.

¿Alguien ha resuelto este problema?

 
Slava:

Si se trata de un indicador, haga una solicitud única para el período de caracteres requerido en OnCalculate. Si falla, entonces return(0)

¿Y si quieres correr el indicador en el fin de semana?

¿Sólo la llamada forzada de OnCalculate desde el temporizador (con todas las muletas en forma de copia de arrays para pasar por referencia)?

 
x572intraday:

¿Es realista organizar una lógica MQL no redundante del indicador para trabajar sólo con el historial local, sin necesidad de descargar el que falta y sufrir los retrasos asociados a él? O cualquier función de Copia... ... inevitablemente tengo que acceder al servidor para descargar incluso esa parte del historial, que no necesito para el procesamiento?

Podrías hacer tu propio caché(escribir en archivos).

Cuando me sugirieron esto, por supuesto, me torcí la sien, pero realmente es mejor que esperar a que MQ cambie su enfoque en el manejo de las series temporales.

 
fxsaber:

He estado alejado del ordenador durante unas horas. Durante este tiempo, se produjo una situación anormal y el robot empezó a coser muchas huellas. Como resultado, el disco está completamente obstruido. Esto interrumpe el trabajo de los terminales, porque no pueden volcar su historial de precios en el disco.


Tenemos que evitar ese atasco del disco. Una de las alternativas es prohibir la escritura en la carpeta. Es decir, vivir sin registros en el disco siempre. Otra opción es matar los archivos de registro cuando no queda suficiente espacio libre.

¿Alguien ha resuelto este problema?

Por interés me apresuré a comprobarlo y me di de bruces contra el suelo: ¡183 Gb! Eso es casi 4/5 de mi SSD. Las imágenes de máquinas virtuales ocupan menos. Al menos tendré algo que leer en mi vejez...

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
x572intraday:

Sólo por diversión, me apresuré a revisar mi casa y me golpeé con la mandíbula: ¡183GB! Eso es casi 4/5 de mi SSD. Las imágenes de máquinas virtuales ocupan menos. Al menos tengo algo que leer en mi vejez...

La impresión y la alerta son funciones potencialmente peligrosas.

 
Todos los precios se muestran hasta el quinto decimal, pero uno, por alguna razón, en la misma lista se muestra así:
Price=0.7235200000000001
¿Por qué iba a hacer eso? ¿Es un error o debemos ajustar la salida de forma unificada? Bueno, digamos que lo peino con PrintFormat o fprint, pero en principio no es una representación incorrecta del número?
Razón de la queja: