Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1130

 
The_Sheikh:

Así


Sólo en mi caso.

Aquí hay un trozo del ejemplo para DRAW_COLOR_HISTOGRAM2 en el manual:

Aquí plot_colors = 8, cols[] - array con diferentes colores. Pero el terminal no acepta ningún color excepto el primero.

¿Asignas un histograma al primero? Y el buffer de color va después del segundo. Debería ir después del primero.

 
Artyom Trishkin:

¿Asignas un histograma al primero? Y el buffer de color va después del segundo. Debería ir después del primero.

¿Cuál es el primero? ¿Qué segundo? ¿Cuál es el primero? ¿De qué estamos hablando?

Dame un ejemplo para que no tenga que irme por las ramas.

 
The_Sheikh:
¿Cuál es el primero? ¿Cuál es el segundo? ¿Cuál es el primero? ¿De qué estamos hablando?

Ponga un ejemplo, para no irse por las ramas.

Formule su objetivo. Describe QUÉ quieres conseguir con el indicador.

 
Vladimir Karputov:

Exponga su objetivo. Describe QUÉ quieres conseguir con el indicador.

¿Te estás burlando de ello?

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

 
The_Sheikh:

¿Me estás tomando el pelo?

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

Eso no es bueno. Estás dando fragmentos de frases. En estos casos, la respuesta universal es:Documentación.


Cuando dejes de hacer pucheros y de ofenderte, formula lo que te pido:

Así que ahora no está nada claro lo que está haciendo y, sobre todo, no está claro el PORQUÉ. No está claro cuál es el objetivo final, y por tanto nadie puede adivinarlo.
 
The_Sheikh:

Así


Exactamente mi caso.

Aquí hay un trozo del ejemplo para DRAW_COLOR_HISTOGRAM2 en el manual:

Aquí plot_colors = 8, cols[] es un array con diferentes colores. Pero el terminal no percibe ningún color excepto el primero.

Esto es exactamente lo contrario. Esto rellena la matriz de colores a asignar en esta línea de código de la documentación

ColorHistogram_2Colors[i]=day; 
 
Vladimir Karputov:

Esto no es bueno. Estás dando fragmentos de frases. En estos casos, la respuesta universal es:Documentación.

Cuando dejes de hacer pucheros y de ofenderte, formula lo que te pido:

Es decir, no está claro qué está haciendo y, sobre todo, no está claro POR QUÉ lo está haciendo. No está claro cuál es el objetivo final, y por tanto nadie puede adivinarlo.

Hice una pregunta, señalé el problema, di un ejemplo que incluso puede ser compilado. Si eso no te sirve, es que no tienes ni idea de lo que estás hablando y, por tanto, no sabes la respuesta. En estos casos, la respuesta universal es aprender a leer.

Cuando dejes de ser inteligente y aprendas a leer y formular tus propias preguntas, el tema te quedará claro.

El objetivo final: dibujar un histograma con cada uno de los colores dados.


Alexey Viktorov:

Eso es exactamente lo que no es. Rellena una matriz de colores para asignar en esta línea de código de la documentación

Así es, se está llenando de una gama de colores. Y como he escrito antes, de la siguiente manera (del ejemplo) los colores se rellenan y se especifican correctamente:

#propiedad indicador_color2 VerdeC,RojoC

...

Arr23[i]=0.0; //Verde

Arr23[i]=1.0; //Rojo


Y con este método:

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

Arr23[i]=0.0; //Verde

Arr23[i]=1.0; // En lugar de rojo obtenemos negro (es decir, no se especifica el color)

 
The_Sheikh:
¿A qué primero? ¿Qué segundo? ¿Cuál es el primero? ¿De qué estamos hablando?

Dame un ejemplo para que no tenga que irme por las ramas.

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

Uno. Segundo. Tres.

Se establece el primer búfer como histograma de color. ¿Para qué sirve el segundo? Y por qué el buffer de color va después del segundo cuando debería ir después del primero. Tienes un buffer de color de 3. Debería ser de 2.

 
Artyom Trishkin:

Uno. Segundo. Tercero.

El primer búfer se ajusta al tipo de histograma de color. ¿Para qué necesitas el segundo? Y por qué el buffer de color va después del segundo cuando debería ir después del primero. Tienes un buffer de color de 3 y debería ser de 2.

Artyom, no te has dado cuenta que el tipo es DRAW_COLOR_HISTOGRAM2 y tiene dos buffers de datos y un tercer buffer de color.

 
The_Sheikh:

Hice una pregunta, señalé el problema, di un ejemplo que incluso puede ser compilado. Si no le conviene, es que no tiene ni idea de qué se trata y, por tanto, no sabe la respuesta. En estos casos, la respuesta universal es aprender a leer.

Cuando te dejes de hacer el listo y aprendas a leer y formular tus propias preguntas, el tema te quedará claro.

El objetivo final: dibujar un histograma con cada uno de los colores dados.


Así es, rellena la matriz de colores. Y como escribí antes, el siguiente método (del ejemplo) rellena los colores y los especifica correctamente:

#propiedad indicador_color2 VerdeC,RojoC

...

Arr23[i]=0.0; //Verde

Arr23[i]=1.0; //Rojo


Y con este método:

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

Arr23[i]=0.0; //Verde

Arr23[i]=1.0; // Obtenemos negro en lugar de rojo (es decir, no se especifica el color)

¿Y por qué se comenta esta línea?

//#property indicator_color2 GreenC,RedC
Aunque hay que incluir otros colores en ella. O al menos uno, pero debe haber una declaración.
Razón de la queja: