Список изменений:
- исправлено: неверно рассчитывались границы для периодов меньше D1, fix #15
- исправлено: не работает, если комбинация параметров приводит к шагу гистограммы больше 1
- исправлено: при тиковых исходных данных отсутствие фильтрации данных приводит к очень медленной работе, fix #22
- не используется информация с таймфрейма RangePeriods, меньше ошибок из-за использования множества таймфреймов
- гистограммы не перепрыгивают большие разрывы (выходные, праздники, в режиме разбивки)
- при сглаживании не обрезаются хвосты
- в режиме Outline хвосты замыкаются на ноль
- уточнение названия параметра: Time Shift -> Time Zone Shift
- позиции `Window left` и `Widow right` переименованы в `Chart left` и `Chart right` соответственно
- ускорен расчёт гистограмм за счёт снижения числа обращений к ценовой истории и оптимизации кода
- установлен таймер на максимальное непрерывное время работы в режиме разбивки на периоды
- старые, смещённые новым периодом гистограммы удаляются, чтобы на графике было только заданное их число
- снижена частота запроса истории при её отсутствии при прошлом запросе
А теперь подробнее.
Исправленные баги
Неверно рассчитывались границы для периодов меньше D1
Подробности на страничке бага здесь: https://gitlab.com/fxcoder/mt-script/issues/15. Добавлю только, что вся функция получения границ в режиме разбивки по периодам переписана и проверена на разных параметрах. Как бонус, теперь для расчётов не нужны данные таймфрейма RangePeriod.Не работает, если комбинация параметров приводит к шагу гистограммы больше 1
Такое могло быть, например, если шаг цены инструмента большой, а к нему ещё и HgPointScale установили немаленький (*100, например), что приводило к большому шагу баров гистограмм, что, в свою очередь, натыкалось на ошибочное применение функций округления.При тиковых исходных данных отсутствие фильтрации данных приводит к очень медленной работе
Ужасный баг, который для некоторых брокеров совершенно не давал использовать тиковый источник данных. Поток тиков от брокера часто бывает довольно грязным, и, если его не профильтровать, то можно получить неадекватный результат. В данном случае в результате пропуска кривых данных получались очень большие гистограммы, причём большую их часть даже не было видно, однако MT на них очень сильно застревал. См. также Issue #22.Прочие изменения
Не используется информация с таймфрейма RangePeriods, меньше ошибок из-за использования множества таймфреймов
Об этом выше уже упомянул. Давно хотел избавиться от затягивания данных с лишнего таймфрейма.Гистограммы не перепрыгивают большие разрывы (выходные, праздники, в режиме разбивки)
Изменение, достойное мажорного обновления. Но на самом деле это был как бы баг, который существовал очень давно, и вот я его пофиксил. Суть в том, что раньше, если диапазон после разбивки начинался, например, в пятницу, а заканчивался в понедельник, то рисовалась единая гистограмма, как будто никакого двухдневного разрыва нет. Вероятно, это не очень хорошо, поэтому теперь пятничный и понедельничный куски будут рисоваться раздельно.При сглаживании не обрезаются хвосты
Раньше диапазон гистограммы после сглаживания обрезался до пределов хода цены, что при некоторых стилях рисования и сильном сглаживании давало лесенки на концах. Теперь будет покрасивее. Ничего полезного в тех хвостах, наверно, нет, но теперь сглаживание будет давать действительно гладкую картинку.В режиме Outline хвосты замыкаются на ноль
Ещё одно визуальное улучшение. Исправление из предыдущего пункта также делает подобное, но не до конца. На картинке ниже видно, как странно раньше выглядел режим контура после сглаживания.
См. также Issue #23.