В этом обновлении: распределение тиков внутри бара, новые способы выбора границ в режиме диапазона, исправление нескольких ошибок. Не очень много для нового релиза, но достаточно для почти неподдерживаемого проекта.
Список изменений:
- добавлен параметр BarTicks - распределение тиков внутри бара, #15
- добавлены режимы диапазона Bars to Line и Last Bars, параметр RangeMinutes переименован в RangeSize, #21
- параметр RangeMode переименован в RangeSelection
- параметр DrawDirection заменён на HgPosPeriod, в Period Mode добавлены варианты размещения гистограммы относительно центра
- добавлены таймфреймы источника данных H1-D1
- TickPriceType дополнен вариантами: Bid/Ask Average, Last or Bid/Ask Average (теперь по умолчанию)
- HgPointScale дополнен вариантами *5 и *50
- исправлено: диапазон Last Bars всегда использовал M1, что мешало работать большими диапазонами, #25
- исправлено: уменьшена вероятность мерцания последней или единственной (в режиме диапазона) гистограммы, #30
- исправлено: смещается отображение после подгрузки данных, #22
- исправлено: не рисуется самый нижний бар (кроме случая Bar Style = Outline)
Далее подробнее о некоторых из этих изменений.
Bar Distribution / BarTicks
Старый метод имитации тиков на основе какого-нибудь мелкого таймфрейма подразумевает кратчайшее движении от точки входа (open), далее к верхней (high) или нижней (low) точке, либо наоборот, и затем прямиком к последней точке бара (close). При этом каждая точка такого пути равновероятна.
Здесь не было никаких сложных схем движения, да и не нужны они здесь, т.к. всё, что здесь необходимо, это
предполагаемое распределение тиков внутри бара. Но и с распределением всё непросто. Пока выходит так, что расчёты
могут зависеть от числа тиков внутри бара, т.е. тикового объёма, но эта величина может сильно варьироваться от
брокера к брокера для одного и того же инструмента.
Поэтому добавил лишь простые варианты, и даже они дали странные, на первый взгляд, результаты. Все сглаженные варианты распределений (от треугольного до квадратичного) в итоге дают и сглаженную гистограмму, примерно как если бы использовали параметр Smooth. В итоге получился ещё один вариант сглаживания. Который из них лучше - не знаю. Если нужна точность, то здесь вариант один - MT5 и тики.
Histogram Position / HgPosPeriod
Теперь в режиме разбивки по периодам можно отобразить сразу две непересекающиеся гистограммы на одном периоде, используя новые типы расположения к центру и от центра.
Заранее предупрежу о проблеме - у этих двух гистограмм не будет никакой связности, т.к. у них (по умолчанию) разный масштаб. Обойти эту проблему пока можно лишь подбором одинакового фиксированного масштаба для обоих индикаторов.
Price Type / TickPriceType
У многих инструментов (как минимум, форексных) в тиковых данных есть только биды, аски и соответствующие флаги. У других же есть полноценный набор данных. При просмотре общего распределения (без фильтрации по направлениям) хочется выбрать что-то усреднённое. Если если есть Last, то использовать его, а если нет, то тогда что-то среднее между Bid и Ask. Пока остановился на таком простейшем варианте. Таким образом, не нужно переключать параметры индикатора при переключении между инструментами с разными по наполненности тиками.
Прочее
Также скорректированы некоторые параметры для удобства и соответствия новым функциям.
Скачать, как обычно, можно со страницы проекта на гитлабе: https://gitlab.com/fxcoder-mql/vp.
Также будет обновлён скрипт FindVL до версии 6.0 с соответствующими изменениями.