А почему Вы используете offline график?
А почему Вы используете offline график?
Мой индикатор очень медленный. Если я открою real-time график, то он будет постоянно обновлять самый последний бар даже если он ещё полностью не закончен. Мой компьютор будет всё время в напряге перерасчитывая мой индикатор для промежуточных значений последнего бара, не позволяя мне ничего сделать. Неплохо бы иметь команду внутри индикатора, которая указавыла что перерасчёт индикатора делается только по окончании самого последнего бара, то есть по истечении его фрейма.
Вы совершаете большую ошибку, запуская советника на оффлайн графике.
Я запускаю советник через Strategy Tester, который открывает график M15(Visual). Контроля я над тем какой график (real-time or offline) открывается не имею. Тестирование происходит на прошлых барах. После тестирования, чертю индикаторы на том же графике чтобы объяснить результаты. Я подозреваю что тестирование советника через Strategy Tester может дать ошибочные результаты если этот советник использует функции типа iClose(), которые берут данные из несинхронизированных котировок, т.е. заглядывают в будущее. А как ещё можно тестировать советник?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Print(TimeToStr(iTime("EURUSD",PERIOD_M15,0))," ",TimeToStr(iTime("EURUSD",PERIOD_M1,0)));
выдаёт такой результат
2006.09.25 13:15:14 Indicator EURUSD,M15: 2006.08.24 23:45 2006.09.25 20:15
То есть, на открытом Offline М15 графике, нулевой бар соответсвует времени 2006.08.24 23:45, которое является последним временем на этом графике. Тот же нулевой бар соответствует 2006.09.25 20:15 в "подкачиваемых" М1 данных. В связи а этим, возникает такая проблема:
Во время тестирования экспертного советника на открытом Offline M15 графике, нулевой бар проходит через прошлые бары. Если в моём советнике используются функции типа iClose("EURUSD",PERIOD_M1,0), то они будут брать данные за самый последий бар в реальном времени, то есть из будущего по отношению к тестируемому нулевому бару на М15 графике. Подскажите пожалуйста как создать советник таким образом чтобы нулевой бар соответствовал одному и тому же времени в тестируемых М15 данных и подкачиваемых М1 данных? Я ещё плохо знаком со всеми возможностями МТ. Но если бы была такая функция как TimeToBar(Symbol,Frame,Bar), то я смог бы сделать такое:
M1BarShift=TimeToBar("EURUSD",PERIOD_M1,Time[0]);
и потом использовать iClose("EURUSD",PERIOD_M1,i+M1BarShift) в моих вычислениях.
Нашёл эту функцию: iBarShift(). Пока вопросов нет до тех пор пока не разберусь со своим кодом.