Errores, fallos, preguntas - página 1442

 
Yousufkhodja Sultonov:
Por favor, díganme cómo superar la situación cuando el probador limita el número de posiciones abiertas a cien, a pesar de que, en la configuración, especifico 1000?
No puedes, esto no es una limitación del terminal sino del broker, abrir una cuenta demo con un broker que dé más de 100 órdenes
 

Lea detenidamente sobreCopyRates():

Nota

1. Si el intervalo de datos solicitado está completamente fuera de los datos disponibles en el servidor, la función devuelve -1. Si los datos solicitados están fuera de TERMINAL_MAXBARS (cantidad máxima de barras en el gráfico), la función también devolverá -1.

2. Cuando se solicitan datos del indicador, si las series temporales solicitadas no han sido construidas todavía o necesitan ser descargadas del servidor, la función devolverá -1 inmediatamente, pero se iniciará el proceso de descarga/construcción propiamente dicho.

3. Al solicitar los datos al 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 construirse 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 próxima vez que se haga una petición similar, la función devolverá más datos.

1. esto es correcto y lógico, antes de solicitar los datos, debe comprobar el número de barras permitido en la ventana.

2) También tienes razón, hay que intentar recibir datos hasta que el terminal devuelva la cantidad requerida, recordando comprobar la conexión con el servidor. No hay duda sobre la calidad de los datos recibidos: los datos están o no están.

3. aquí no está nada claro. Nunca se puede estar seguro de que los datos recibidos estén completos. ¿Y por qué iba a necesitar el usuario datos de los que no está seguro de su integridad? La práctica demuestra que la ausencia de trucos (intentos preliminares de obtener datos para iniciar la descarga desde el servidor) no da confianza en que la solicitud obtenga datos completos.

Creo que es más práctico hacer que el comportamiento de las funciones de recuperación de datos en los Asesores Expertos sea similar al de los indicadores.

 
Joo Zepper:

Lea detenidamente sobreCopyRates():


3. Aquí es donde no está nada claro. Nunca se puede estar seguro de que los datos recibidos estén completos. ¿Y por qué el usuario necesita datos que no están completos? La práctica demuestra que ningún truco (intentos preliminares de obtener datos para iniciar la descarga desde el servidor) hace que se confíe en que la solicitud obtendrá datos completos.

¿Por qué no puedes estar seguro? Utilice SeriesInfoInteger(symbol,period,SERIES_SYNCHRONIZED) para estar seguro.

Sigue leyendo la documentación. Con el mayor cuidado posible.

 
Slawa:

¿Por qué no puedes estar seguro? Para estar seguro, utilice SeriesInfoInteger(símbolo,periodo,SERIES_SYNCHRONIZED)

Sigue leyendo la documentación. No seas menos considerado.

Gracias por el consejo, pero he estado usando esta bandera durante mucho tiempo. ¿Hay otras formas más fiables?

También estoy esperando tu siguiente sugerencia: abrir la ventana del gráfico del instrumento solicitado. Y esto se hace, pero los datos completos no están garantizados.

 
Joo Zepper:
Gracias por el consejo, pero la comprobación de esta bandera ha estado en uso activo por mí durante mucho tiempo. ¿Hay otras formas más fiables?

¿Cuál es el problema entonces? Si esta bandera se establece como verdadera, los datos actuales están totalmente sincronizados. Pueden estar incompletos porque el servidor tiene más datos que tú: la historia es más profunda

A continuación, consulte el historial en profundidad y compruebe SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) con la primera fecha de sus minutos locales

 
Slawa:

¿Cuál es el problema entonces? Si esta bandera se establece como verdadera, los datos actuales están totalmente sincronizados. Pueden estar incompletos porque el servidor tiene más datos que tú: la historia es más profunda

A continuación, consulte el historial en profundidad y compruebe SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) con la primera fecha de sus minutos locales

Pero esto es un suicidio para el Asesor Experto. Tendrás unos retrasos terribles. Y no es necesario, por regla general, un historial completo.

Pienso en esto. En el informe de mercado siempre los últimos datos y si el terminal no puede proporcionar la cantidad necesaria de datos a petición dentro de los límites de la historia del servidor y el número permitido de barras en la ventana, en tales casos, devolver -1, como en los indicadores. O se obtienen datos o -1, no hay una tercera opción.

 

Lo hago antes de solicitar los datos:

for(int attempt = 0; attempt < 10; attempt++) 
  {
    bool flag = true; 
    for(int symb = 0; symb < SymbolCNT; symb++) 
    {
      if(!synched[symb]) 
      {
        // trial copying of price data
        int copied = CopyRates(symbsName[symb], smPeriod, startPosDataGet, barsReq, prices[symb].Data); 
        
        if(copied >= barsReq) 
        {
          if(idChart[symb] != -1) 
          {
            ChartClose(idChart[symb]); 
            idChart[symb] = -1;
          }
          synched[symb] = true;
        }
        else 
        {
          flag = false; 
          if(showAlert) 
            Alert(symbsName[symb] + ": requested/received " + (string)barsReq + "/" + (string)copied); 
          
          if(idChart[symb] == -1) 
          {
            idChart[symb] = ChartOpen(symbsName[symb], smPeriod); 
            ChartSetInteger(ChartFirst(), CHART_BRING_TO_TOP, 0, true);
          }
        }
      }
    }
    if(!flag) 
      if(TerminalInfoInteger(TERMINAL_CONNECTED)) 
        Sleep(1000);
  }
  
  for(int symb = 0; symb < SymbolCNT; symb++) 
    if(idChart[symb] != -1) 
      ChartClose(idChart[symb]); 

Pero ya durante las consultas directas los datos vienen con agujeros. A veces sin agujeros. A eso me refiero, a la falta de confianza en los datos recibidos.

 
Karputov Vladimir:

El vídeo insertado a través del editor de mensajes no se guarda.

Google Chrome Versión 46.0.2490.86 m.

Internet Explorer 11.11.10586.0.

El error será corregido, gracias por el mensaje.
 

Los indicadores regulares NO funcionan después de actualizar el sistema a Windows10. Simplemente, no es posible adjuntar a los gráficos. En el editor, se muestra un error al compilar

error

 
Alexandr:
Los indicadores regulares NO funcionan después de actualizar el sistema a Windows10. Simplemente no se puede adjuntar a los gráficos. En el editor, aparece el error https://i.gyazo.com/5dbea3b25ab9a45cf3a9449335c1f57f.png al compilar.
Probablemente algo con los derechos de acceso, comprueba si las carpetas del terminal son escribibles, intenta bajar el UAC ....