ChartScreenShot - что не так?

 
void OnStart() {

    // отключаем смещение и авто прокрутку графика
    ChartSetInteger(0, CHART_SHIFT, 0);
    ChartSetInteger(0, CHART_AUTOSCROLL, 0);

    // размер снимка
    int width = 800;
    int height = 600;
    
    // сдвигаем график влево
    // чтобы не был виден самый "свежий" бар
    datetime dtime = D'2021.06.01 12:00';
    int shift = iBarShift(_Symbol, _Period, dtime);
    ChartNavigate(0, CHART_END, -shift);

    // делаем снимки
    ChartScreenShot(0, "left.png", width, height, ALIGN_LEFT);
    ChartScreenShot(0, "center.png", width, height, ALIGN_CENTER);
    ChartScreenShot(0, "right.png", width, height, ALIGN_RIGHT);
}

Ожидаю получить

Ожидаемые снимки

Однако получаю

  • left.png - как ожидалось
  • center.png - как left.png
  • right.png - как будто не было сдвига графика

Как получить ожидаемые снимки?

 
Документация по MQL5: Операции с графиками
Документация по MQL5: Операции с графиками
  • www.mql5.com
Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Тыкать в RTFM легко, а проверить слабо?
Ок, тогда я утверждаю, что ALIGH_RIGHT работает не правильно на сдвинутом влево графике!
MT5 build 2981 21.06.21

 

В данном случае справку по ChartScreenShot нужно понимать буквально

align_mode=ALIGN_RIGHT

[in]  Режим вывода узкого скриншота. Значение перечисления ENUM_ALIGN_MODE. ALIGN_RIGHT означает выравнивание по правой границе (вывод с конца). ALIGN_LEFT задает выравнивание по левой границе.

Это означает, что при указании выравнивания ALIGN_RIGHT график будет принудительно проскроллен к правой границе, что равносильно выполнению команды

ChartNavigate(0,CHART_END,0);

Такое поведение было заложено много лет назад (так исторически сложилось). И когда добавили функцию ChartNavigate() поведение функции ChartScreenShot менять не стали.

Поэтому, если хотите получить желаемый эффект - скрольте в нужный участок экрана и делайте скриншот  с указанием ALIGN_LEFT .

Документация по MQL5: Операции с графиками / ChartScreenShot
Документация по MQL5: Операции с графиками / ChartScreenShot
  • www.mql5.com
ChartScreenShot - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Спасибо за подробный ответ! Теперь понял, что это фишка MQL5.
Причина обращения: