FORTALEZAS Por favor, ayuda - página 8

 
MigVRN:

Siempre lo ha sido.

Es un experto en tic-tac que no funciona. Y todo lo demás en el chat. El temporizador y los eventos personalizados realmente no lo comprobaron.

También de la ayuda

...Los archivos de servicios en formato HCC actúan como fuente de datos para construir los datos de precios para los plazos solicitados en formato HC. Los datos en el formato HC son series temporales, que están preparadas al máximo para un acceso rápido. Se crean sólo a petición de un gráfico o programa mql5 en el volumen que no exceda el parámetro "Barras máximas en los gráficos", y se guardan para su posterior uso en archivos con la extensión hc.

Para ahorrar recursos, los datos del marco temporal se cargan y almacenan en la RAM sólo cuando se necesitan. En caso de ausencia prolongada de solicitudes, los datos se descargan de la RAM guardándolos en un archivo. Los datos de cada marco temporal se preparan independientemente de los datos listos para otros marcos temporales. Las normas de preparación y disponibilidad de los datos son las mismas para todos los plazos. Así, a pesar de que la unidad de almacenamiento de datos en el formato HCC es la barra de minutos, la disponibilidad de los datos en el formato HCC no significa la disponibilidad y accesibilidad de los datos del marco temporal M1 en el mismo volumen en el formato HC.

:)

Así que quién los cargará en la memoria, si noSeriesInfoInteger(symbol,PERIOD_M1,SERIES_TERMINAL_FIRSTDATE,first_date)

¡¡¡¡No hay ninguna otra función!!!!

Por qué ir al servidor cuando los datos ESTÁN en el terminal????

 
Mikalas:

:)

Así que quién los cargará en la memoria, si noSeriesInfoInteger(symbol,PERIOD_M1,SERIES_TERMINAL_FIRSTDATE,first_date)

¡¡¡¡No hay ninguna otra función!!!!

Por qué ir al servidor cuando los datos ESTÁN en el terminal????

Así es, carga lo que hay. Pero debido al hecho de que cualquier retraso en el indicador ralentiza la charla con todo lo que está colgando en él - en los indicadores que hicimos para que si la serie no está listo en el momento de la llamada - función devolverá el error y INICIALIZAR la preparación de datos. Después de un tiempo ya no devolverá un error. Esto es lo que ocurre en sus registros.
 
MigVRN:
Porque es la PRIMERA vez que aborda esta serie en particular.

Hice el ciclo:

long first_date = 0;
    datetime times[1];
    int fail_cnt = 0;
//---
    while ( fail_cnt < 1000 )
    {
      ResetLastError();  
      if ( SeriesInfoInteger( symbol, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) )
      {
        if ( first_date > 0 )
        {
//--- force timeseries build
          CopyTime( symbol, period, datetime( first_date ) + PeriodSeconds( period ), 1, times );
//--- check date
          if ( SeriesInfoInteger( symbol, period, SERIES_FIRSTDATE, first_date ) )
//---        
          if ( first_date > 0 && first_date <= long( start_date ) )
          {
            return( Bars( symbol, period, start_date, end_date ) );
          } 
        }
      }
      fail_cnt++;
    }

¿Adivina cuál es el resultado?

 
MigVRN:
Muy bien - carga y prepara lo que hay. Pero debido al hecho de que cualquier retraso en el indicador ralentiza la charla con todo lo que cuelga de ella - en los indicadores que hizo que si la serie no está listo en el momento de la llamada - función devolverá el error y la preparación de datos INICIALIZAR. Después de un tiempo ya no devolverá un error. Esto es lo que tienes en tus registros.
Este tiempo puede llevar varias llamadas a OnCalculate() o incluso algunos segundos. Así es como funciona la máquina de hacer dinero. Por eso es incorrecto llamar a cualquier cosa relacionada con la obtención de datos del indicador OnInit().
 
Mikalas:

Hice el ciclo:

¿Adivina cuál es el resultado?

barabashkakvn:
Este tiempo puede llevar varias llamadas a OnCalculate() o incluso varios segundos. Así es como funciona una máquina de hacer dinero. Por eso es incorrecto llamar a cualquier cosa relacionada con la obtención de datos desde OnInit() del indicador.

Así es, el ciclo es MUY rápido. No hay tiempo para prepararse... Entiendo que desde el punto de vista del desarrollador (nosotros) es un INFIERNO :) Pero tendrás que acostumbrarte a ello.

Por cierto, Sleep() no funciona en los indicadores

:)

 
MigVRN:

Así es, el ciclo es MUY rápido. No hay tiempo para prepararse... Entiendo que desde el punto de vista del desarrollador (nosotros) es un INFIERNO :) Pero tendrás que acostumbrarte...

Por cierto, Sleep() no funciona en los indicadores

:)

¡Gracias, Andrey!

La pregunta no es para ti, es retórica:

¿Por qué necesito

SeriesInfoInteger( símbolo, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) ????

¡Si no obtengo respuesta, tengo que ponerme en contacto con el servidor (realmente puede que no haya datos en el terminal) !

Gracias a todos. Los chukchi lo consiguieron....

... ¡Y "respeto" a MQ !

P/S No volveré a leer la ayuda...

 
Mikalas:

¡Komposter!

Cuando no entiendes o malinterpretas algo, nadie te llama chukchi.

¿Por qué deberían hacerlo?

Cuando no entiendo, intento escuchar lo que me dicen.

Y has ignorado obstinadamente la experiencia de muchas personas que se han enfrentado a un problema similar y lo han resuelto.

Eso es lo que yo llamo un "escritor chukcha".

 
Mikalas:

Entonces, ¿cuál es el

SeriesInfoInteger( símbolo, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE, first_date ) ????

Si no obtengo respuesta, tengo que ir al servidor (¡los datos del terminal pueden no estar realmente ahí!

Para obtener los datos si están listos o para iniciar una preparación si la solicitud ocurre por primera vez.
 
MigVRN:

Así es, el ciclo es MUY rápido. No hay tiempo para prepararse... Entiendo que desde el punto de vista del desarrollador (nosotros) es un INFIERNO :) Pero tendrás que acostumbrarte...

Por cierto, Sleep() no funciona en los indicadores

:)

Por cierto, ¿qué impide a los desarrolladores utilizar elSERIES_TERMINAL_FIRSTDATE

volver:

-1 - sin datos

0 - no hay datos disponibles pero no están listos

> 0 - la propia fecha

 
Mikalas:

Por cierto, ¿los desarrolladores evitaron el identificadorSERIES_TERMINAL_FIRSTDATE

volver:

-1 - sin datos

0 - no hay datos disponibles, pero no están listos

> 0 - la propia fecha.

¿Y cuál es la diferencia entre "no disponible" y "no listo" para el programa (y el programador)?

Si los datos no están listos, habrá un error.

O tal vez esta información tampoco está disponible al instante, y por eso no se muestra.

Razón de la queja: