Domande per principianti in MQL5. I professionisti non passano. - pagina 5

 

Come posso fare in modo che alcuni buffer dell'indicatore non siano disegnati sul grafico, ma visualizzino i loro valori nella" Finestradati" dell'indicatore?

Lo faccio:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

int OnInit ()
{
  PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE);
}


ma l'indicatore disegna ancora un buffer.

 
_o0O:

Come posso fare in modo che alcuni buffer dell'indicatore non siano disegnati sul grafico, ma visualizzino i loro valori nella" Finestradati" dell'indicatore?

Lo faccio:


ma l'indicatore disegna ancora un buffer.

capito, fa questo:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

non hanno bisogno di farlo.

E curiosamente, questo buffer dovrebbe essere specificato nella #proprietà indicator_plots... Anche se logicamente non dovrebbe, perché è specificato nella #proprietà indicator_buffers e non richiede il disegno.


TUTTAVIA, il nome del buffer nella finestra dei dati non appare correttamente ora.... specificandolo con PlotIndexSetString(0, PLOT_LABEL, "Buff") non aiuta... Comunque, aiuto per favore.

 

Buon pomeriggio.

Sto facendo i miei primi passi in mql5. Ho generato un EA basato sugli indicatori RSI M5 e RSI M15. Potete per favore consigliarmi come fare in modo che un'operazione venga eseguita con l'attivazione di entrambi i segnali allo stesso tempo? Il peso per entrambi è 1. Se imposto 0,5 allora non verrà eseguito alcun trade. Parametro Valore di soglia del segnale per aprire = 90.

 
_o0O:

si scopre che è tutto qui:

non hanno bisogno di fare.

Curiosamente, questo buffer dovrebbe essere specificato nella #proprietà indicator_plots... Ma logicamente non dovrebbe, perché è specificato nella #proprietà indicator_buffers e il disegno non è richiesto.


TUTTAVIA, il nome del buffer nella finestra dei dati è visualizzato in modo errato ora....specificandolo con PlotIndexSetString(0, PLOT_LABEL, "Buff") non aiuta... Comunque, aiuto per favore.

Aiuto? Che tipo di aiuto...?

bene, tutto quello che dovete fare è specificare

#property indicator_label1  "Buff"

e questo è tutto, il buffer sarà nominato nella finestra dei dati, mostrerà i valori e vi permetterà di ottenere questi valori dall'EA, e non disegnare i valori (molto comodo per memorizzare informazioni aggiuntive e non ingombrare il grafico con linee di buffer).

 
_o0O:

si scopre che è tutto qui:

non hanno bisogno di fare.

Curiosamente, questo buffer dovrebbe essere specificato nella #proprietà indicator_plots... Anche se logicamente non dovrebbe, perché è specificato nella #proprietà indicator_buffers e non è richiesto che sia disegnato.


SZY ma ora il nome del buffer nella finestra dei dati viene visualizzato in modo errato, specificando un nome con PlotIndexSetString(0, PLOT_LABEL, "Buff") non aiuta... Comunque, aiuto per favore.

Il colore clr_NONE dovrebbe essere usato al posto del tipo DRAV_NONE.

Ecco il codice di prova

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_width1  2
#property indicator_label1  "clrRed"
#property indicator_type2   DRAW_HISTOGRAM
#property indicator_color2  clrNONE
#property indicator_width2  2
#property indicator_label2  "clrNONE"

/****************indicator buffers****************/
double buf1[], buf2[];
/**************Custom indicator initialization function**************/
int OnInit()
{
    SetIndexBuffer(0, buf1, INDICATOR_DATA);
    SetIndexBuffer(1, buf2, INDICATOR_DATA);
   return(INIT_SUCCEEDED);
}/*******************************************************************/

/****************Custom indicator iteration function*****************/
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
 int i, limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!
 for(i = 0; i < limit; i++)
  {
   if(i%2 > 0)
    buf1[i] = 1;
   else
    buf2[i] = 1;
  }
 
   return(rates_total);
}/*******************************************************************/
 
Alexey Viktorov:

Non è necessario mettere il tipo DRAV_NONE, ma il colore clr_NONE.

Ecco il codice di prova

tutto questo non è necessario, dovete solo specificare l'etichetta

#property indicator_label1  "Buff"
 
_o0O:

è tutto superfluo, basta specificare l'etichetta

Se sei così intelligente, perché hai fatto questa domanda?

 
Alexey Viktorov:

Se sei così intelligente, perché hai fatto questa domanda?

l'intelligente non è colui che non fa domande....

Qualsiasi frequentatore del forum può arrivare alle risposte alle sue domande, ma quale diavolo è lo scopo di questo forum se non quello di trovare risposte il più rapidamente possibile?

Il mio modo è più semplice e conciso, usatelo.

ZS Smettila di "punzecchiare" gli estranei, furbo.

 
_o0O:

l'intelligente non è colui che non fa domande....

Qualsiasi frequentatore del forum può arrivare alle risposte alle sue domande, ma quale diavolo è lo scopo di questo forum se non quello di trovare risposte il più rapidamente possibile?

Il mio modo è più semplice e succinto, usatelo.

Ti sbagli di grosso. Molto, molto lontano da questo.

 
Alexey Viktorov:

Oh, ti sbagli di grosso. Molto, molto lontano da questo.

A maggior ragione, non chiunque, quindi ne consegue che qualsiasi domanda è benvenuta.

Non c'è questa sfumatura nell'aiuto. DRAW_NONE non funziona né #proprietà né in PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE), PlotIndexSetString(0, PLOT_LABEL, "Buff") non funziona nemmeno, quindi qual è esattamente la logica dietro lo specificare clrNONE per raggiungere l'obiettivo?

Motivazione: