Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 117

 
Mickey Moose:   Это из того поля что появляется в окне данных терминала?

в окне данных может быть запрещен показ любого индикаторного буфера: SetIndexLabel(1, NULL);

 
novichok2018:

Заменил. Ругается ошибкой 138 (реквоты). Потом вернул break, и опять 138. Странно, может я раньше не замечал.

реквоты - это по пятницам к вечеру быстрое изменение цены и брокер огораживает себя от убытков

 
STARIJ:

в окне данных может быть запрещен показ любого индикаторного буфера: SetIndexLabel(1, NULL);

Ок. Допустим мы имеем индикатор с 6 буферами
Надо каждый раз писать iCustom чтоб получить значения каждого из них на текущей свечке? Даже если они и не показываются в главном окне?
Я хочу обратится к буферу чтоб получить его текущие значения на данный момент времени
 
Mickey Moose:
Ок. Допустим мы имеем индикатор с 6 буферами
Надо каждый раз писать iCustom чтоб получить значения каждого из них на текущей свечке? Даже если они и не показываются в главном окне?
Я хочу обратится к буферу чтоб получить его текущие значения на данный момент времени

если нужны значения 6 буферов - да вызываете 6 раз iCustom с одинаковыми параметрами, кроме параметра как указано в справке: "int          mode,

" mode [in]  Индекс линии индикатора. Может принимать значения от 0 до 7 и соответствовать индексу, указанному при вызове функции SetIndexBuffer()."

параметр mode будет у Вас цифра от 0 до 5

текущее значение в данный момент это параметр: "int          shift             // сдвиг "

"shift [in]  Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). "

т.е. для нулевого бара shift = 0, для предпоследнего shift = 1  ..... 

 
Mickey Moose:
Ок. Допустим мы имеем индикатор с 6 буферами
Надо каждый раз писать iCustom чтоб получить значения каждого из них на текущей свечке? Даже если они и не показываются в главном окне?
Я хочу обратится к буферу чтоб получить его текущие значения на данный момент времени
ну зачем же писать 6 раз - можно в цикле for и даже while. Вот обращаться к индикатору за 6 значениями придется 6 раз... Хотя, если сами пишете индикатор и данные булевские или int - можно зашифровать в 1 double и поместить в 1 буфер для считывания за 1 раз
 
STARIJ:
ну зачем же писать 6 раз - можно в цикле for и даже while. Вот обращаться к индикатору за 6 значениями придется 6 раз... Хотя, если сами пишете индикатор и данные булевские или int - можно зашифровать в 1 double и поместить в 1 буфер для считывания за 1 раз

я умею их писать чуть лучше чем никак))) не было надобности

ну и касаемо int filehandle=FileOpen(20180210,FILE_WRITE,';',CP_ACP);


по поводу кастом

iCustom(NULL,0,"имяиндикатора", ИЧтоСюдаПисатьЧтобРаботало?,0,MODE_MAIN,0); там написано что требуется указать параметры, так их десятки, и они никакого отношения к буферам для робота не имеют

пытаюсь открыть файл лога для чтения 

int filehandle=FileOpen(20180210,FILE_WRITE,';',CP_ACP);

пишет что неверное имя файла. открываю папку с логами - все с ним в порядке

Igor Makanu:

" mode [in]  Индекс линии индикатора. Может принимать значения от 0 до 7 и соответствовать индексу, указанному при вызове функции SetIndexBuffer()."

параметр mode будет у Вас цифра от 0 до 5


C этим понятно, кроме того откуда заплнение   SetIndexBuffer(). Если на окне будет висеть 2 индикатора откуда он будет импортировать эти данные?  Там же вроде какая то привязка есть., типа третий буфер какого то там индикатора на графике или в окне данных, если он пользовательский. Или вариант импорта всех его параметров.

 
Mickey Moose:

я умею их писать чуть лучше чем никак))) не было надобности

ну и касаемо int filehandle=FileOpen(20180210,FILE_WRITE,';',CP_ACP);


по поводу кастом

iCustom(NULL,0,"имяиндикатора", ИЧтоСюдаПисатьЧтобРаботало?,0,MODE_MAIN,0); там написано что требуется указать параметры, так их десятки, и они никакого отношения к буферам для робота не имеют

пытаюсь открыть файл лога для чтения 

int filehandle=FileOpen(20180210,FILE_WRITE,';',CP_ACP);

пишет что неверное имя файла. открываю папку с логами - все с ним в порядке


C этим понятно, кроме того откуда заплнение   SetIndexBuffer(). Если на окне будет висеть 2 индикатора откуда он будет импортировать эти данные?  Там же вроде какая то привязка есть., типа третий буфер какого то там индикатора на графике или в окне данных, если он пользовательский. Или вариант импорта всех его параметров.

iCustom(NULL,0,"имяиндикатора", МожноВообщеНичегоНеПисатьЧтобРаботало?,0,MODE_MAIN,0);

Будет работать с параметрами по умолчанию.

 
Mickey Moose:

пытаюсь открыть файл лога для чтения 

int filehandle=FileOpen(20180210,FILE_WRITE,';',CP_ACP);

пишет что неверное имя файла. открываю папку с логами - все с ним в порядке

имя файла тип string, у Вас число 20180210, если это число имя файла, то нужны ""

Mickey Moose: Если на окне будет висеть 2 индикатора откуда он будет импортировать эти данные?  Там же вроде какая то привязка есть., типа третий буфер какого то там индикатора на графике или в окне данных, если он пользовательский. Или вариант импорта всех его параметров.

в ICustom() Вы пишите имя индикатора, если 2 индикатора, то Вы будете вызывать 2 iCustom() с разными именами, попробуйте на стандартном индикаторе потренироваться - выведите через Alert несколько значений индикатора, лучше сделать скрипт, а не советник для понимания работы с iCustom()

void OnStart()
  {
       for(int i=0;i<5;i++)
       {
         double val=iCustom(NULL,0,"ATR",14,1,i);
         Alert("Бар № ",i," , Значение = ",val);
       }
   
  }
 
Вот посмотрите скрипт записи зигзага в файл. Внутри комментарии
Файлы:
Zig2fl.mq4  5 kb
 
Приветствую всех. Помогите пожалуйста. Я здесь новичок и полный ноль. Хочу научиться трейдингу. Скачала  МТ4 и запускаю,но почему то у меня ничего не происходит,нет никаких движений. Графики стоят на месте на вчерашнем числе и я ничего понять не могу. Пожалуйста помогите )))
Причина обращения: