косяк с функцией ChartIndicatorAdd()

 

Косяк состоит в неправильном порядке отображения индикаторов в  окнах на графике.

ChartIndicatorAdd( график   ,   окно ,  хэндл  );

Функция работает правильно только если порядок создания хендлов совпадает с порядком окон, иначе подокна создаются в неправильном порядке

 

например:

handle1=iCustom(NULL,0,     "Indicator1"    ,...);

handle2=iCustom(NULL,0,     "Indicator1"    ,...);


handle3=iCustom(NULL,0,     "Indicator2"    ,...);

handle4=iCustom(NULL,0,     "Indicator2"    ,...);


Допустим хотим сделать так:


ChartIndicatorAdd( 0 ,   1,  handle1);

ChartIndicatorAdd( 0,    2,  handle3);

ChartIndicatorAdd( 0,    3,  handle2 );

ChartIndicatorAdd( 0,    4,  handle4 );


А в результате будет как будто я сделал:

ChartIndicatorAdd( 0 ,   1,  handle1);

ChartIndicatorAdd( 0,    2,  handle2);

ChartIndicatorAdd( 0,    3,  handle3 );

ChartIndicatorAdd( 0,    4,  handle4 );


То ли последние два параметра перепутаны, то ли идет группировка по типу индикатора...  непонятно.

Но если я сделаю так:

handle1=iCustom(NULL,0,     "Indicator1"    ,...);

handle3=iCustom(NULL,0,     "Indicator2"    ,...);


handle2=iCustom(NULL,0,     "Indicator1"    ,...);

handle4=iCustom(NULL,0,     "Indicator2"    ,...);


ChartIndicatorAdd( 0 ,   1,  handle1);

ChartIndicatorAdd( 0,    2,  handle3);

ChartIndicatorAdd( 0,    3,  handle2 );

ChartIndicatorAdd( 0,    4,  handle4 );


то будет все в порядке

Причина обращения: