Спасибо.
Т.е у Вас 252?
А у меня 5 :(
Спасибо.
Т.е у Вас 252?
А у меня 5 :(
а всегда 5 или если вызывать на каждом тике иногда 5?
Для себя давно делал заметку (ещё на старых билдах):
Никакими API нельзя запрашивать кол-во баров в истории инструмента на каждом тике.
Это недокументированный баг системы.
Кол-во баров в истории почему-то связано с запросом инфы от сервера.
Частые запросы о кол-ве баров (на каждый тик) с большой вероятностью вызывают отказ системы.
API в таком случае возвращает невнятную ошибку 4001 (Неожиданная внутренняя ошибка),
а в журнале появляется ещё более странная запись вида "HistoryBase... 1 invalid bars removed"
В журнале терминала нет никаких сообщений об ошибках?
PS у меня скрипт вернул: 2015.11.19 21:40:18.061 bars_test (SILV-3.16,D1) на SILV-3.16 PERIOD_H1 баров =264
...
А при чём тут LastError?
...
Ой, опять наш
появился!
Знакомое слово увидел :)
Слушай, а почему ты пытаешься унижать и оскорблять? Абсолютно нормальные вопрос про LastError. К чему было это выкаблучивание про "причем"?
Добрый день!
А при чём тут LastError?
Ошибки нет, функция (int a_bars = Bars( "SILV-3.16", PERIOD_H1 );) возвращает бары, НО
только не все, что есть, а только за текущий день :)
Притом.
Система работает так:
Всякое действие регистрируется определённой константой в системной переменной (назовём её услвно LastError).
Перед вызовом большинства API-функций терминала, желательно сбрасывать эту переменную ResetLastError().
Затем когда происходит вызов (в нашем случае Bars()), API внутри себя последовательно шаг за шагом фиксирует каждое важное действие именно в LastError.
Если на каком-то этапе функция прерывается, в LastError остаётся константа предыдущего этапа или константа ошибки из-за которой "обломалась" API-функция.
Многие функции обязательно фиксируют успешный результат или уточняют результат именно через LastError.
Например, когда мы пытаемся выделить ордер или позицию, при корректной обработке очень желательно убедится, что ордер/позиция не выделились именно потому что их не существует, а не в результате провала выделения. Сделать это можно только через GetLastError() (см. константы ERR_TRADE_POSITION_NOT_FOUND и ERR_TRADE_ORDER_NOT_FOUND).
Притом.
Система работает так:
Всякое действие регистрируется определённой константой в системной переменной (назовём её услвно LastError).
Перед вызовом большинства API-функций терминала, желательно сбрасывать эту переменную ResetLastError().
Затем когда происходит вызов (в нашем случае Bars()), API внутри себя последовательно шаг за шагом фиксирует каждое важное действие именно в LastError.
Если на каком-то этапе функция прерывается, в LastError остаётся константа предыдущего этапа или константа ошибки из-за которой "обломалась" API-функция.
Многие функции обязательно фиксируют успешный результат или уточняют результат именно через LastError.
Например, когда мы пытаемся выделить ордер или позицию, при корректной обработке очень желательно убедится, что ордер/позиция не выделились именно потому что их не существует, а не в результате провала выделения. Сделать это можно только через GetLastError() (см. константы ERR_TRADE_POSITION_NOT_FOUND и ERR_TRADE_ORDER_NOT_FOUND).
Антон!
Если бы функция вернула "0", то тогда, возможно, имело бы смысл вызывать GetLastError().
Если "по каждому чиху" вызывать эту функцию, то получится следующее:
if( a > b ) { GetLastError(); } else { GetLastError(); }
Это я знаю, что их (баров) должно быть больше, а мог и не знать....
Даже если эта функция и вернула "0", то это не значит, что это ошибка (в справке всё написано.)
Примечание
Если данные для таймсерии с указанными параметрами при вызове функции Bars() еще не сформированы в терминале,
или данные таймсерии в момент вызова функции не синхронизированы с торговым сервером, то функция вернет нулевое значение.
Слушай, а почему ты пытаешься унижать и оскорблять? Абсолютно нормальные вопрос про LastError. К чему было это выкаблучивание про "причем"?
Слушай.... Хорошая манера общения, ну да ладно...
Я напомню ТЕБЕ, с чего всё началось. ТЫ ПЕРВЫЙ написал:
"Михаил, ну вот зачем вы продолжаете пропагандировать свой позорный принцип в программировании экспертов?"
Даже если меня ЗАБАНЯТ, то я ВСЕГДА буду "воевать" с хамами!
А на войне все средства хороши. НО, если ТЕБЕ будет "приятно" и ты успокоишься, то я признаю себя ДУРАКОМ,
не умеющим программировать и ничего не знающим.
ТВОЁ ЭГО довольно?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
В 1210 терминале МТ5 фукция
Возвращает бары только за текущий день.
Это у всех так, или только у меня?
Кому не сложно, проверьте на реале.
У меня возвращается 5 баров, а на графике их гораздо больше...