![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Создавайте временную глобальную переменную с именем содержащим ChartId. Например "MY_EA_WORKING_<ChartId>"
В содержимое раз в секунду кладите текущее время.
ChartId всех графиков можно определить из любого эксперта. Перебираете соответствующие глобальные переменные и видите, где есть работающие эксперты.
Если даже эксперт упадет из-за ошибки - переменная есть, но по содержимому видно, что эксперт не работает.
При проверке необходимо учитывать небольшое запаздывание между выполнением экспертов на разных графиках и подтормаживание компьютера. По опыту приходится ставить 4-6 секунд, иначе при пиковой загрузке компьютера иногда можно посчитать, что проверяемого эксперта нет.
Только не надо из глобальных переменных делать оперативную память
======
Я за метод, который будет использовать ячейку памяти компьютера.
Как сделать такое - есть у кого нибудь решение?
Только не надо из глобальных переменных делать оперативную память
======
Я за метод, который будет использовать ячейку памяти компьютера.
Как сделать такое - есть у кого нибудь решение?
В памяти компьютера с ОС Windows имеется несколько программно доступных ячеек памяти. Остались от старой архитектуры. Использовал их на языках Assembler, Basic, Pascal для определения повторного запуска программы. Если программа уже когда-то запускалась - то в памяти признак. Если перезагрузить компьютер - стирается. Но в MQL отсутствует доступ к памяти, a хотелось бы без DLL
Только не надо из глобальных переменных делать оперативную память
======
Я за метод, который будет использовать ячейку памяти компьютера.
Как сделать такое - есть у кого нибудь решение?
Вы сами себе придумали ограничение, а теперь идете на принцип.
Временные глобальные переменные используются для передачи данных от одной программы в терминале в другую. Для чего их еще использовать, как не по прямому назначению?
Кроме того, их использование потокобезопасно.
С оперативной памятью получите то же самое, но делать дольше и вряд ли надежнее. Обязательно потребуется атомарный доступ.
Если терминал аварийно завершит работу, то переменная останется. Что делать в этом случае?
GlobalVariableTemp
Временные глобальные переменные существуют только во время работы клиентского терминала, после закрытия терминала они автоматически уничтожаются.
При аварийном завершении удалите переменную через F3.