Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
tol64, 2013.05.05 19:21
Разобрался, но к сожалению свою(?) проблему не решил. Она проявляется редко и по выходным (когда тики не приходят) при переключении таймфреймов/символов. Серии индикатора иногда не отображаются ни в Навигаторе Окне Данных ни на графике, но программно данные можно получить. Выглядит это так:
...
//---
Думал сначала, что если в подокне не отображается и в Навигаторе Окне Данных тоже, то значит буферы пусты (empty_value) и сделав проверку можно вызвать OnCalculate() для обновления. Но не получилось, так как дынные есть в буферах.
Это баг?
Вручную быстро исправляется, если переключать таймфреймы. Хотелось бы конечно не объяснять об этом пользователям, а решить аккуратно программно. Кто-нибудь сталкивался с подобным?
Если же это не баг, то нужен способ определить, что графические серии индикатора в подокне не отображаются (и в Окне данных тоже). Как это сделать, непонятно, так как программно их можно получить. Далее после того, как определили, что в подокне ничего нет, вызываем в таймере OnCalculate() для пересчёта обнулив переменную prev_calculated.
В Справке написано следующее:
Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом.
Примечание: если функция OnCalculate возвращает нулевое значение, то в окне DataWindow клиентского терминала значения индикатора не показываются.
В моём случае все расчёты были произведены (к ним возможно приступить только после всех проверок) и OnCalculate() возвращает ненулевое значение, соответственно поэтому данные можно получить программно. Но это не сходится с тем, что написано в Справке.
В исходниках стандартной библиотеки нарыл такую конструкцию
//+------------------------------------------------------------------+}
Что это? :)
В исходниках стандартной библиотеки нарыл такую конструкцию
//+------------------------------------------------------------------+}
Что это? :)
В каком смысле?
Что это делает, я понял. Я скорее про то, где в доке написано, про использование подобного синтаксиса, как это называется, например
там
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
tol64, 2013.05.06 02:38
...
В моём случае все расчёты были произведены (к ним возможно приступить только после всех проверок) и OnCalculate() возвращает ненулевое значение, соответственно поэтому данные можно получить программно. Но это не сходится с тем, что написано в Справке.
Заявка #740856.
То есть, есть какая-то ещё причина, по которой значения индикатора могут не отображаться, даже если буферы были заполнены и функция OnCalculate вернула ненулевое значение.
Случайно обнаружил. Если дважды кликнуть по пустому месту в окне приказа, то тиковый график скрывается. Это фича или бага? )