В процессе использования выяснилось, что сдвиг реализован не удобно.
Мелкие правки в коде:
Закомментируем строку 68 и 69
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); //--- line shifts when drawing // PlotIndexSetInteger(0,PLOT_SHIFT,InpShift); // PlotIndexSetInteger(1,PLOT_SHIFT,InpShift-1); //--- set the display of the symbol PlotIndexSetString(0,PLOT_LABEL,"D1 Open;"+"D1 High;"+"D1 Low;"+"D1 Close");
В конце кода добавим:
//+------------------------------------------------------------------+ void OnChartEvent(const int id, // идентификатор события const long& lparam, // параметр события типа long const double& dparam, // параметр события типа double const string& sparam) // параметр события типа string { if(id==CHARTEVENT_CHART_CHANGE) { int shift=int(ChartGetInteger(0,CHART_WIDTH_IN_BARS)-ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR)); PlotIndexSetInteger(0,PLOT_SHIFT,shift-InpShift-1); PlotIndexSetInteger(1,PLOT_SHIFT,shift-InpShift-2); } }
Всё, работает отменно, можно также менять ширину графика и свечи будут на постоянном месте

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Daily Bar 2:
Индикатор отражает на нижнем таймфрейме одну свечу D1 и ещё одну свечу на заданном таймфрейме
Автор: Vladimir Karputov