Вопросы новичка в MQL5. Профи не проходите мимо. - страница 5

 

Как сделать, что бы некоторые буферы индикатора не отрисовывались на чарте, но отображали свои значения в окне индикатора "Окно данных"?

делаю так:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

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


но всё равно индикатор рисует буфер.

 
_o0O:

Как сделать, что бы некоторые буферы индикатора не отрисовывались на чарте, но отображали свои значения в окне индикатора "Окно данных"?

делаю так:


но всё равно индикатор рисует буфер.

получилось, вот этого:

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

делать не нужно.

причем, что любопытно, в #property indicator_plots должен быть указан этот буфер... хотя по логике не должен бы, ведь он указан в #property indicator_buffers а отрисовка не требуется.


ЗЫ но теперь неправильно отображается имя буфера в окне данных, указание имении с помощью PlotIndexSetString(0, PLOT_LABEL, "Buff") не помогает... В общем, помогите, пожалуйста.

 

Добрый день. 

Делаю первые шаги в mql5. Сгенерировал советник на основе индикаторов RSI М5 и RSI M15. Подскажите, как настроить так, чтобы сделка совершалась по срабатыванию обоих сигналов одновременно? Вес для обоих стоит 1. Если вес ставлю по 0.5, то сделки не совершаются совсем. Параметр Signal threshold value to open = 90.

 
_o0O:

получилось, вот этого:

делать не нужно.

причем, что любопытно, в #property indicator_plots должен быть указан этот буфер... хотя по логике не должен бы, ведь он указан в #property indicator_buffers а отрисовка не требуется.


ЗЫ но теперь неправильно отображается имя буфера в окне данных, указание имении с помощью PlotIndexSetString(0, PLOT_LABEL, "Buff") не помогает... В общем, помогите, пожалуйста.

помощь? какая помощь?...

короче, нужно просто указать

#property indicator_label1  "Buff"

и всё, буфер будет иметь название в окне данных, показывать значения и соответственно давать возможность получить эти значения из советника, и при этом не отрисовывать значения (очень удобно хранить дополнительную информацию и не захламлять при этом чарт линиями буферов).

 
_o0O:

получилось, вот этого:

делать не нужно.

причем, что любопытно, в #property indicator_plots должен быть указан этот буфер... хотя по логике не должен бы, ведь он указан в #property indicator_buffers а отрисовка не требуется.


ЗЫ но теперь неправильно отображается имя буфера в окне данных, указание имении с помощью PlotIndexSetString(0, PLOT_LABEL, "Buff") не помогает... В общем, помогите, пожалуйста.

Нужно не тип ставить DRAV_NONE а цвет clr_NONE

Вот тестовый код

#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:

Нужно не тип ставить DRAV_NONE а цвет clr_NONE

Вот тестовый код

лишнее это всё, достаточно указать только лейбл

#property indicator_label1  "Buff"
 
_o0O:

лишнее это всё, достаточно указать только лейбл

Если такой умный зачем вопрос задавал?

 
Alexey Viktorov:

Если такой умный зачем вопрос задавал?

умный не тот, кто не задаёт вопросы....

любой форумчанин может дойти сам до ответов на свои вопросы, но какого лешего тогда нужен этот форум как не для того, что бы максимально быстро найти ответы?

мой способ проще и лаконичнее, пользуйтесь.

ЗЫ Завязывайте с "тыканием" незнакомым людям, умный Вы наш.

 
_o0O:

умный не тот, кто не задаёт вопросы....

любой форумчанин может дойти сам до ответов на свои вопросы, но какого лешего тогда нужен этот форум как не для того, что бы максимально быстро найти ответы?

мой способ проще и лаконичнее, пользуйтесь.

Ой как вы ошибаетесь. Далеко, далеко не любой.

 
Alexey Viktorov:

Ой как вы ошибаетесь. Далеко, далеко не любой.

Тем более, что не любой, отсюда следует, что любые вопросы только приветствуются.

В справке этого нюанса нет. DRAW_NONE не работает ни #property ни в PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE), PlotIndexSetString(0, PLOT_LABEL, "Buff") тоже не работает, так какая именно логика может привести к указанию clrNONE для достижения поставленной цели?

Причина обращения: