Программный сдвиг графика влево

Опубликовано в AmiBroker

Функция, сдвигающая график влево, чтобы отобразить самые последние по времени свечи (аналогично функции ChartNavigаte(CHART_END) языка MT5). Требуется для построения реал-тайм приводов в Amibroker.

 

dnl Двигает chart влево, чтобы последние свечи оказались на экране
dnl Параметр
dnl ChartWidth - количество свечей для отображения. Если равно 0, то масштаб не меняется. procedure RightJustifyChart( ChartWidth )
{ Local DT,AB,AW; if (ChartWidth == 0)
ChartWidth = 1 + Status("LastVisibleBar") - Status("FirstVisibleBar");
DT = DateTime();
AB = CreateObject("Broker.Application");
AW = AB.ActiveWindow;
AW.ZoomToRange( DateTimeToStr( LastValue( Nz(Ref( DT,-Max(2, ChartWidth) ) ) ) ), DateTimeToStr( LastValue(DT) ) );
}

Комментарии   

# osya 22.01.2016 14:32
Добрый день. У меня почему-то перестала работать функция ZoomToRange(). Не подскажете в чем может быть причина?
# admin 22.01.2016 17:09
Приведите тест, на котором видна проблема, разберемся....
# osya 22.01.2016 22:20
Я обнаружил, что функция ZoomToRange() работает не для всех значений параметров. Для маленьких интервалов она не отрабатывает Например, для Daily timeframe минимальный интервал для функции ZoomToRange() порядка 5 дней.
# admin 22.01.2016 23:53
Я отвечу прямо.

До тех пор, пока Вы не привели исходный текст теста, демонстрирующег о проблему, сказать ничего невозможно.

Исходный код теста должен быть минимального размера.

Недостаточно прав для комментирования