Здравствуйте, коллеги.
Я поправил индикаторы DiPlus/DiMinus/ATR и перед заливкой изменений на CodePlex на свою беду обновил проект. В результате перестали выполняться тесты, которые прекрасно работали до обновления. Исследование показало, что метод GetCurrentValue() иногда возвращает неверные значения.
Что я делаю:
- В индикатор WilderMovingAverage с периодом 6 последовательно передаю значения 0, 0, 0, 0, 0, 1, 0.
- После передачи индикатору значения 1 на выходе метода Process() получаю значение 0.16.
- Следующий вызов GetCurrentValue<decimal>() возвращает 0. Я ожидаю, что он вернет 0.16.
Версия StockSharp.Algo - 4.1.5 changeset 20260.
Комментарии (8)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Да, есть такое дело, похоже на багу.
Можно обрабатывать новое значение так```csharp wma.Process(new DecimalIndicatorValue(val) );
Спасибо, помогло. :)
P.S.: А фикс когда можно ожидать? А то как я понимаю, индикаторы вообще перестали работать...
Проблема должна быть только с индикаторами, которые принимают DecimalIndicatorValue. Индикаторы принимающие CandleIndicatorValue должны работать нормально.
Да их немало. Банальное сглаживание много где используется. Подожду фикса.
P.S.: А исходники BaseComplexIndicator убрали из открытого доступа? Раньше были вроде бы, сейчас не нахожу...
Исправлено в последней версии на кодеплексе, просьба проверить индикаторы, которые перестали работать.
Спасибо, все заработало.🙂
Жаль, они здОрово помогали. Ну да хозяин - барин. 🙂