Это - не ошибка. Просто так сделано. Мы не собирались делать второй набор глобальных переменных.
Формируйте имя глобальной переменной, исходя из среды исполнения. Какой-нибудь префикс или суффикс, который устанавливается в ините.
и ещё вдогонку на будущее. я всегда делаю такую конструкцию:
if ((IsTesting()||IsOptimization()) && bTesting) // контроль глобальных переменных при тестовом режиме { bTesting=false; GlobalVariableSet("Name"+Magic+Symbol(), 0); }
Это - не ошибка. Просто так сделано. Мы не собирались делать второй набор глобальных переменных.
Формируйте имя глобальной переменной, исходя из среды исполнения. Какой-нибудь префикс или суффикс, который устанавливается в ините.
Способы обойти конечно есть.. Просто ради интереса - почему так сделано? Архитектурно - это 100% ошибка, т.к. среды тестирования и исполнения должны быть полностью изолированы..
И еще - есть ли где нибудь перечень функций, процедур и переменных, ОБЩИХ для сред тестирования и исполнения?
Спасибо!
Способы обойти конечно есть.. Просто ради интереса - почему так сделано? Архитектурно - это 100% ошибка, т.к. среды тестирования и исполнения должны быть полностью изолированы..
И еще - есть ли где нибудь перечень функций, процедур и переменных, ОБЩИХ для сред тестирования и исполнения?
Спасибо!
Это не факт, что 100% ошибка. Это запросто обходится. А некоторые экспертописатели вовсю используют такую возможность - в тестере формируют глобальную переменную, в реале её используют.
Читайте ствтьи. Например, 'Особенности и ограничения тестирования торговых стратегий в MetaTrader 4'
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вопрос видимо к разработчикам.. При тестировании эксперта выяснилось, что глобальные переменные берутся не из среды тестирования, а из рабочей среды (проверено). Возможно (лень проверять), их же можно и поменять из тестовой среды.
С какой целью так сделано? Или это ошибка? Если так, прошу учесть в следующих версях.. ибо:
1. Очень неохота менять код эксперта только чтоб погонять его в тестере
2. Опасно гонять эксперты в тестере при таком же реально работающем эксперте