Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1130

 
The_Sheikh:

Assim


Apenas o meu caso.

Aqui está uma peça do exemplo de DRAW_COLOR_HISTOGRAM2 no manual:

Aqui plot_colors = 8, cols[] - matriz com cores diferentes. Mas o terminal não aceita quaisquer cores excepto primeiro.

Atribui um histograma ao primeiro? E o tampão de cor vai depois do segundo. Deve ir depois do primeiro.

 
Artyom Trishkin:

Atribui um histograma ao primeiro? E o tampão de cor vai depois do segundo. Deve ir depois do primeiro.

Qual é a primeira? Que segundo? Qual primeiro? De que estamos a falar?

Dêem-me um exemplo para não ter de andar à volta do mato.

 
The_Sheikh:
Qual é a primeira? Qual segundo? Qual primeiro? De que estamos a falar?

Dar um exemplo, de modo a não bater à volta do mato.

Formule o seu objectivo. Descreva O QUE pretende obter do indicador.

 
Vladimir Karputov:

Indique o seu objectivo. Descreva O QUE pretende obter do indicador.

Está a gozar com isso?

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

 
The_Sheikh:

Está a brincar comigo?

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

Isso não é bom. Está a dar fragmentos de frases. Nesses casos, a resposta universal é:Documentação.


Quando parar de amuar e ficar ofendido, formule o que lhe peço:

Portanto, agora não é de todo claro o que se está a fazer, e mais importante ainda não é claro PORQUÊ. Não é claro qual é o objectivo final - e por isso ninguém pode adivinhar.
 
The_Sheikh:

Assim


Exactamente o meu caso.

Aqui está uma peça do exemplo de DRAW_COLOR_HISTOGRAM2 no manual:

Aqui plot_colors = 8, cols[] é array com cores diferentes. Mas o terminal não percebe nenhuma cor, excepto a primeira.

Isto é exactamente o oposto. Isto preenche um conjunto de cores a atribuir nesta linha de código a partir da documentação

ColorHistogram_2Colors[i]=day; 
 
Vladimir Karputov:

Isso não é bom. Está a dar fragmentos de frases. Nesses casos, a resposta universal é:Documentação.

Quando parar de amuar e de se ofender, formule o que lhe peço que faça:

Ou seja, não está claro o que está a fazer e, mais importante ainda, não está claro PORQUÊ o está a fazer. Não é claro qual é o objectivo final - e por isso ninguém pode adivinhar.

Fiz uma pergunta, salientei o problema, dei um exemplo que pode até ser compilado. Se isso não funcionar para si, então não tem ideia do que está a falar e, portanto, não sabe a resposta. Nesses casos, a resposta universal é aprender a ler.

Quando deixar de ser esperto e aprender a ler e formular as suas próprias perguntas, o tema tornar-se-á claro para si.

O objectivo final: desenhar um histograma com cada uma das cores dadas.


Alexey Viktorov:

Isso é exactamente o que não é. Preenche um conjunto de cores a atribuir nesta linha de código a partir da documentação

É isso mesmo, está a preencher uma série de cores. E como escrevi anteriormente, a seguinte forma (a partir do exemplo) as cores são preenchidas e especificadas correctamente:

#Indicador de propriedade_color2 GreenC,RedC

...

Arr23[i]=0,0; //Green

Arr23[i]=1,0; //Red


E com este método:

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

Arr23[i]=0,0; //Green

Arr23[i]=1,0; // Em vez de vermelho, obtemos preto (ou seja, não se especifica a cor)

 
The_Sheikh:
A qual primeiro? Que segundo? Qual primeiro? De que estamos a falar?

Dêem-me um exemplo para não ter de andar à volta do mato.

#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);

Um. Segundo. Três.

Define-se o primeiro tampão como o histograma de cor. Para que serve o segundo? E porque é que o tampão de cor vai depois do segundo tampão quando deveria ir depois do primeiro. Tem um tampão de cor de 3. Deve ser 2.

 
Artyom Trishkin:

Um. Segundo. Terceiro.

Define-se o primeiro tampão para o tipo de histograma de cor. Para que precisa do segundo? E porque é que o tampão de cor vai depois do segundo quando deve ir depois do primeiro. Tem um buffer de cor de 3, e deve ser 2.

Artyom, não notou que o tipo é DRAW_COLOR_HISTOGRAM2 e tem dois buffers de dados e um terceiro buffer de cor.

 
The_Sheikh:

Fiz uma pergunta, salientei o problema, dei um exemplo que pode até ser compilado. Se não lhe convém, então não tem ideia do que se trata e, portanto, não sabe a resposta. Nesses casos, a resposta universal é aprender a ler.

Quando deixar de ser esperto e aprender a ler e formular as suas próprias perguntas, o tema tornar-se-á claro para si.

O objectivo final: desenhar um histograma com cada uma das cores dadas.


É isso mesmo, preenche a matriz de cores. E como escrevi anteriormente, o seguinte método (a partir do exemplo) preenche as cores e especifica-as correctamente:

#Indicador de propriedade_color2 GreenC,RedC

...

Arr23[i]=0,0; //Green

Arr23[i]=1,0; //Red


E com este método:

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

Arr23[i]=0,0; //Green

Arr23[i]=1,0; // Ficamos pretos em vez de vermelhos (ou seja, a cor não é especificada)

E porque é que esta linha é comentada?

//#property indicator_color2 GreenC,RedC
Embora outras cores devam ser nele incluídas. Ou pelo menos uma, mas deve haver uma declaração.
Razão: