Скачать MetaTrader 5

Какой смысл этого условия: if(Volume[0]>1) return;

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
mandarin
114
mandarin  

В советнике MyMACD_1 https://www.mql5.com/ru/code/10508 есть код:

if(Volume[0]>1) return;

Какой смысл этого условия?

Спасибо.

Владимир Тезис
4266
Владимир Тезис  
Если объём на нулевой свече более 1, то прервать выполнение.
mandarin
114
mandarin  
drknn:
Если объём на нулевой свече более 1, то прервать выполнение.

Так для чего это? Какая логика?
Всеволод
648
Всеволод  
Насчет логики это к разработчику. Возможно чтобы индикатор не пересчитывался на последнем баре.
Sceptic Philozoff
Модератор
17841
Sceptic Philozoff  

Есть еще вариант. Системы, позиции которых могут открываться/закрываться только при создании нового бара, легко тестируются: не нужен режим "по всем тикам" (медленный расчет), достаточно режима "по ценам открытия" (быстрый расчет).

Vasiliy Sokolov
26996
Vasiliy Sokolov  
Это условие заставляет отрабатывать торговую логику только в момент открытия нового бара (формирования нового бара начинается с первого тика: Volume[0] = 1). Сделано это специально, во-первых для оптимизации расчетов, а во-вторых для загрубления логики, что бы не было ситуаций, когда MACD пересекает нулевой уровень снизу-вверх (купили), а через несколько тиков сверху-вниз(продали), а потом снова наоборот (купили), и так до бесконечности на одном и том же баре. Просто надо понимать, что индикаторы как и цена перерисовываются на нулевом баре и учитывать это в своих алгоритмах.
Всеволод
648
Всеволод  
Ну это слишком смелое загрубление, если эксперт пропустит тик то этот бар уже не сможет отработать, лучше все же использовать стандартную проверку появления нового бара.
Vasiliy Sokolov
26996
Vasiliy Sokolov  
splxgf:
Ну это слишком смелое загрубление, если эксперт пропустит тик то этот бар уже не сможет отработать, лучше все же использовать стандартную проверку появления нового бара.
Да совершенно верно. Такая проверка самый простой, но и самый небезопасный способ. Не совсем понимаю о какой "стандартной проверке появления нового бара" Вы говорите, лично я в свое время писал специальную функцию для этого IsNewBar().
Роман
7939
Роман  

Для тестера - пойдет...!!!

СтартЕра уж и след давно простыл, а мы тут "устроили ромашка, понимаешь - любит/не любит", пойдет/не пойдет...:-)

Есть такая обработка - еще у С.Ковалева, 2006 г - по моему, пусть поиском воспользуется через гугл, например: Контроль открытия нового бара site:mql4.com и все...

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий