но куда копать...
Работает вроде нормально на семёрке и десятке, а у Вас какая ОС, какой билд укажите.
Продолжение следует ((
Значение переменной, записанное в OnTesterInit, не сохраняется, и в OnTester равно нулю.
GlobalVariableGet не работает в OnTester. Чтение файла, предполагаю, тоже. Не хочется проверять, да и дорого получится. Как передать переменную, не представляю. Есть мысли?
Ничего непонятно. Передавать переменные из Терминала на Агенты можно через создание input-переменных, которые заполняются в OnTesterInit.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2020.11.26 13:59
В OnTesterInit сделать GetSettings и передать оттуда полученные значения через ParametersSetRange в sinput переменную.
На локальных Агентах эта sinput-переменная будет говорить о том, что за режим.
ЗЫ Режим по реальным тиками можно определить без DLL.
Edgar Akhmadeev #:
Значение переменной, записанное в OnTesterInit, не сохраняется, и в OnTester равно нулю
Посмотрите в учебнике, что такое OnTesterInit(). Главное понять, что ваш советник будет запускаться при оптимизации в двух вариантах:
- один экземпляр в режиме сбора фреймов на графике терминала, с которого запускается оптимизация. Не в тестере(!), а на графике. Поэтому и сообщения в логе от него надо будет смотреть во вкладке сообщений от экспертов, запускаемых на графике. В этом экземпляре будут срабатывать только OnTesterInit(), OnTesterPass() и OnTesterDeinit(). Все остальные обработчики (OnInit(), OnTick(), OnTester()) в нём вызываться не будут.
- остальные экземпляры в режиме тестирования и оптимизации на агентах тестирования. В этих экземплярах будут срабатывать только OnInit(), OnTick(), OnTester(),... но не будут срабатывать OnTesterInit(), OnTesterPass() и OnTesterDeinit().
Посмотрите в учебнике, что такое OnTesterInit(). Главное понять, что ваш советник будет запускаться при оптимизации в двух вариантах:
- один экземпляр в режиме сбора фреймов на графике терминала, с которого запускается оптимизация. Не в тестере(!), а на графике. Поэтому и сообщения в логе от него надо будет смотреть во вкладке сообщений от экспертов, запускаемых на графике. В этом экземпляре будут срабатывать только OnTesterInit(), OnTesterPass() и OnTesterDeinit(). Все остальные обработчики (OnInit(), OnTick(), OnTester()) в нём вызываться не будут.
- остальные экземпляры в режиме тестирования и оптимизации на агентах тестирования. В этих экземплярах будут срабатывать только OnInit(), OnTick(), OnTester(),... но не будут срабатывать OnTesterInit(), OnTesterPass() и OnTesterDeinit().
Спасибо за объяснение. Учебник как-то выпал из моего внимания.
Я уже всё сделал после совета fxsaber. Всё работает.
Я начал писать ответ, но потом отвлекся и дописал его в открытой вкладке позже. А там уже fxsaber ответил до меня, как оказалось. Здорово, что всё получилось!
Нет, Ваш ответ коротко описал теорию, в которую я не углублялся. Очень полезно узнать. Спасибо.
fxsaber как всегда коротко дал идею, кто понял суть - разберётся. Благодарность, как за многое предыдущее.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вдруг с чего-то при оптимизации терминал стал не давать переключать вкладки тестера стратегий. Стоит на настройках, при клике другая вкладка промелькивает на долю секунды. При остановке оптимизации можно переключать. В любой другой панели переключать вкладки не мешает.
Перезапуск терминала, откат на предыдущие билды, перезапуск компьютера не помогают. Я в шоке. Знаю, что проблема у меня (этот билд сегодня работал как обычно), но куда копать...