Ошибки, баги, вопросы - страница 1442
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Скажите, пож., как преодолеть ситуацию, когда тестер ограничивает количество открытых позиций сотней, несмотря на то, что, в настройках указываю 1000?
Читаем о CopyRates() вдумчиво справку:
Примечание
1. Если интервал запрашиваемых данных полностью находится вне доступных данных на сервере, то функция возвращает -1. В случае если запрашиваются данные за пределами TERMINAL_MAXBARS (максимальное количество баров на графике), функция также вернет -1.
2. При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, то функция сразу же вернет -1, но при этом сам процесс загрузки/построения будет инициирован.
3. При запросе данных из эксперта или скрипта, будет инициирована загрузка с сервера, если локально этих данных у терминала нет, либо начнется построение нужной таймсерии, если данные можно построить из локальной истории, но они еще не готовы. Функция вернет то количество данных, которые будут готовы к моменту истечения таймаута, но загрузка истории будет продолжаться, и при следующем аналогичном запросе функция вернет уже больше данных.
1. Тут всё правильно и логично, перед запросом данных нужно проверить разрешённое количество баров в окне.
2. Тут тоже всё правильно, нужно делать попытки получения данных до тех пор, пока терминал не вернёт необходимое количество, не забывая проверять соединение с сервером. Сомнений в качестве полученных данных здесь сомневаться не приходится - данные либо есть, либо их нет.
3. А вот тут совершенно ничего не понятно. Никогда нельзя быть уверенным в том, что полученные данные полные. И зачем пользователю данные, в полноте которых нет уверенности? Практика показывает, что никакие ухищрения (предварительные попытки получения данных с целью инициализации закачки с сервера) не дают уверенности, что при запросе будут получены полные данные.
Полагаю, что практичнее сделать поведение функций получения данных в советниках аналогично поведению в индикаторах.
Читаем о CopyRates() вдумчиво справку:
3. А вот тут совершенно ничего не понятно. Никогда нельзя быть уверенным в том, что полученные данные полные. И зачем пользователю данные, в полноте которых нет уверенности? Практика показывает, что никакие ухищрения (предварительные попытки получения данных с целью инициализации закачки с сервера) не дают уверенности, что при запросе будут получены полные данные.
Почему нельзя быть уверенным? Для уверенности используйте SeriesInfoInteger(symbol,period,SERIES_SYNCHRONIZED)
Читайте документацию дальше. Не менее вдумчиво.
Почему нельзя быть уверенным? Для уверенности используйте SeriesInfoInteger(symbol,period,SERIES_SYNCHRONIZED)
Читайте документацию дальше. Не менее вдумчиво.
Спасибо за подсказку, но проверка этого флага уже давно и активно используется мною. Есть ещё какие нибудь более надёжные способы?
Предвижу ещё Ваш следующий совет - открывать окно чарта запрашиваемого инструмента. И это делается, но не гарантируется получение полных данных.
Спасибо за подсказку, но проверка этого флага уже давно и активно используется мною. Есть ещё какие нибудь более надёжные способы?
А в чём тогда проблема? Если этот флаг установлен в true, то текущие данные полностью засинхронизированы. Они могут оказаться неполными потому что на сервере больше данных, чем у вас - история глубже
Тогда запрашивайте историю на всю глубину и сверяйте SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) с первой датой ваших локальных минуток
А в чём тогда проблема? Если этот флаг установлен в true, то текущие данные полностью засинхронизированы. Они могут оказаться неполными потому что на сервере больше данных, чем у вас - история глубже
Тогда запрашивайте историю на всю глубину и сверяйте SeriesInfoInteger(symbol,PERIOD_M1,SERIES_SERVER_FIRSTDATE) с первой датой ваших локальных минуток
Но это же самоубийство для эксперта. Жуткие тормоза будут обеспечены. Да и не нужна как правило история на всю глубину.
Я думаю вот о чем. В обзоре рынка всегда последние данные, и если терминал не может выдать по запросу нужное количество данных в пределах истории сервера и разрешённого количества баров в окне, то в таких случаях возвращать -1, как и в индикаторах. Либо получение данных, либо -1, тут третьего не должно быть дано.
Я делаю так перед запросом данных:
Но уже при непосредственных запросах приходят данные с дырами. Иногда без дыр. Я про это и говорю - нет уверенности в полученных данных.
Не сохраняется вставленное через редактор сообщений видео.
Google Chrome Версия 46.0.2490.86 m.
Internet Explorer 11.11.10586.0.
НЕ работают штатные индикаторы после обновления системы до Windows10. Просто невозможно присоединить к графику. В редакторе при компиляции выдаётся ошибка
НЕ работают штатные индикаторы после обновления системы до Windows10. Просто невозможно присоединить к графику. В редакторе при компиляции выдаётся ошибка https://i.gyazo.com/5dbea3b25ab9a45cf3a9449335c1f57f.png