1. Вывести график свечек, например SBER.
2. Вывести на график любой индикатор с выходным значением PriceStudy=true. Я для примера вывел свой индикатор (голубой цвет на рисунке)
Код: Выделить всё
CandleAvg=(Input.High+Input.Low)/2;
3. Добавить тестовый индикатор с рисованием как в основном окне, так и на новой оси (в отдельной области):
Код: Выделить всё
function Initialize()
{
IndicatorName = "_BugInAxesNew";
PriceStudy = true;
AddInput("Input", Inputs.Price);
AddSeries("Dummy", DrawAs.Line, Color.Black);
AddSeries("Bug", DrawAs.Custom, Color.Black, AxisType.ZeroBased, true, Axes.New); // <---
}
function Evaluate()
{
// Дополнительное тестирование показало, что серия Dummy на самом деле не нужна для воспроизведения бага, но пусть уж остается
Dummy[0]=Input[0]-1.0;
Bug[0]=1.0;
Bug.DrawHistogram(Color.Black);
}
3. После добавления индикатора происходит автоматический выбор входного ряда SBER.Close - OK, всё, как и ожидалось. Можно с успехом выбрать любой другой элемент всечки, всё ОК.
4. Сменить входной ряд на другой индикатор (в моем случае - на CandleAvg)
Ожидалось: отрисовка графика Bug в отдельной области.
Получилось:
1) Пустая отдельная область, которая не удаляется с удалением индикатора и висит до пересоздания окна графика или перезагрузки терминала. Повторное удаление+добавление индикатора вышеописанным способом создает еще одну пустую область и т.д.
2) График отрисовывается в основном окне, делая его непригодным к работе. Даже выбор давешнего "хорошего" входного ряда (от SBER) уже не приводит к правильной отрисовке.