Как передать собранные и обработанные данные фреймов из эксперта? - страница 3

 
Georgiy Merts #:

Что-то вобще непонятно, как передать из оптимизируемого эксперта хотя бы какие-то данные. 

В функции  OnTesterInit() вызываю Print() - где это сообщение?  По идее, эта функция в любом случае должна вызываться, еще до всяких ошибок... А значит, печать сообщения тоже должна быть... Где она? 

c:\Users\USERNAME\AppData\Roaming\MetaQuotes\Tester ?

 
Georgiy Merts #:

Что-то вобще непонятно, как передать из оптимизируемого эксперта хотя бы какие-то данные. 

В функции  OnTesterInit() вызываю Print() - где это сообщение?  По идее, эта функция в любом случае должна вызываться, еще до всяких ошибок... А значит, печать сообщения тоже должна быть... Где она? 

Сообщение будет выведено во вкладке экспертов клиентского терминала. Не в тестерных логах!

Так как копия эксперта с OnTesterInit, OnTesterPass, OnTesterDeinit при старте оптимизации запускается на вновь создаваемом графике в клиентском терминале

 

Сообщения из  OnTesterInit() и OnTesterDeinit()  во вкладке "Эксперты".

Сейчас попробовал создавать файл в общей папке из  OnTesterDeinit() - работает.

 

Нифига не понял. 

Написал класс, который в своем конструкторе создает файлы в локальной и общей папке. Чтобы файлы создавались при объявлении этих объектов.

Объявил объекты этого класса в функциях OnInit, OnDeinit, OnTesterInit, OnTesterDeinit - вполне ожидаемо при простом запуске появились файлы функций OnInit-Deinit, а при запуске оптимизации - OnTesterInit-OnTesterDeinit... и вместе с тем тут же появились и файлы обработанных данных фреймов... Да ведь не было же их !!!

Magic... не иначе...  Ну, запустил "рабочую" оптимизацию... посмотрим, чем закончится. 


Тут еще есть один момент - криптовалюты на разных счетах называются по-разному. В одном счету BTCUSD, а в другом BITCOIN. Тут тоже может быть засада, иногда я забываю скорректировать это название, и оптимизация вызывается с несуществующим символом, все аварийно завершается. у меня мелкое подозрение, что проблемы начинаются как раз после таких вот запусков... 

Исследую ситуацию дальше. 

 
Georgiy Merts #:

Нифига не понял. 

Написал класс, который в своем конструкторе создает файлы в локальной и общей папке. 

Объявил объекты этого класса в функциях OnInit, OnDeinit, OnTesterInit, OnTesterDeinit - вполне ожидаемо при простом запуске появились файлы функций OnInit-Deinit, а при запуске оптимизации - OnTesterInit-OnTesterDeinit... и вместе с тем тут же появились и файлы обработанных данных фреймов... Да ведь не было же их !!!

Magic... не иначе...  Ну, запустил "рабочую" оптимизацию... посмотрим, чем закончится. 


Тут еще есть один момент - криптовалюты на разных счетах называются по-разному. В одном счету BTCUSD, а в другом BITCOIN. Тут тоже может быть засада, иногда я забываю скорректировать это название, и оптимизация вызывается с несуществующим символом, все аварийно завершается. у меня мелкое подозрение, что проблемы начинаются как раз после таких вот запусков... 

Исследую ситуацию дальше. 

пусть по разному

сделайте и то и то как два разных инструмента

 
Renat Akhtyamov #:

пусть по разному

сделайте и то и то

Так и есть. При запуске эксперт определяет точное название символа, и использует именно его. 

НО.

Для автоматического пакетного запуска MT необходим INI-файл, в котором будет указан символ, на котором надо запускать эксперта. То есть, заранее необходимо написать точное название символа, на котором будет тестироваться эксперт. Вот тут я иногда ошибаюсь, забывая исправить одно название на другое. 

И... Ренат, ну не "выкай" мне - вроде ж мы тут коллеги... 

 
Georgiy Merts #:

Так и есть. При запуске эксперт определяет точное название символа, и использует именно его. 

НО.

Для автоматического пакетного запуска MT необходим INI-файл, в котором будет указан символ, на котором надо запускать эксперта. То есть, заранее необходимо написать точное название символа, на котором будет тестироваться эксперт. Вот тут я иногда ошибаюсь, забывая исправить одно название на другое. 

И... Ренат, ну не "выкай" мне - вроде ж мы тут коллеги... 

каждый эксперт работает на одном же символе?

Взять Symbol() и найти в настройках, которые писаны в единый файл

только пробелы все нужно почикать, иначе не найдет такое слово/столбик.

 
Renat Akhtyamov #:

каждый эксперт работает на одном же символе?

Взять Symbol() и найти в настройках, которые писаны в единый файл

только пробелы все нужно почикать, иначе не найдет такое слово.

Да, на одном. Смотри, какая ситуация. 

Сперва формируется список экспертов на переоптимизацию. Одновременно формируются ini-файлы, которые будут переданы терминалу для запусков. Вот, в этих самых файлах и надо указать символ. 

Эксперты для оптимизации универсальны для всех символов. Поэтому символ им нужно передавать в виде строки. И вот тут-то и засада. Ini-файлы формируются по результатам "боевых" счетов Лиги (МТ4). А эксперты для оптимизации - работают на других, демо-счетах (МТ5). И название криптовалют там разные. Пока что мне несложно просто вручную переправлять несколько названий в Ini-файлах. Забивать прямо в код принудительное изменение мне кажется неразумным - подозреваю, что скоро названия опять могут измениться. 

Так что - пока так. 

Ну а при запуске - любой эксперт просматривает список символов, и выбирает одно из двух названий для каждой криптовалюты, проблем тут не возникает. 

 
Georgiy Merts #:

Да, на одном. Смотри, какая ситуация. 

Сперва формируется список экспертов на переоптимизацию. Одновременно формируются ini-файлы, которые будут переданы терминалу для запусков. Вот, в этих самых файлах и надо указать символ. 

Эксперты для оптимизации универсальны для всех символов. Поэтому символ им нужно передавать в виде строки. И вот тут-то и засада. Ini-файлы формируются по результатам "боевых" счетов Лиги (МТ4). А эксперты для оптимизации - работают на других, демо-счетах (МТ5). И название криптовалют там разные. Пока что мне несложно просто вручную переправлять несколько названий в Ini-файлах. Забивать прямо в код принудительное изменение мне кажется неразумным - подозреваю, что скоро названия опять могут измениться. 

Так что - пока так. 

Ну а при запуске - любой эксперт просматривает список символов, и выбирает одно из двух названий для каждой криптовалюты, проблем тут не возникает. 

название счета, не номера - название файла, чтобы торговые условия и тип счета учлись

тоже репку чесал над этим 

хм...., долго ;)

 
Georgiy Merts #:

Объявил объекты этого класса в функциях OnInit, OnDeinit, OnTesterInit, OnTesterDeinit - вполне ожидаемо при простом запуске появились файлы функций OnInit-Deinit, а при запуске оптимизации - OnTesterInit-OnTesterDeinit... и вместе с тем тут же появились и файлы обработанных данных фреймов... Да ведь не было же их !!!

Я и говорю - что-то с кэшированием/отложенной записью.

Причина обращения: