Ошибки, баги, вопросы - страница 1442

 
Slawa:

Почему нельзя быть уверенным? Для уверенности используйте SeriesInfoInteger(symbol,period,SERIES_SYNCHRONIZED)

Читайте документацию дальше. Не менее вдумчиво.

Спасибо за подсказку, но проверка этого флага уже давно и активно используется мною. Есть ещё какие нибудь более надёжные способы?

Предвижу ещё Ваш следующий совет - открывать окно чарта запрашиваемого инструмента. И это делается, но не гарантируется получение полных данных. 

 
Joo Zepper:
Спасибо за подсказку, но проверка этого флага уже давно и активно используется мною. Есть ещё какие нибудь более надёжные способы?

А в чём тогда проблема? Если этот флаг установлен в true, то текущие данные полностью засинхронизированы. Они могут оказаться неполными потому что на сервере больше данных, чем у вас - история глубже

Тогда запрашивайте историю на всю глубину и сверяйте SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) с первой датой ваших локальных минуток

 
Slawa:

А в чём тогда проблема? Если этот флаг установлен в true, то текущие данные полностью засинхронизированы. Они могут оказаться неполными потому что на сервере больше данных, чем у вас - история глубже

Тогда запрашивайте историю на всю глубину и сверяйте SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) с первой датой ваших локальных минуток

Но это же самоубийство для эксперта. Жуткие тормоза будут обеспечены. Да и не нужна как правило история на всю глубину.

Я думаю вот о чем. В обзоре рынка всегда последние данные, и если терминал не может выдать по запросу нужное количество данных в пределах истории сервера и разрешённого количества баров в окне, то в таких случаях возвращать -1, как и в индикаторах. Либо получение данных, либо -1, тут третьего не должно быть дано. 

 

Я делаю так перед запросом данных:

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]); 

 Но уже при непосредственных запросах приходят данные с дырами. Иногда без дыр. Я про это и говорю - нет уверенности в полученных данных. 

[Удален]  
Karputov Vladimir:

Не сохраняется вставленное через редактор сообщений видео.

Google Chrome Версия 46.0.2490.86 m.

Internet Explorer 11.11.10586.0. 

Ошибка будет исправлена, спасибо за сообщение.
 

НЕ работают штатные индикаторы после обновления системы до Windows10. Просто невозможно присоединить к графику. В редакторе при компиляции выдаётся ошибка

 error

 
Alexandr:
НЕ работают штатные индикаторы после обновления системы до Windows10. Просто невозможно присоединить к графику. В редакторе при компиляции выдаётся ошибка https://i.gyazo.com/5dbea3b25ab9a45cf3a9449335c1f57f.png
Возможно что то с правами доступа, проверьте разрешена ли запись в папках терминала, попробуйте понизить UAC ....
 

Проверил. Мой UAC -

UAC

Он был отключен.     Подскажите как цитировать сообщения. Также не могу продолжить писать сообщение с новой строки Entrerом не переводится курсор на новую строку. Необходимо сделать настройки? Давно не пользовался форумом.

 

Пробовал переустановить МТ4. Качал у брокера файл, ставил по новой. НЕ помогло! Также задал права администратора для terminal.exe - не помогает! Ошибка прежняя. Индикаторы не цепляются на график. Скрин из журнала -

журнал

 

Также попробовал убрать атрибут "Только для чтения" для папки Terminal и всех её файлов, но атрибут появляется при повторном входе в меню свойств. - 

1

[Удален]  
picpic:

Здравствуйте!


После обновления (Build 920) терминал перестал перезагружать индикатор после компиляции.

Обновляется только список индикаторов в окне навигатора.

Т.е. до обновления индикатор на графике нормально перезагружался после компиляции и все изменения в коде индикатора начинали работать.

После обновления при каждом изменении кода и компиляции, вынужден удалять индикатор с графика и добавлять его на график заново.


 У кого не будь случалось такое?

У меня вот тоже с компиляцией проблема, в новом билде. Вношу изменения в код советника, компилирую, запускаю в тестере, и вижу, что после компиляции советник работает так, как если бы я не вносил изменений в код, не появляются индикаторы после теста, которые я добавлял, не изменяется поведение советника, через раз работает, да и так ли работает? задаёшься вопросом) Написал в сервисдеск