Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1130

 
The_Sheikh:

Как-то так


Как раз мой случай.

Вот кусок из примера для DRAW_COLOR_HISTOGRAM2 в справочнике:

Здесь plot_colors = 8, cols[] - массив с разными цветами. Но терминал никакие цвета кроме первого не воспринимает.

Вы первому назначаете гистограмму? А буфер цвета идёт за вторым. А должен идти за первым.

 
Artyom Trishkin:

Вы первому назначаете гистограмму? А буфер цвета идёт за вторым. А должен идти за первым.

Чему первому? За каким вторым? Каким первым? О чём речь?

Покажите пример, чтобы не ходить вокруг да около.

 
The_Sheikh:
Чему первому? За каким вторым? Каким первым? О чём речь?

Покажите пример, чтобы не ходить вокруг да около.

Сформулируйте свою задачу. Опишите ЧТО Вы хотите получить от индикатора.

 
Vladimir Karputov:

Сформулируйте свою задачу. Опишите ЧТО Вы хотите получить от индикатора.

Вы издеваетесь?

https://www.mql5.com/ru/forum/6343/page1129#comment_13439765

 
The_Sheikh:

Вы издеваетесь?

https://www.mql5.com/ru/forum/6343/page1129#comment_13439765

Это не годится. Вы даёте осколки фраз. В таких случаях универсальный ответ: Документация.


Когда перестанете надувать губы и обижаться - сформулируйте то, о чём я прошу:

То есть сейчас вообще не ясно, что Вы делаете, а самое главное не ясно ДЛЯ ЧЕГО. Не понятна конечная цель - а значит и никто не сможет угадать.
 
The_Sheikh:

Как-то так


Как раз мой случай.

Вот кусок из примера для DRAW_COLOR_HISTOGRAM2 в справочнике:

Здесь plot_colors = 8, cols[] - массив с разными цветами. Но терминал никакие цвета кроме первого не воспринимает.

Это как раз совсем не то. Это заполняется массив цветов которые будут присвоены в этой строке кода из документации

ColorHistogram_2Colors[i]=day; 
 
Vladimir Karputov:

Это не годится. Вы даёте осколки фраз. В таких случаях универсальный ответ: Документация.

Когда перестанете надувать губы и обижаться - сформулируйте то, о чём я прошу:

То есть сейчас вообще не ясно, что Вы делаете, а самое главное не ясно ДЛЯ ЧЕГО. Не понятна конечная цель - а значит и никто не сможет угадать.

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

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

Конечная цель: отрисовка гистограммы каждым из заданных цветов.


Alexey Viktorov:

Это как раз совсем не то. Это заполняется массив цветов которые будут присвоены в этой строке кода из документации

Верно, это заполняется массив цветов. И как я уже писал раньше, следующим способом (из примера) цвета заполняются и указываются корректно:

#property indicator_color2 GreenC,RedC

...

Arr23[i]=0.0; //Зелёный

Arr23[i]=1.0; //Красный


А при данном способе:

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);
...

Arr23[i]=0.0; //Зелёный

Arr23[i]=1.0; //Вместо красного получаем чёрный (т.е. цвет не задан)

 
The_Sheikh:
Чему первому? За каким вторым? Каким первым? О чём речь?

Покажите пример, чтобы не ходить вокруг да около.

#property indicator_chart_window
//#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots 2

#define GreenC 0x00FF00
#define RedC 0x0000FF
#property indicator_type1 DRAW_NONE
#property indicator_type2 DRAW_COLOR_HISTOGRAM2
//#property indicator_color2 GreenC,RedC

double
Arr11[],
Arr21[],
Arr22[],
Arr23[];

void OnInit()
{
SetIndexBuffer(0,Arr11,INDICATOR_CALCULATIONS);
SetIndexBuffer(1,Arr21,INDICATOR_DATA);
SetIndexBuffer(2,Arr22,INDICATOR_DATA);
SetIndexBuffer(3,Arr23,INDICATOR_COLOR_INDEX);
IndicatorSetInteger(INDICATOR_DIGITS,Digits());
PlotIndexSetInteger(1,PLOT_LINE_WIDTH,4);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);
//PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);

Первый. Второй. Третий.

Вы первому буферу задаёте тип цветной гистограммы. Для чего нужен второй? И почему буфер цвета идёт за вторым, когда должен идти за первым. У вас буфер цвета 3, а должен быть 2

 
Artyom Trishkin:

Первый. Второй. Третий.

Вы первому буферу задаёте тип цветной гистограммы. Для чего нужен второй? И почему буфер цвета идёт за вторым, когда должен идти за первым. У вас буфер цвета 3, а должен быть 2

Артём, ты не обратил внимание на то, что тип DRAW_COLOR_HISTOGRAM2 и у него два буфера данных и третий буфер цвета.

 
The_Sheikh:

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

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

Конечная цель: отрисовка гистограммы каждым из заданных цветов.


Верно, это заполняется массив цветов. И как я уже писал раньше, следующим способом (из примера) цвета заполняются и указываются корректно:

#property indicator_color2 GreenC,RedC

...

Arr23[i]=0.0; //Зелёный

Arr23[i]=1.0; //Красный


А при данном способе:

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);
...

Arr23[i]=0.0; //Зелёный

Arr23[i]=1.0; //Вместо красного получаем чёрный (т.е. цвет не задан)

А почему эта строка закомментирована

//#property indicator_color2 GreenC,RedC
В неё хоть и другие цвета но должны быть вписаны. Или хотя-бы один, но декларация быть должна.
Причина обращения: