Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Intente transferir a C - el error se encontrará solo. Y en general - con tales proyectos es la única manera de escribir, si no quieres problemas en el futuro. Desgraciadamente, yo mismo lo he entendido demasiado tarde y ahora lo reescribo :).
Tenemos un indicador que se ejecuta en TF M15, en el código el indicador solicita la serie temporal MqlRates de TF M1.
El indicador no se pone en marcha de inmediato, ya que los datos M1 no están listos y no es posible cargarlos durante la primera ejecución.
Como resultado tenemos un pase falso y el indicador ya no accede a los datos, pensando que ya están calculados y no es necesario recalcularlos.
Ahora estoy ejecutando el indicador de dos maneras:
De ahí la pregunta: ¿cómo automatizar la comprobación y la carga correctas de los datos necesarios para otra TF?
De ahí la pregunta: ¿cómo automatizar la comprobación y la carga de los datos necesarios de la otra TF?
En una situación similar, controlo el proceso de inicialización en OnCalculate. Si hay un error durante la inicialización, entonces devuelvo prev_calculated=0 y sigo haciéndolo hasta que todo esté calculado correctamente.
La idea es buena, aunque no se puede asignar nada a prev_calculado, la variable está declarada como const, pero entiendo que se puede tener otra variable similar.
Queda una duda: si no hay datos, ¿qué debo hacer?
Entiendo que la solicitud de datos en sí no lleva a la descarga o carga de la base de datos local, y este es exactamente el problema.
La idea es buena, aunque no puedes asignar nada a prev_calculado, la variable está declarada como const, pero te he entendido, puedes tener otra variable similar.
No se trata de la asignación, sino del número devuelto por OnCalculated. Si sus datos no están listos, devolverá 0 desde OnCalculated.
Mire los ejemplos de BarsCalculated. Así es como debe comprobarlo.
Queda una pregunta: si no hay datos, ¿qué hay que hacer?
Si quieres, puedes esperar y calcular los buffers por temporizador.
Si sus datos no están listos, devolverá 0 desde OnCalculated.
Si no los tienes y no aparecen, entonces no hay mucho que hacer.Mira los ejemplos de BarsCalculated.
Si lo desea, puede llamar a los búferes de espera y de cálculo por temporizador.
No sirve de nada, sólo descargar el indicador y reiniciarlo, en este caso los datos ya están ahí por alguna razón.
O bien, abra un gráfico con la TF M1 requerida, entonces los datos del gráfico M15 adyacente en la solicitud M1 estarán listos inmediatamente.
No sirve de nada, sólo descargar el indicador y reiniciarlo, en este caso los datos ya están ahí por alguna razón.
O bien, abra un gráfico con el TF requerido, entonces los datos del gráfico adyacente estarán listos de inmediato.
Hoy he pasado medio día con los índices. Había multidivisas/multihorarios.
El problema de no mostrar es que se intenta tomar un valor de una barra que simplemente no existe en este TF.
Así que hay que comprobar antes de tomar una barra - SeriesInfoInteger.No es necesario descargar. De todos modos, no se puede descargar la parte de cálculo (hoy mismo he sacado el tema a colación).
Hoy he estado trabajando con los índices durante medio día. Había multidivisas/multihorarios.
El problema de la no visualización es que intenta tomar el valor de la barra, que no existe en este TF.
Así que hay que comprobar antes de tomar una barra - SeriesInfoInteger.No es necesario descargar. De todas formas no se puede descargar la parte de cálculo (hoy mismo he sacado un tema sobre esto).
Mimeo, tengo una comprobación, encuentro la primera fecha en el TF M1 y el cálculo de las barras M15 comienza a partir de esta fecha. TF se establece como PERIOD_M1
1. la idea es buena, aunque no se puede asignar nada a prev_calculado, la variable está declarada como const, pero entiendo que se puede tener otra variable similar.
2. queda una pregunta, y si no hay datos, ¿qué debemos hacer?
3. Entiendo que la solicitud de datos en sí no hace que los datos se descarguen o carguen desde la base de datos local, y este es exactamente el problema.
Entiendo que la solicitud de datos en sí no provoca la descarga o carga de datos desde la base de datos local, y este es exactamente el problema.
De la ayuda de CopyXXXX:
Cuando se solicitan datos a un Asesor Experto o a un script, se iniciará la descarga desde el servidor, si el terminal no tiene estos datos localmente, o se iniciará la construcción de las series temporales requeridas, si los datos pueden ser construidos desde el historial local, pero aún no están listos. La función devolverá la cantidad de datos que estará lista cuando expire el tiempo de espera, pero el historial seguirá descargándose y la siguiente petición similar devolverá más datos.