А вот эта часть:
Bars_From_Start_Level=iBarShift(symb,Period(),StartLevel_Time, false); // Расчет кол-ва баров с начала периода Print("Баров с начала уровней ",Bars_From_Start_Level);
находится в функции старт или инит?
А вот эта часть:
Bars_From_Start_Level=iBarShift(symb,Period(),StartLevel_Time, false); // Расчет кол-ва баров с начала периода Print("Баров с начала уровней ",Bars_From_Start_Level);
находится в функции старт или инит?
По первости расчитывается в init, потом каждый новый бар - в start.
Но перед расчетом в инит стоит временнАя задержка для подкачки истории. Не помогает....
По первости расчитывается в init, потом каждый новый бар - в start.
Но перед расчетом в инит стоит временнАя задержка для подкачки истории. Не помогает....
Но перед расчетом в инит стоит временнАя задержка для подкачки истории. Не помогает....
В ините нельзя заниматься сбором и обработкой рыночной информации. При ините индикатор только конструируется и рыночных данных может и не быть вовсе. То есть, не надо вызывать никаких расчетов, основанных на рыночных данных.
В ините можно заниматься только общими подготовительными делами, которые не базируются и не затрагивают рыночного окружения.
Спасибо, буду читать пейджер и много думать...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Собственно, описание трабла:
На графике создаются линии уровней. Открытие уровня (time1) выставляется на начало периода (например, для интрадея - 10 часов). То есть - текущий день, 8 по времени ДЦ. Для более удобного предствления в эксперте далее отсчет выражается в барах, прошедший с начала периода.
Кол-во баров расчитывается по схеме
где StartLevel_Time - datatime переменная начала периода.
Для примера возьмём, что начало перода - 08:00 по времени ДЦ.
Если эксперт запускается раньше указанного времени, то Bars_From_Start_Level=0 , если в 08:17, Bars_From_Start_Level=1 , это всё Ок считается.
Далее создаётся сам уровень следующим макаром:
Соответственно, время создания уровня - это или 1 бар от текущего, если создался раньше начала периода или в самое начало периода или же определённое кол-во баров, прошедшее с начала периода.
Вот и подошли к нашим овечкам...
Дело в том, что очень часто при ПЕРВОМ запуске терминала, который был отключен какой то срок (например, на ночь), время начала уровня (time1) создается терминалом не правильно!
К сожалению, сей момент не могу привести достойного лога, но вот например вчера (а это было 08.03.2006) он выглядел так (избранное):
И получается в результате уровень, начинающийся со вчера вечера, вместо сегодняшнего утра....
То есть получается, что терминал откуда то подхватывает ПРОШЛОЕ значение time1 и нагло вставляет его вместо положеного по алгоритму Time[2] = 2006.03.08 12:16 ! (к примеру). При дальнейшем запуске эксперта уже всё нормально пересчитывает, на других валютных парах тоже иногда сразу нормально а иногда с таким же багом....
Так что мне делать с этим? Кто подскажет?