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

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

tol64, 2013.05.05 19:21

Разобрался, но к сожалению свою(?) проблему не решил. Она проявляется редко и по выходным (когда тики не приходят) при переключении таймфреймов/символов. Серии индикатора иногда не отображаются ни в Навигаторе Окне Данных ни на графике, но программно данные можно получить. Выглядит это так:

...

//---

Думал сначала, что если в подокне не отображается и в Навигаторе Окне Данных тоже, то значит буферы пусты (empty_value) и сделав проверку можно вызвать OnCalculate() для обновления. Но не получилось, так как дынные есть в буферах.

Это баг? 

Вручную быстро исправляется, если переключать таймфреймы. Хотелось бы конечно не объяснять об этом пользователям, а решить аккуратно программно. Кто-нибудь сталкивался с подобным?

Если же это не баг, то нужен способ определить, что графические серии индикатора в подокне не отображаются (и в Окне данных тоже). Как это сделать, непонятно, так как программно их можно получить. Далее после того, как определили, что в подокне ничего нет, вызываем в таймере OnCalculate() для пересчёта обнулив переменную prev_calculated.

В Справке написано следующее:

Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом.

Примечание: если функция OnCalculate возвращает нулевое значение, то в окне DataWindow клиентского терминала значения индикатора не показываются.

В моём случае все расчёты были произведены (к ним возможно приступить только после всех проверок) и OnCalculate() возвращает ненулевое значение, соответственно поэтому данные можно получить программно. Но это не сходится с тем, что написано в Справке.


 

 
 
Вопрос к начальству. Есть ли у вас демо-сервер дла МТ5, где 1 лот равен 10 000 (а не 100 000 USD), мин лот = 0.01, шаг = 0.01? Хотелось бы прооптимизоровать советник как для центовых счетов. На тех центовых счетах для МТ5, что я нашёл у брокеров мин. лот = 0.1, а я ищу что был с 0.01.
 

В исходниках стандартной библиотеки нарыл такую конструкцию 

//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
  {

  }

Что это? :)

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
ns_k:

В исходниках стандартной библиотеки нарыл такую конструкцию 

//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
  {

  }

Что это? :)

В каком смысле?
 
uncleVic:
В каком смысле?
Что это делает, я понял. Я скорее про то, где в доке написано, про использование подобного синтаксиса, как это называется, например
 
ns_k:
Что это делает, я понял. Я скорее про то, где в доке написано, про использование подобного синтаксиса, как это называется, например
там
 
uncleVic:
там
нашел, спасибо!
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

tol64, 2013.05.06 02:38

...

В моём случае все расчёты были произведены (к ним возможно приступить только после всех проверок) и OnCalculate() возвращает ненулевое значение, соответственно поэтому данные можно получить программно. Но это не сходится с тем, что написано в Справке.

Заявка #740856.

То есть, есть какая-то ещё причина, по которой значения индикатора могут не отображаться, даже если буферы были заполнены и функция OnCalculate вернула ненулевое значение.


 
Случайно обнаружил. Если дважды кликнуть по пустому месту в окне приказа, то тиковый график скрывается. Это фича или бага? )
 
ns_k:
Случайно обнаружил. Если дважды кликнуть по пустому месту в окне приказа, то тиковый график скрывается. Это фича или бага? )
Фича. Конечно лучше бы была кнопочка, чтобы находить эту фичу не случайно.
Причина обращения: