Отображение требуемого фрагмента графика

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

 Как программно спозиционировать график на нужные свечи?

Аналог функции ChartNavigate() языка Metatrader.

dnl Отображает график, начиная со свечи с номером FirstBarIndex и заканчивая свечой с номером LastBarIndex

procedure ZoomToIndex( FirstBarIndex, LastBarIndex)
{  Local DT,BI,AB,AW;    DT = DateTime(); BI = BarIndex();

   AB = CreateObject("Broker.Application");
   AW = AB.ActiveWindow;
   AW.ZoomToRange( DateTimeToStr( LastValue(ValueWhen( Max(FirstBarIndex,0) == BI, DT )) ), DateTimeToStr( LastValue(ValueWhen( Min(LastBarIndex,LastValue(BarIndex())) == BI, DT )) ) );
}

И, соответственно

dnl Показывает на графике все свечи из базы
includeonce(`ZoomToIndex.afl')
procedure ZoomAllOut()
{
ZoomToIndex( 0, LastValue(BarIndex()));
}

А также

dnl Позволяет спозиционировать график на выделенную свечу и показать ZoomWidth свечей

includeonce(`ZoomToIndex.afl')

procedure ZoomToCursor( ZoomWidth )
{  Local SelectedBarIndex;
   SelectedBarIndex = SelectedValue(BarIndex());
   ZoomToIndex(SelectedBarIndex - ZoomWidth, SelectedBarIndex + ZoomWidth);
}

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