1. Подробно не смотрел - не могу добросовестно ответить, но такая конструкция используется обычно, чтобы разделить момент первого запуска индикатора и моменты пересчетов в процессе работы (докачка истории, разрывы связи и пр. - обнуление CountedBars() ) в теле ф-ии start().
2. Нет. В программах, идущих в поставке МТ, встречаются ошибки. Неоднократно отмечал.
1. Подробно не смотрел - не могу добросовестно ответить, но такая конструкция используется обычно, чтобы разделить момент первого запуска индикатора и моменты пересчетов в процессе работы (докачка истории, разрывы связи и пр. - обнуление CountedBars() ) в теле ф-ии start().
2. Нет. В программах, идущих в поставке МТ, встречаются ошибки. Неоднократно отмечал.
Спасибо за ответы. То есть для уверенности в правильности кода индикаторы лучше перепроверять?
А если индекс i, использующися в пересчете итераций цикла while в индикаторе не зависит от counterBars( ), то есть является не записью вида
i=Bars-Counted_bars-1;
а например, i=Bars-2;
то это ошибочный алгоритм, верно?
Спасибо за ответы. То есть для уверенности в правильности кода индикаторы лучше перепроверять?
А если индекс i, использующися в пересчете итераций цикла while в индикаторе не зависит от counterBars( ), то есть является не записью вида
i=Bars-Counted_bars-1;
а например, i=Bars-2;
то это ошибочный алгоритм, верно?
Нет. В данном случае - все верно. Это сделано для расчета начальных значений индикатора и относится только к двум самым старым барам. Основной цикл пересчета начинается дальше.
Параболик работает абсолютно корректно. Другое дело, что его код можно было сделать оптимальней и более удобоваримым для чтения, а так - все ок.
))) Вы, вообще, зря взяли его для разбора - сложночитаемый код. Начните с чего-нибудь попроще. Например, с MACD.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. Я только недавно прочитал учебник и решил попробывать свои силы в программировании торговых алгоритмов. Решил начать с того, что:
а) прочитать статью Уайлдера про Parabolic System, б) разобраться в коде технического индикатора Parabolic SAR, входящего в состав торг. терминала - https://www.mql5.com/en/code/mt4 и в) подкорректировав код индикатора, написать на его основе его показаний свой первый пробный эксперт - как проба пера.
Я не уверен, насколько корректно просить знающих людей разъяснить детали кода, но тем не менее, есть два момента, которые остались пока для меня неясными:
1. В чем смысл определенной в программе флага static bool first = true; ? Ведь во время первого исполнения программы значение counted_bars будет 0 и следовательно запустится на исполнение первый оператор if и вместе с этим значение флага first станет false до конца использования индикатора в окне, и т.о. переменная не будет играть никакой роли в дальнейшем исполнении программы.
2. Корректно ли в целом составлена программа? Здесь счетчик i = Bars - 2; не зависит от параметра counted_bars?
Можно ли считать коды технич. индикаторов, представленные в разделе Code Base, проверенными и безошибочными?
Заранее спасибо за ответы и советы...