Servicedesk. Quejas, sugerencias. - página 6

 
Ilya Malev:
De todos modos, no funcionará en un bucle, ya que todos los indicadores tienen el mismo hilo, ya sea con o sin temporizador. O no entiendo su idea.
Digamos que hay un indicador1. Llama al indicador2. El Indicador2 carece de datos sobre algunos símbolos/TF. Envía estos datos al indicador1 y ha descargado los datos necesarios en el temporizador. Una vez recibida la confirmación de que se han descargado todos los datos necesarios, volvemos a intentar descargar los datos del indicador2 y, en cuanto estén disponibles todos los datos necesarios, calculamos el indicador1.
 
Alexey Kozitsyn:

Para descargar y comprobar el historial, similar a MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Repito la pregunta, ¿sabéis cómo conseguir esta fecha mediante el antiguo mql4?

Yo sí. Tiempo[Bars-1].
 
Alexey Kozitsyn:

... Posibilidad de transferir los programas de MT4 a MT5 y viceversa.

De 4 a 5 - comprensible. Al revés, no tanto.

 
Alexey Kozitsyn:
Digamos que hay un indicador1. Llama al indicador2. El Indicador2 carece de datos sobre algunos símbolos/TF. Envía estos datos al indicador1 y ha descargado los datos necesarios en el temporizador. Una vez recibida la confirmación de que se han descargado todos los datos necesarios, volvemos a intentar descargar los datos del indicador2 y, en cuanto estén disponibles todos los datos necesarios, calculamos el indicador1.

La memoria se asigna 5 veces. Bajo el espacio de dirección de comandos para la misma cosa.

¿Qué es lo que llora por la liberación agresiva de la memoria del espacio de direcciones de datos? Por lo menos, las extensiones están presentes allí.

 
Vasyl Nosal:
Esperando el arbitraje desde hace mucho tiempo. Tercera semana (me pidieron que esperara a la segunda semana, vale).
Oh, todopoderosos moderadores, por favor, volved los ojos al problema:)
 
Алексей Тарабанов:
Lo sé. Tiempo[Bars-1].

Te equivocas. Ya he escrito más abajo que la construcción que has dado dará la primera fecha no en el servidor sino en el gráfico.

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

Servicio de atención al cliente. Quejas, sugerencias.

Alexey Kozitsyn, 2015.10.30 16:42

Usando iTime( _Symbol, period, Bars( _Symbol, period )-1 ) podemos obtener el tiempo de la primera vela disponible en el gráfico.

Pero para obtener la hora de la primera vela en el servidor no he decidido qué construcción utilizar.

Todo se hace simplemente usando SeriesInfoInteger: SeriesInfoInteger( _Symbol, period,SERIES_SERVER_FIRSTDATE);


 
Алексей Тарабанов:

La memoria se asigna 5 veces. Bajo el espacio de dirección de comandos para la misma cosa.

¿Qué es lo que llora por la liberación agresiva de la memoria del espacio de direcciones de datos? Al menos hay extensiones allí.

¿Tienes algo sustancial que decir?
 

En general, lo más probable es que haya una solución normal para el problema de iCustom que he mencionado.

Si MT5 ya ha cargado el handle del indicador con los parámetros especificados para este símbolo/tf, entonces, según tengo entendido, al llamarlo desde cualquier otro lugar, no se vuelve a realizar el cálculo del mismo indicador, sino que se utiliza el handle existente.

Y como en el primer "nivel de anidamiento" antes de la llamada de iCustom, funciona la llamada de OnTimer, podemos esperar un cálculo secuencial de todos los indicadores, empezando por los más básicos, luego los que los utilizan, y así hasta cualquier nivel de anidamiento, creando sus manejadores sólo cuando se hayan calculado todos los indicadores y series de tiempo utilizados en ellos. Entonces probablemente desaparezca la necesidad del botón "Actualizar". Ojalá lo hubiera adivinado hace una semana...

P.D. Al utilizar OnTimer, tenga en cuenta que las memorias intermedias de los indicadores no se mostrarán en el gráfico y en la ventana de datos hasta que el OnCalculate, llamado por el terminal, devuelva un valor diferente de 0. Y el terminal llama a OnCalculate sólo una vez, justo después de Inite, cuando las series de tiempo y los indicadores aún no han sido calculados. Cuando se llama a OnCalculate desde Ontimer, no importa el valor que devuelva, si el primer retorno es 0, el indicador no se mostrará en el gráfico hasta el siguiente tick o hasta que se pulse "Actualizar".

 
Alexey Kozitsyn:

El segundo problema es del mismo tipo. El indicador está en TF MN1. Estoy intentando recibir datos a través de la función SeriesInfoInteger() del TF M5. La función devuelve valores correctos durante algún tiempo, y luego deja de hacerlo y empieza a devolver ceros

Acabo de ver su problema en el indicador MT5, sin dejar un ciclo OnTimer, compruebo la serie de tiempo en otro símbolo/período (no el actual) - la función dice que se construye y da el número correcto de barras. Inmediatamente después llamo a otra función para construir el indicador - dentro de esta función, llamada desde la misma llamada de OnTimer, las timeseries logran ser descargadas y el SeriesInfoInteger devuelve ceros. Tuve que incrustar una comprobación cíclica adicional, para que todo se construya por sí mismo sin ticks entrantes.
 
Vasyl Nosal:
Oh, moderadores todopoderosos, por favor, miren el problema:)
Pronto será la cuarta semana de arbitraje... para continuar:)))))
Razón de la queja: