У Вас не заполнены буферы цветов.
bufMax[i] = 50; buf1[i] = 20; ColorBuf1[i] = 0; buf2[i] = -50; ColorBuf2[i] = 0;
Тип double всегда чемто заполнен, хотя и не факт что это 0. В данном случае это ни как не влияет на то что у второго графика не присвоился Label. У меня все другие графики тоже не работают, которые инициализируются после первой цветной гистограммы.
Если вы всё знаете и пытаетесь опровергнуть совет данный вам, зачем-же задавали вопрос?
Как вы думаете каким цветом будет выведен индикатор после такого кода
PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,clrBlue); PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,clrGreen);
Если вы всё знаете и пытаетесь опровергнуть совет данный вам, зачем-же задавали вопрос?
Как вы думаете каким цветом будет выведен индикатор после такого кода
Всем огромное спасибо, я разобрался в чём проблема.
Буфера индексируются отдельно а графики отдельно. Тоесть я присваивал значение следующим за моим графиком а нужно вот так
SetIndexBuffer(1,buf1,INDICATOR_DATA); SetIndexBuffer(2,ColorBuf1,INDICATOR_COLOR_INDEX); PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_COLOR_HISTOGRAM); PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID); PlotIndexSetInteger(1,PLOT_LINE_WIDTH,3); PlotIndexSetInteger(1,PLOT_COLOR_INDEXES,2); PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,clrBlue); PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,clrGreen); PlotIndexSetString(1,PLOT_LABEL,"buf1"); SetIndexBuffer(3,buf2,INDICATOR_DATA); SetIndexBuffer(4,ColorBuf2,INDICATOR_COLOR_INDEX); PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_COLOR_HISTOGRAM); PlotIndexSetInteger(2,PLOT_LINE_STYLE,STYLE_SOLID); PlotIndexSetInteger(2,PLOT_LINE_WIDTH,3); PlotIndexSetString(2,PLOT_LABEL,"buf2"); PlotIndexSetInteger(2,PLOT_COLOR_INDEXES,2); PlotIndexSetInteger(2,PLOT_LINE_COLOR,0,clrGreen); PlotIndexSetInteger(2,PLOT_LINE_COLOR,1,clrBlue);
С большей вероятностью, что синий, но
Без всяких НО цвет будет зелёный.
Сначала присваивается цвет Blue а затем Green отсюда и вопрос вырос... зачем-же назначать сначала синий, если потом в следующей строке его перекрашивать...
Ещё вопрос: Где нулевой буфер индикатора? Без него обходитесь?
В общем, судя по этим кускам кода которые представлены в ваших сообщениях, вы даже не пытаетесь разобраться что для чего и как правильно сделать... Видимо что-то случайно работает почти правильно и это вы считаете решением вопроса.
Без всяких НО цвет будет зелёный.
Сначала присваивается цвет Blue а затем Green отсюда и вопрос вырос... зачем-же назначать сначала синий, если потом в следующей строке его перекрашивать...
Ещё вопрос: Где нулевой буфер индикатора? Без него обходитесь?
В общем, судя по этим кускам кода которые представлены в ваших сообщениях, вы даже не пытаетесь разобраться что для чего и как правильно сделать... Видимо что-то случайно работает почти правильно и это вы считаете решением вопроса.
Я не стал выкладывать код полностью а прикрепил файл, может и зря. А вот на чсет цветов вы не правы.
PlotIndexSetInteger(1,PLOT_COLOR_INDEXES,3); //обьявляем что у нас в буфере индексев цветов ColorBuf1 будет 3 цвета PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,clrBlue); //под 0 индексом голубой PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,clrGreen);//под 1 индексом зеленый PlotIndexSetInteger(1,PLOT_LINE_COLOR,2,clrRed); //под 2 индексом красный //это тоже самое что и препроцессорное #property indicator_color2 Blue, Green, Red
Эти 4 строчки не присваивают цвет графику, а описывают, какому конкретному индексу в цветовом массиве ColorBuf1, соответствует, тот или иной цвет.
//4 строчки выше говорять о том что, если я вствлю 0 в ColorBuf1 ColorBuf1[i] = 0; //это голубой //а если вставлю 1 ColorBuf1[i] = 1; //это зеленый //а если вставлю 2 ColorBuf1[i] = 2; //это красныйЗ.Ы простите за правки но с этими дурацкими индексами можно посидеть
Ну я и писал, что ColorBuf1[i] не было в первоначальном коде. С его появлением у меня индикатор заработал. И даже названия линий появились.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. Знающие люди, помогите пожалуйса. Когда я описываю две цветные гистограммы в препроцессоре всё работает замечательно. Но как только я попытался сделать тоже самое динамически, то после описания первой гистограммы все последующие графики ломаются. Начиная с того что у них не изменяются названия и сами они не отображаются. В чём у меня ошибка?
вот пример того как я описываю первую гистограмму после чего всё и ломается
в итоге последующий график не отображается, и даже название не получается сменить