Однозначное уникальное сопоставление эксперт(индикатор) -- файл возможно?

 
Есть некий эксперт, он универсален и может работать на любом ТФ и инструменте, в т.ч. на нескольких сразу.

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Urain:

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

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

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

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

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

 
TheXpert:
А ChartID у них тоже может поменяться?
 
Silent:
А ChartID у них тоже может поменяться?
Скорей всего да.
 
Interesting:
Скорей всего да.
Хм. Почему, если просто открыли/закрыли терминал?
 
Silent:
Хм. Почему, если просто открыли/закрыли терминал?

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

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

 
Interesting:

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

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

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

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

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

 

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

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


 
Silent:
А ChartID у них тоже может поменяться?

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

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

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

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

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