Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1435

 

Ренат, пожалуйста дайте рекомендацию или любой другой комментарий

по сложным для меня вопросам, на прошлой странице https://www.mql5.com/ru/forum/160683/page1434#comment_21634884

принты робота могу предоставить с 3 треминалов, в них есть 2 пропуска
 

Подскажите как пополнить торговый счет и как потом выводить(где кнопки пополнить и вывести)

 
feniok83:

Подскажите как пополнить торговый счет и как потом выводить(где кнопки пополнить и вывести)

В личный кабинет на сайте брокера.

 

Подскажите, при установке свойств mql5 буфера, есть ли зависимость в очередности свойств ?

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
SetIndexBuffer(1,Buffer2,INDICATOR_CALCULATIONS);
SetIndexBuffer(2,Buffer3,INDICATOR_DATA);

Или сперва указывать дата, потом калькулейшн?

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
SetIndexBuffer(1,Buffer2,INDICATOR_DATA);
SetIndexBuffer(2,Buffer3,INDICATOR_CALCULATIONS);

То что тип в индексации буферов измениться, это понятно, его не рассматриваем.
Интересует именно последовательность самих свойств.
Влияет ли последовательность свойств на корректность, или нет? 

Вопрос возник из следующей ситуации.
Пытаюсь по значениям первого индикатора, рассчитать второй индикатор, внутри одной программы.
Результат второго индикатора, пытаюсь отобразить в (4 , Buffer5, INDICATOR_DATA)
Но не как не получается его отобразить, не показывает и всё.
Принтую крайнее значение Buffer5[] для проверки, в принтах всё корректно. Получается проблема в отображении.
Не пойму куда копать. #property все заданы вроде корректно. 
Buffer1 и 
Buffer2 отображается, а Buffer5 не хочет.
Пробовал использовать динамические свойства PlotIndexSetInteger(), результат тот же.
Не отображается Buffer5. 
Buffer1 и Buffer2 установлены как серия, и значения заносятся  for(int i=limit; i>=0; i--)
Buffer5 установлен как обычный массив, и значения заносятся  for(int i=pos; i<total-1;  i++)
т.е. значения всех буферов заносяться слева направо. Вроде не должно быть тут проблем. Ошибок нет, предупреждений нет.
Куда копать?

#property indicator_buffers 7
#property indicator_plots   3

//--------------------------------------------------
//indicator1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrGoldenrod
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

#property indicator_type2   DRAW_LINE
#property indicator_color2  clrGoldenrod
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

#property indicator_type3   DRAW_NONE
#property indicator_type4   DRAW_NONE

//indicator2
#property indicator_type5   DRAW_ARROW
#property indicator_color5  clrGoldenrod
#property indicator_style5  STYLE_DOT
#property indicator_width5  1

#property indicator_type6   DRAW_NONE
#property indicator_type7   DRAW_NONE

//--------------------------------------------------
//indicator1 buffers
SetIndexBuffer(0, Buffer1,   INDICATOR_DATA);
SetIndexBuffer(1, Buffer2,   INDICATOR_DATA);
SetIndexBuffer(2, Buffer3,   INDICATOR_CALCULATIONS);
SetIndexBuffer(3, Buffer4,   INDICATOR_CALCULATIONS);
//indicator2 buffers 
SetIndexBuffer(4, Buffer5,   INDICATOR_DATA);
SetIndexBuffer(5, Buffer6,   INDICATOR_CALCULATIONS);
SetIndexBuffer(6, Buffer7,   INDICATOR_CALCULATIONS);
 
Roman:

Подскажите, при установке свойств mql5 буфера, есть ли зависимость в очередности свойств ?

Или сперва указывать дата, потом калькулейшн?

То что тип в индексации буферов измениться, это понятно, его не рассматриваем.
Интересует именно последовательность самих свойств.
Влияет ли последовательность свойств на корректность, или нет? 

Влияет только последовательность буфера данных и буфера цвета.

Вообще, если построение имеет 2-3-4 буфера, то они должны быть подряд.

В вашем примере нет никакой разницы, но приятней второй вариант, чтобы не путать номер буфера с номером построения.

 
Alexey Viktorov:

Влияет только последовательность буфера данных и буфера цвета.

Вообще, если построение имеет 2-3-4 буфера, то они должны быть подряд.

В вашем примере нет никакой разницы, но приятней второй вариант, чтобы не путать номер буфера с номером построения.

Установил такую последовательность свойств буферов

#property indicator_buffers 7
#property indicator_plots   3

//--------------------------------------------------
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrGoldenrod
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

#property indicator_type2   DRAW_LINE
#property indicator_color2  clrGoldenrod
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

#property indicator_type3   DRAW_ARROW
#property indicator_color3  clrGoldenrod
#property indicator_style3  STYLE_DOT
#property indicator_width3  1

#property indicator_type4   DRAW_NONE
#property indicator_type5   DRAW_NONE
#property indicator_type6   DRAW_NONE
#property indicator_type7   DRAW_NONE

//--------------------------------------------------
//indicator1 buffers
SetIndexBuffer(0, Buffer1, INDICATOR_DATA);
SetIndexBuffer(1, Buffer2, INDICATOR_DATA);
SetIndexBuffer(2, Buffer5INDICATOR_DATA);
SetIndexBuffer(3, Buffer3, INDICATOR_CALCULATIONS);
SetIndexBuffer(4, Buffer4, INDICATOR_CALCULATIONS);
SetIndexBuffer(5, Buffer6, INDICATOR_CALCULATIONS);
SetIndexBuffer(6, Buffer7, INDICATOR_CALCULATIONS);

т.е. сперва все отображаемые INDICATOR_DATA , потом все INDICATOR _CALCULATIONS
#property подредактировал под последовательность
и о чудо, все три буфера отобразились.
Получается есть зависимость, сперва ставим все дата, потом все калькулейшн.

 
Roman:

Установил такую последовательность свойств буферов

т.е. сперва все отображаемые INDICATOR_DATA , потом все INDICATOR _CALCULATIONS
#property подредактировал под последовательность
и о чудо, все три буфера отобразились.
Получается есть зависимость, сперва ставим все дата, потом все калькулейшн.

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

Только вот эти строки

#property indicator_type4   DRAW_NONE
#property indicator_type5   DRAW_NONE
#property indicator_type6   DRAW_NONE
#property indicator_type7   DRAW_NONE
считаю лишними. Буфера 4—7 объявлены как вспомогательные и никак не относятся к построениям.
 
Alexey Viktorov:

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

Только вот эти строки

считаю лишними. Буфера 4—7 объявлены как вспомогательные и никак не относятся к построениям.

Попробовал закомментировать 

#property indicator_type4   DRAW_NONE
#property indicator_type5   DRAW_NONE
#property indicator_type6   DRAW_NONE
#property indicator_type7   DRAW_NONE

и отображение всех трёх построений стало не корректным.
Раскомментировал, всё вернулось в норму.
Получается они нужны компилятору. 

 
Roman:

Получается есть зависимость, сперва ставим все дата, потом все калькулейшн.

Да, и при этом также важна последовательность обычных буферов (гистограмм-стрелки-линии).
Недавно несколько часов убил в поисках "бага" - почему простые буферы не все отображались на чарте.

Когда буферов несколько десятков - добавить новый это заморочка.

 
Taras Slobodyanik:

Да, и при этом также важна последовательность обычных буферов (гистограмм-стрелки-линии).
Недавно несколько часов убил в поисках "бага" - почему простые буферы не все отображались на чарте.

Когда буферов несколько десятков - добавить новый это заморочка.

Да, логика языка с буферами индикаторов  не самая хорошая. Где то увидел, индикаторные буферы в мкл требуют полного описания в правильной последовательности. И это верно и не удобно.

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