Errores, fallos, preguntas - página 2282

 
TaywinLannister:

Chicos, por favor, aconsejen cómo obtener el valor del indicador para las barras anteriores en mql5.

En mql 4 existía la variable SAVING, pero mql 5 no la tiene. AYUDA

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

Y hay otras implementaciones. Al igual que con los rotuladores, el color es diferente pero el sabor es el mismo.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
¿Cómo obtengo el color de un búfer de color del indicador?
 
Vladimir Pastushak:
¿Cómo obtengo el color de un búfer de color del indicador?
Cada búfer tiene su propio número. Y en la función CopyBuffer, el segundo parámetro es el número del buffer. Pero no será el color, sino un índice en la matriz de colores. Pero con ella, espero, te las arreglarás por ti mismo.
 
Alexey Viktorov:
Cada búfer tiene su propio número. Y en la función CopyBuffer, el segundo parámetro es el número del buffer. Pero no será un color, sino un índice en la matriz de colores. Pero con ella, con suerte, podrás manejarte por ti mismo.

No entiendo, ¿podría ser más específico?

#property indicator_color2  clrBlue, clrRed
SetIndexBuffer(1,upper_line_color,INDICATOR_COLOR_INDEX);   

Cómoobtener el color del bufferupper_line_color ????

 
Vladimir Pastushak:

No entiendo, ¿puede ser más específico?

El código está tomado del indicador

#property indicator_buffers   5
#property indicator_plots     1
#property indicator_type1     DRAW_COLOR_BARS
#property indicator_color1    clrDarkViolet, clrCrimson, clrYellow

El sistema genera una matriz con tres colores. (Si se me permite decirlo, es una matriz oculta, inaccesible para el programador).

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

Lamemoria intermedia del indicador 4 contiene los índices de los colores de la matriz de colores

     colorBufer[j] = open[j] < close[j] ? 0.0 : open[j] > close[j] ? 1.0 : 2.0;

En este caso, el índice de color se escribe en el búfer del indicador y el sistema utiliza el índice para seleccionar un color de los que aparecen en la matriz.

En consecuencia, habiendo utilizado la función

CopyBuffer(indicator_handle, 4, 0, 1, buffer);

recibiremos el índice de color de la última barra del array declarado buffer[]


ps; Mientras escribía, se añadió una pregunta. Espero que esta aclaración sea suficiente. No quiero corregirlo.

 
Error durante la ejecución
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

Resultado: verdadero:falso:7:4

¿Cómo es que cuerdas de diferente longitud son de repente iguales? Mientras que la comparación mediante StringCompare produce el resultado contrario ==

 
Alexey Viktorov:

El código está tomado del indicador

El sistema genera una matriz con tres colores. (si se me permite decirlo, una matriz oculta, inaccesible para el programador).

Lamemoria intermedia indicadora 4 contiene los índices de color de una matriz de colores

El índice de color se introduce en la memoria intermedia del indicador, y el sistema utiliza el índice para seleccionar un color de los enumerados e introducidos en la matriz.

En consecuencia, habiendo utilizado la función

recibimos el índice de color de la última barra en el array buffer[] declarado anteriormente


ps; Mientras escribía, se añadió la pregunta. Espero que esta aclaración sea suficiente. No quiero corregirlo.

Y en el buffer se copia no un color sino 0,0 1,0 2,0

probado no funciona


Mi pregunta dice color y no índice, obtenemos el índice comocolorBufer[0] en la última barra sin todas estas manipulaciones... ¿Cómo saco el nombre del color o el color mismo como color?

 
Vladimir Pastushak:

Y el color se copia en el buffer no el 0.0 1.0 2.0

probado no funciona

Probado, funciona.

Vladimir Pastushak:

En mi pregunta se escribe sobre el color y no sobre el índice, obtenemos el índicecolorBufer[0] en la última barra sin todas estas maquinaciones... ¿Cómo sacar exactamente el nombre del color o el propio color por tipo de color?

Esto se llama "no ir a rebufo". Te dije de inmediato que sólo tendrías el índice.

 
Alexey Viktorov:

Comprobado, funciona.

Y esto se llama "No doblar la cola". Te dije de inmediato que sólo obtendrías el índice.

He escrito el color de inmediato ... Gracias por responder ... ¡¡¡Lee las preguntas con más atención !!!

 
Vladimir Pastushak:

Y escribí el color de inmediato ... Gracias por responder ... ¡¡¡Lea atentamente las preguntas !!!

Sea cual sea la pregunta, esa es la respuesta. Hay dos maneras de ajustar el color de la pantalla del indicador. Usa el segundo.