Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Миллионы трейдеров ждут этого!
Комбинатор
15776
Комбинатор 2011.07.16 17:03 
Есть некий эксперт, он универсален и может работать на любом ТФ и инструменте, в т.ч. на нескольких сразу.

У эксперта есть настройки, у каждого экземпляра свои.

Задача -- без участия пользователя восстановить настройки после нормальной (неаварийной) перезагрузки терминала.

Возможность изменения ТФ нужно учитывать.

О глобальной цели потом, она также весьма интересна.

Nikolay Demko
12453
Nikolay Demko 2011.07.16 17:45  
TheXpert:
Есть некий эксперт, он универсален и может работать на любом ТФ и инструменте, в т.ч. на нескольких сразу.

У эксперта есть настройки, у каждого экземпляра свои.

Задача -- без участия пользователя восстановить настройки после нормальной (неаварийной) перезагрузки терминала.

Возможность изменения ТФ нужно учитывать.

О глобальной цели потом, она также весьма интересна.

Глобалы или лог при старте в файл (пользователь выбирает стартовать с логовых настроек или input'овских). По умолчанию с логовских.

А ещё, развивая тему с логом, можно по умолчанию прописать нереальные настройки input и если они были изменены значить запускал пользователь, а значит следует пользовательские данные сохранить в лог чтоб потом когда настройки дефолтные подставить из лога.

ЗЫ если влом каждый раз править настройки можно лог писать в бин-файл а профиль настроек в текстовой, поставить по умолчанию флаг грузится с инпут настроек. Тогда просто изменив этот флаг пользователь загрузит сову с текстового файла (который любовно отредактирован зарание) а при смене ТФ загрузка произойдёт с нереальных настроек и загрузчик пойдёт читать бин-файл.

ЗЗЫ кстати вместо файлов эту схему можно реализовать и через глобалы. А чтоб несколько экземпляров совы работало можно при загрузке с текстового файла случайно генерировать магик и запоминать его в бин-файл.

Комбинатор
15776
Комбинатор 2011.07.16 18:18  

Urain:

Не-не-не, Николай, все немного сложнее, иначе бы помощи не просил. Фишка именно в том, что по умолчанию настроек нет, есть только если были изменения в настройках ручками.

А чтоб несколько экземпляров совы работало можно при загрузке с текстового файла случайно генерировать магик и запоминать его в бин-файл.

И что с эти магиком? Представь ситуацию -- два графика, полностью идентичных (инструмент, тф), на нем висят два идентичных советника. Допустим, сгенерили мы уникальный магик, записали его в уникальный бин-файл.

Дальше, терминал закрыли, открыли, как советнику найти ЕГО бин-файл? Который именно он сгенерил, а не сосед?

Пока вижу единственное решение -- задавать уникальный идентификатор во внешних параметрах и лочить каким-то образом этот идентификатор.

Andrew Petras
4659
Andrew Petras 2011.07.16 18:29  
TheXpert:
А ChartID у них тоже может поменяться?
Vladimir Batrudinov
4917
Vladimir Batrudinov 2011.07.16 18:33  
Silent:
А ChartID у них тоже может поменяться?
Скорей всего да.
Andrew Petras
4659
Andrew Petras 2011.07.16 18:37  
Interesting:
Скорей всего да.
Хм. Почему, если просто открыли/закрыли терминал?
Vladimir Batrudinov
4917
Vladimir Batrudinov 2011.07.16 18:43  
Silent:
Хм. Почему, если просто открыли/закрыли терминал?

Предполагаю, что идентификаторы чартов генерируются случайным образом, и не закреплены за конкретными графиками, а вот номер графика в списке (ведь графиков может быть не больше 100) скорей всего не должен меняться.

Хотя это чистая теория, на практике не проверял.

Andrew Petras
4659
Andrew Petras 2011.07.16 18:48  
Interesting:

Предполагаю, что идентификаторы чартов генерируются случайным образом, и не закреплены за конкретными графиками, а вот номер графика в списке (ведь графиков может быть не больше 100) скорей всего не должен меняться.

Хотя это чистая теория, на практике не проверял.

Если так, то случайный id + номер графика = идентификатор bin файла. Не? А если не случайный, то еще проще.
Комбинатор
15776
Комбинатор 2011.07.16 18:49  
Silent:
А ChartID у них тоже может поменяться?

Не знаю, я последний раз серьезно кодил на MQL5 почти полгода назад. С тех пор все очень сильно поменялось.

По идее самое оно, или надо что-то вроде. Надо будет проверить, спасибо.

Nikolay Demko
12453
Nikolay Demko 2011.07.16 18:52  

Вот я давно говорил MQ что нужны следящие системы, новая категория программ "менеджеры".

Хотя можно было бы реализовать через создание невидимого чарта, раз невидим то и пользователь не имеет к нему доступа, такой чарт работал бы в автономке и всё что на нём запущего так же, такая себе защита от дурака. Кстати и решилась бы проблема глобальных массивов. Данные можно было бы пересылать через события. Сейчас конечно тоже можно, но нужно держать лишний чарт к которому не дай бог что то применишь.


Vladimir Gomonov
8274
Vladimir Gomonov 2011.07.17 15:13  
Silent:
А ChartID у них тоже может поменяться?

НЕТ.  ChartID гарантированно не меняется за всё время жизни чарта, включая перезагрузки терминала (неважно аварийные или штатные).

Поскольку работающий эксперт (и индикатор тоже) всегда закреплён на конкретном чарте, его идентификация при помощи ChartID вполне естественна.

Я этим давно пользуюсь, с самого появления MT5.

Наверное ключ к решению проблемы топикстартера тоже здесь. 

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий