Как нарисовать графики разных таймфреймов одной бумаги?

8/30/2010 9:25:17 PM
Gravatar
Total Posts 142

Как нарисовать графики разных таймфреймов одной бумаги?

Есть задача. Вывести один и тотже symbol, по которому ведётся торговля, в разных масштабах.

[CODE]//Важно: default scale for analysis, что задаётся в меню слева вверху, равен 1 минуте.

SetScaleCompressed(15);//поставили 15-минутки

ChartPane barsfifteenPane = CreatePane( 100, false, true);

PlotSymbol( barsfifteenPane, Bars, Color.Green, Color.Red);[/CODE]

Происходит в строке PlotSymbol(...) exception: "Plotted DS has fewer bars then the Symbol being charted". Оно и понятно, что после сжатия масштаба баров выводиться будет меньше. Как это обойти, подскажите?

8/30/2010 10:02:38 PM
Gravatar
Total Posts 115

RE:Как нарисовать графики разных таймфреймов одной бумаги?

В принципе, можно использовать метод Synchronize(...) для синхронизации 15-минутных баров с минутными.

[CODE]SetScaleCompressed(15);

//Записываем в b 15-минутные бары

WealthLab.Bars b = Bars;

RestoreScale();

//Синхронизируем 15-минутные бары в b с исходными (минутными) барами

WealthLab.Bars d = Synchronize(b);

//Рисуем синхронизированные 15-минутные бары на отдельной панели

ChartPane CP = CreatePane(40, true, true);

PlotSymbol(CP, d, Color.Green, Color.Red);[/CODE]

В результате исполнения кода график получается таким, как изображено ниже.

Чтобы избавится от повторений баров, можно воспользоваться возможностью создать собственный ChartStyle.