Erreurs, bugs, questions - page 2282

 
Comment obtenir la couleur d'un tampon de couleur d' indicateur ?
 
Vladimir Pastushak:
Comment obtenir la couleur d'un tampon de couleur d' indicateur ?
Chaque tampon a son propre numéro. Et dans la fonction CopyBuffer, le deuxième paramètre est le numéro du tampon. Mais ce ne sera pas une couleur, mais un index dans un tableau de couleurs. Mais avec ça, j'espère que vous vous débrouillerez tout seul.
 
Alexey Viktorov:
Chaque tampon a son propre numéro. Et dans la fonction CopyBuffer, le deuxième paramètre est le numéro du tampon. Mais ce ne sera pas une couleur, mais un index dans le tableau des couleurs. Mais avec ça, avec un peu de chance, vous pouvez vous débrouiller tout seul.

Je ne comprends pas, pouvez-vous être plus précis ?

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

Commentobtenir la couleur du tamponupper_line_color ? ???

 
Vladimir Pastushak:

Je ne comprends pas, pouvez-vous être plus précis ?

Le code est tiré de l'indicateur

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

Le système génère un tableau à trois couleurs. (Si je puis me permettre, il s'agit d'un tableau caché, inaccessible au programmeur).

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

Letampon indicateur 4 contient les index des couleurs du tableau des couleurs.

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

Ici, l'index de la couleur est écrit dans le tampon de l'indicateur et le système utilise l'index pour sélectionner une couleur parmi celles qui sont listées dans le tableau.

En conséquence, après avoir utilisé la fonction

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

nous recevrons l'indice de couleur de la dernière barre dans le tableau déclaré buffer[]


ps ; Pendant que j'écrivais, une question a été ajoutée. J'espère que cette clarification est suffisante. Je ne veux pas le corriger.

 
Erreur pendant l'exécution
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

Résultat : vrai:faux:7:4

Comment se fait-il que des cordes de longueurs différentes soient soudainement égales ? Alors que la comparaison à l'aide de StringCompare produit le résultat inverse ==.

 
Alexey Viktorov:

Le code est tiré de l'indicateur

Le système génère un tableau à trois couleurs. (si je puis dire, un tableau caché, inaccessible au programmeur).

Letampon indicateur 4 contient des indices de couleur provenant d'un tableau de couleurs

L'indice de couleur est saisi dans le tampon de l'indicateur et le système utilise l'indice pour sélectionner une couleur parmi celles qui sont répertoriées et saisies dans le tableau.

En conséquence, après avoir utilisé la fonction

nous recevons l'indice de couleur de la dernière barre dans le tableau buffer[] déclaré au préalable


ps ; Au moment où j'écrivais, la question a été ajoutée. J'espère que cette clarification est suffisante. Je ne veux pas le corriger.

Et dans le tampon est copié non pas une couleur mais 0,0 1,0 2,0

testé ne fonctionne pas


Ma question porte sur la couleur et non sur l'indice, nous obtenons l'indice en tant quecolorBufer[0] sur la dernière barre sans toutes ces manipulations... Comment puis-je obtenir le nom de la couleur ou la couleur elle-même en tant que couleur ?

 
Vladimir Pastushak:

Et la couleur est copiée dans le tampon et non dans le 0.0 1.0 2.0

testé ne fonctionne pas

Testé, il fonctionne.

Vladimir Pastushak:

Dans ma question, il est question de couleur et non d'index, nous obtenons l'indexcolorBufer[0] sur la dernière barre sans toutes ces machinations... Comment tirer exactement le nom de la couleur ou la couleur elle-même par type de couleur ?

C'est ce qu'on appelle "Ne pas suivre les autres". Je vous ai dit tout de suite que vous n'auriez que l'index.

 
Alexey Viktorov:

Vérifié, ça marche.

Et cela s'appelle "Ne pliez pas la queue". Je vous ai dit tout de suite que vous n'auriez que l'index.

J'ai écrit la couleur tout de suite ... Merci d'avoir répondu ... Lisez les questions plus attentivement ! !!

 
Vladimir Pastushak:

Et j'ai écrit la couleur tout de suite... Merci d'avoir répondu... Lisez attentivement les questions ! !!

Quelle que soit la question, c'est la réponse. Il existe deux façons de définir la couleur de l'affichage des indicateurs. Utilisez le deuxième.

 
Les administrateurs et le Service Desk sont priés de prêter attention à la rubrique concernant le bughttps://www.mql5.com/ru/forum/278253.
Raison: