У меня очень тажелый алгоритм вычислений. Грузит все процессоры на ура.
Возникла такая мысль: а можно ли показания индикатора скидывать в глобальнуые переменные чтобы потом считывать их советником.
Иначе просто не тянет железо. Функцию iCustom использовать нельзя, не получится.
Вопрос: что в первую очередь выполняется индикатор или советник при приходе нового тика?
кто бы ни был первым есть функция слип для облегчения жизни
Кстати, а в чем разумный смысл разделения рабочего кода на советник и индикатор в МТ4?
Ведь если использовать и то и другое одновременно, то ресурсов тратится гораздо больше, чем если бы всё это работало в единой связке, не говоря уже о том что во многих случаях нужно выполнять те же вычисления и там и там и бесконечно заморачиваться переносами кода.
Кстати, а в чем разумный смысл разделения рабочего кода на советник и индикатор в МТ4?
Ведь если использовать и то и другое одновременно, то ресурсов тратится гораздо больше, чем если бы всё это работало в единой связке, не говоря уже о том что во многих случаях нужно выполнять те же вычисления и там и там и бесконечно заморачиваться переносами кода.
А в чем разница между диагнозом и лечением?
Индикаторы - анализ. Они так и называются - индикаторы ТА. Советник же - принятие решений на основе аналитических инструментов.
С чисто техничеаской т.зр. - развесовка логики между индикатором и экспертом может быть любая...
Ну дык и диагноз и лечение разумно делать в одном месте, а не мучить больного пустыми поездками туда-сюда - так и помереть по дороге можно )))
Ну а всё же в чем смысл? Или это просто кому-то такая идея в голову взбрела?
В нормальной жизни обычно пишут одну программу даже если там есть несколько независимых по смыслу вещей, хотя тут как раз анализ и принятие решения связаны воедино и поэтому не вижу смысла это разделять, к тому же специально - шоб людям и компам жизнь раем не показалась. )))
советник 123
int start() { int i; datetime now; now=TimeLocal(); for (i=1;i<10;i++)Print("expert : ",DoubleToStr(i,0)," / ",TimeToStr(now,TIME_SECONDS)); return(0); }индикатор 456
int start() { int i; datetime now; now=TimeLocal(); for (i=1;i<10;i++)Print("indicator : ",DoubleToStr(i,0)," / ",TimeToStr(now,TIME_SECONDS)); return(0); }потом закрыть и заново запустить терминал,то имеем, что однозначно запись в журнал первым делает индикатор :)
Вот и решил, а не оставить ли работать алгоритм только в индикаторе, и данные по необходимости скармливать в советник.
В индикаторе и в советнике реализована одна логика, они дублируют друг друга, для подстраховки, но процессоры не тянут.
Вот и решил, а не оставить ли работать алгоритм только в индикаторе, и данные по необходимости скармливать в советник.
Почему нельзя весь алгоритм реализовать в советнике, а индикаторные буферы записываются им в файл, который читается индикатором. Если конечно требуется что то отображать на графике.
:)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Возникла такая мысль: а можно ли показания индикатора скидывать в глобальнуые переменные чтобы потом считывать их советником.
Иначе просто не тянет железо. Функцию iCustom использовать нельзя, не получится.
Вопрос: что в первую очередь выполняется индикатор или советник при приходе нового тика?