Errori, bug, domande - pagina 2282

 
TaywinLannister:

Ragazzi, per favore consigliate come ottenere il valore dell'indicatore per le barre precedenti in mql5.

In mql 4 c'era una variabile SAVING, ma mql 5 non ce l'ha. AIUTO

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

E ci sono altre implementazioni. Come per i pennarelli, il colore è diverso ma il sapore è lo stesso.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Come posso ottenere il colore da un buffer di colore indicatore?
 
Vladimir Pastushak:
Come posso ottenere il colore da un buffer di colore indicatore?
Ogni buffer ha il suo numero. E nella funzione CopyBuffer, il secondo parametro è il numero del buffer. Ma non sarà un colore, ma un indice nella matrice dei colori. Ma con questo, spero, ve la caverete da soli.
 
Alexey Viktorov:
Ogni buffer ha il suo numero. E nella funzione CopyBuffer, il secondo parametro è il numero del buffer. Ma non sarà un colore, e un indice nella matrice dei colori. Ma con esso, si spera, si può gestire da soli.

Non capisco, potresti essere più specifico?

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

Comeottenere il colore dal bufferupper_line_color ????

 
Vladimir Pastushak:

Non capisco, puoi essere più specifico?

Il codice è preso dall'indicatore

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

Il sistema genera una matrice con tre colori. (Se posso dirlo, è un array nascosto, inaccessibile al programmatore).

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

Ilbuffer degli indicatori 4 contiene gli indici dei colori della matrice dei colori

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

Qui, l'indice del colore viene scritto nel buffer dell'indicatore e il sistema usa l'indice per selezionare un colore tra quelli elencati nell'array.

Di conseguenza, avendo usato la funzione

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

riceveremo l'indice del colore dell'ultima barra nell'array dichiarato buffer[]


ps; Mentre scrivevo, è stata aggiunta una domanda. Spero che questo chiarimento sia sufficiente. Non voglio correggerlo.

 
Errore durante l'esecuzione
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

Risultato: vero:falso:7:4

Com'è possibile che stringhe di lunghezza diversa siano improvvisamente uguali? Mentre il confronto con StringCompare produce il risultato opposto ==

 
Alexey Viktorov:

Il codice è preso dall'indicatore

Il sistema genera una matrice con tre colori. (se posso dire così, un array nascosto, inaccessibile al programmatore).

Ilbuffer 4 dell'indicatore contiene gli indici dei colori di un array di colori

L'indice del colore viene inserito nel buffer dell'indicatore, e il sistema usa l'indice per selezionare un colore tra quelli elencati e inseriti nell'array.

Di conseguenza, avendo usato la funzione

riceviamo l'indice del colore dell'ultima barra nell'array buffer[] dichiarato in precedenza


ps; Mentre scrivevo, la domanda è stata aggiunta. Spero che questo chiarimento sia sufficiente. Non voglio correggerlo.

E nel buffer buffer non viene copiato un colore ma 0,0 1,0 2,0

testato non funziona


La mia domanda dice colore e non indice, otteniamo l'indice comecolorBufer[0] sull'ultima barra senza tutte queste manipolazioni... Come faccio a tirare il nome del colore o il colore stesso come colore?

 
Vladimir Pastushak:

E il colore viene copiato nel buffer non nel 0,0 1,0 2,0

testato non funziona

Testato, funziona.

Vladimir Pastushak:

Nella mia domanda è scritto di colore e non di indice, otteniamo l'indicecolorBufer[0] sull'ultima barra senza tutte queste macchinazioni... Come tirare esattamente il nome del colore o il colore stesso per tipo di colore?

Questo si chiama "Don't tailgate". Ti ho detto subito che avresti avuto solo l'indice.

 
Alexey Viktorov:

Controllato, funziona.

E questo si chiama "Non piegare la coda". Ti ho detto subito che avresti avuto solo l'indice.

Ho scritto il colore subito ... Grazie per aver risposto ... Leggete le domande con più attenzione!!!

 
Vladimir Pastushak:

E ho scritto il colore subito ... Grazie per aver risposto ... Leggete attentamente le domande!!!

Qualunque sia la domanda, questa è la risposta. Ci sono due modi per impostare il colore del display dell'indicatore. Usa il secondo.