Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот так я получаю текущие данные движущийся средней, это правильно?
Два вопроса.
1.Ничего, что не ассоциирован номер индикаторного буфера с индикатором. Раз один индикатор, он автоматически получил буфер 0, и я его и указал.
2. Если у меня хэндл индикатора в инициализации, то когда я изменю параметры, которые передаются индикатору, то мне нужно перезалить советник к графику, чтобы настало событие инициализация и новые параметры применились?
Вот так я получаю текущие данные движущийся средней, это правильно?
Два вопроса.
1.Ничего, что не ассоциирован номер индикаторного буфера с индикатором. Раз один индикатор, он автоматически получил буфер 0, и я его и указал.
2. Если у меня хэндл индикатора в инициализации, то когда я изменю параметры, которые передаются индикатору, то мне нужно перезалить советник к графику, чтобы настало событие инициализация и новые параметры применились?
1. Нет никакой "ассоциации". И никогда не было.
Читаем справку по CopyBuffer
Есть функция, которой передаётся хендл индикатора (в Вашем случае это переменная ma_handle и номер буфера '0' - ноль, так как индикатор Moving Average имеет всего один буфер).
2. Если Вы меняете входные параметры в советнике - будет новая инициализация советника и в OnInit будет создан хендл индикатора с введенными Вами параметрами.
1. Нет никакой "ассоциации". И никогда не было.
...
Имеется ввиду вызов SetIndexBuffer()
Имеется ввиду вызов SetIndexBuffer()
Да. Не очень понятно, что такое номер индикаторного буфера, как эти буферы создаются, они принадлежат к конкретному индикатору или у них общая нумерация . В документации написано, что надо писать SetIndexBuffer(), а в примере советника Moving Average написано без. Читал и справку и дополнительные статьи искал и только непонятнее стало. Нужно ли указывать буферы препроцессору, и почему буферов должно быть на один меньше чем в директиве препроцессору, а не столько же.
Если искать какой-то метафизический смысл... тогда много становится непонятным. А так - это просто номер. Принадлежит конкретному индикатору.
В советниках вообще нет индикаторных буферов, поэтому вызова SetIndexBufer() не может быть.
Не на один меньше, а ровно столько же. При отсчете от нуля, номер последнего на 1 меньше, чем общее количество.
Если не затруднит, ответьте еще на несколько вопросов, пожалуйста.
1. Не пойму, зачем присваивать 0 объявленной переменной, если всё равно потом что-то присваивать? И причем, иногда 0 не присваивается, иногда присваивается.
2. И говорят, что нужно удалять объекты в деинициализации (непонятно зачем), а ведь хэндл индикатора является объектом, но его почему то не принято удалять, почему так?
3. MqlTradeRequest request={0}; Что это значит? Ну наверно всей структуре присваивается 0, но в ней ведь не только численные типы.
4. И зачем логическая операция тут ?
Если не затруднит, ответьте еще на несколько вопросов, пожалуйста.
1. Не пойму, зачем присваивать 0 объявленной переменной, если всё равно потом что-то присваивать? И причем, иногда 0 не присваивается, иногда присваивается.
2. И говорят, что нужно удалять объекты в деинициализации (непонятно зачем), а ведь хэндл индикатора является объектом, но его почему то не принято удалять, почему так?
3. MqlTradeRequest request={0}; Что это значит? Ну наверно всей структуре присваивается 0, но в ней ведь не только численные типы.
4. И зачем логическая операция тут ?
1. По привычке.
2. Это другой объект. Он сам потом выгрузиться, но можно ускорить функцией IndicatorRelease().
3. Очищается и все.
4. Это не логическая операция, а передача переменной по ссылке.
1. По привычке.
2. Это другой объект. Он сам потом выгрузиться, но можно ускорить функцией IndicatorRelease().
3. Очищается и все.
4. Это не логическая операция, а передача переменной по ссылке.