Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а как узнать если запущен советник на другом компьютере.
Допустим торгует советник по времени 3 часа в день сделок открытых нет.
я ставлю совтеника на другой комп (ВПС) и не знаю,, что друга копия запущена на старом ВПС. Как узнать ?
Что то записать в историю видимо и анализировать ее. Предложенная выше отложка как вариант.
Сохраняйте не 1 и 0, а текущее время. И периодически его обновляйте (например, раз в 10 секунд).
Если при запуске советника сохраненное время устарело больше, чем на 10 секунд, значит он отвалился аварийно (или вообще не запущен). Иначе — советник активен.
Куда сохранять — зависит от задачи. Если в рамках одного терминала, подойдут гл. переменные. Если в рамках компьютера — файл. Если в рамках счета — отложенный ордер (кодировать в СЛ/ТП/цене входа).
Сохраняйте не 1 и 0, а текущее время. И периодически его обновляйте (например, раз в 10 секунд).
Если при запуске советника сохраненное время устарело больше, чем на 10 секунд, значит он отвалился аварийно (или вообще не запущен). Иначе — советник активен.
Куда сохранять — зависит от задачи. Если в рамках одного терминала, подойдут гл. переменные. Если в рамках компьютера — файл. Если в рамках счета — отложенный ордер (кодировать в СЛ/ТП/цене входа).
Самый надежный способ через лок файл (подобные технологии используются в nix системах). Эксперт при запуске открывает/создает файл с именем символа и правами на запись. Если открытие не удалось потому что файл заблокирован - значит другой такой же эксперт запущен и держит его в открытом состоянии.
При этом, как бы не вылетел эксперт - файл должен освободится. Т.е. его даже не обязательно закрывать или удалять на деинициализации.
При этом, как бы не вылетел эксперт - файл должен освободится. Т.е. его даже не обязательно закрывать или удалять на деинициализации.
Если это на Windows, то возможны варианты.
Если это на Windows, то возможны варианты.
Какие варианты? Все дескрипторы держит не советник, а терминал. В случае любого вылета эксперта - терминал закрывает все дескрипторы. Если вылетает терминал целиком - Windows автоматически закрывает все дескрипторы. Пример вылета терминала и 100% работы лок файлов. В течении 10 секунд, до вылета эксперта вы не можете запустить эксперт в другом окне этого же символа. При этом, вариант с локом значительно проще и надежнее всех остальных велосипедов.
На реальном эксперте, через OnInit делать нельзя, по скольку в случае перезапуска эксперта или смены сета он не запустится. Инициализация эксперта происходит перед выгрузкой старой копии, которая не успевает освободить дескриптор. По этому на реальном эксперте нужно делать так:
Какие варианты? Все дескрипторы держит не советник, а терминал. В случае любого вылета эксперта - терминал закрывает все дескрипторы. Если вылетает терминал целиком - Windows автоматически закрывает все дескрипторы. Пример вылета терминала и 100% работы лок файлов. В течении 10 секунд, до вылета эксперта вы не можете запустить эксперт в другом окне этого же символа. При этом, вариант с локом значительно проще и надежнее всех остальных велосипедов.
Неоднократно нарывался на залоченый файл после вылета советника. До перезагрузки терминала открыть его не получалось.
Неоднократно нарывался на залоченый файл после вылета советника. До перезагрузки терминала открыть его не получалось.
Скорее всего, вы нарывались на это в тестере. Тестер не то же самое что реальный терминал. Тестер в MT5 от версии к версии изрядно глючит и после вылета может зависнуть не закрыв дескрипторы. К реальному эксперту это не относится. Там все работает стабильно.
Но стоит сделать замечание, что на Linux или Mac нужно проверять по скольку там все работает не нативно, через вино. Как там осуществляется проброс локов - не тестировал.Какие варианты? Все дескрипторы держит не советник, а терминал. В случае любого вылета эксперта - терминал закрывает все дескрипторы. Если вылетает терминал целиком - Windows автоматически закрывает все дескрипторы. Пример вылета терминала и 100% работы лок файлов. В течении 10 секунд, до вылета эксперта вы не можете запустить эксперт в другом окне этого же символа. При этом, вариант с локом значительно проще и надежнее всех остальных велосипедов.
На реальном эксперте, через OnInit делать нельзя, по скольку в случае перезапуска эксперта или смены сета он не запустится. Инициализация эксперта происходит перед выгрузкой старой копии, которая не успевает освободить дескриптор. По этому на реальном эксперте нужно делать так:
Так же сделал важное замечание по поводу работы на реальном эксперте. Там данную проверку нужно выносить в OnTick.
Скорее всего, вы нарывались на это в тестере. Тестер не то же самое что реальный терминал. Тестер в MT5 от версии к версии изрядно глючит и после вылета может зависнуть не закрыв дескрипторы. К реальному эксперту это не относится. Там все работает стабильно.
Тестер от терминала я отличаю.
Возможно, что-то изменилось в работе с файлами. Но я бы не советовал решения, хорошо их не протестировав.