Для того, чтоб тесты не мешали реальной работе, есть функция IsTesting().
А глобальные переменные - это единственный мостик между тестами и реальностью. Без них было бы сложно реализовать некоторые идеи, связанные с тестированием ;)
А глобальные переменные - это единственный мостик между тестами и реальностью. Без них было бы сложно реализовать некоторые идеи, связанные с тестированием ;)
Мы подумаем над разделением глобальных переменных в тестере.
Для того, чтоб тесты не мешали реальной работе, есть функция IsTesting().
И я ей очень активно пользуюсь для отключения ненужных графических выводов на экран и лишних данных в лог, что ускоряет тестирование. Но глобальные переменные не отключить таким образом. Я их использую исключительно в целях восстановления системы после выключения питания, чтобы система знала расчётные значения например за последние несколько баров без дополнительного (постоянного) пересчёта.
Мы подумаем над разделением глобальных переменных в тестере.
Будем ждать новых исправлений в грядущих билдах.
Можно продублировать второй набор глобальных переменных исключительно для целей бектеста. ТИпа ,
if (IsTesting()) { // работа с одним набором глю переменных } else { // работа с другим набором гл. переменных }
И никаких пересечений. Этот вариант уже предлагался где-то на форуме раньше.
А массив может быть глобальным?
Нет, но есть обходные пути :)
Но глобальные переменные не отключить таким образом.
Почему?Я их использую исключительно в целях восстановления системы после выключения питания, чтобы система знала расчётные значения например за последние несколько баров без дополнительного (постоянного) пересчёта.
Какое может быть отключение питания при тесте? В МТ 4 ещё нет симулятора уборщицы ;)Я тоже тспользую гл. п. для восстановления работы эксперта, но при тесте я использую обычные переменные, объявленные на глобальном уровне.
Конечно же обходных путей море. И самый лучший из них просто не тестировать советника на рабочем терминале ;o)! Но если разработчики смогут довести тестер так как и для других составляющих типа отдельного экаунта, то это будет в любом случае самым рациональным решением.
Rosh: "Нет, но есть обходные пути :)"
И где смотреть про эти пути?
И где смотреть про эти пути?
Я столкнулся с проблемой, что при оптимизации каждый экземпляр советника создает свои копии переменных, даже глобальных. Получается невозможно что-то сохранить или проанализировать между прогонами

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Во-первых, при тестировании стратегии, которая работает с глобальными переменными терминала, происходит ИЗМЕНЕНИЕ ТЕКУЩИХ РЕАЛЬНЫХ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ ТЕРМИНАЛА, что очень неудобно. А если в этот момент времени работает на реале тот же самый советник, который использует те же самые глобальные переменные, то высока вероятность сбоев в его работе (выставление неправильных ордеров). Я конечно же вовремя это заметил и принял соответствующие меры (больше на рабочем терминале стратегии не тестирую).
Во-вторых, если первую проблему решить нет технической возможности, то уж сделать чтобы глобальные переменные по окончанию (или прекращению) тестирования возвращались в первоначальное значение, которое они имели до момента старта тестера стратегий, уж наверное сделать можно?
Хотелось бы узнать мнение разработчиков на этот счёт.
Билд 195 (liveupdate от 30.06.2006)