Подкинуть -- нет. А если перекомпилировать в MetaEditor из той же папки, откуда и терминал, то MetaEditor терминалу об этом скажет, и терминал подхватит новую версию.
Эт я знаю, дело в том, что при компиляции происходит инициализации активного (прицепленного к графику) эксперта.
Другими словами это все-равно, что перезапустить терминал.
Задача как раз стоит в том, что бы не было переинициализации, т.е. появились изменения в эксперте и подхватились автоматом.
Может кто-нибудь вообще знает как происходит подгрузка эксперта на уровне процессов.
Эксперт сразу в память грузится и потом оттуда читается или каждый раз перечитывается?
Где об этом почитать можно.
Если вам необходимо, чтобы измененный перекомпилированный эксперт подхватил текущие актуальные значения - пользуйтесь глобальными переменными клиентского терминала, или файловыми операциями.
Вы наверное не совсем меня поняли :) мне нужно наоборот - чтобы терминал без перезагрузки подхватил текущие актуальные значения експерта.
Грубо говоря есть, например, такая ситуация:
1. Есть запущенный эксперт:
2. в теле strart выполняется Alert ("OLD expert");
3. эксперт изменился теперь там Alert ("NEW expert");
4. Новый эксперт скомпилирован с тем же именем, но в другом терминале (чтобы не было переинициализации).
5. Старый експерт заменен на новый путем простого перезаписывания в проводнике.
Надо: чтобы эксперт выводил "NEW expert".
К сожалению просто перезапись старого эксперта на новый не помогает.
Вот я и спрашиваю может есть еще способы?
Наподобие антивируса, который обновляя сигнатурные базы в фоновом режиме работает без перезагрузки? Да?
Сигнатурные записи - это файлы. Антивирус скачал файлы, распаковал их на диске, а потом считал информацию в оперативную память. Аналог моего прошлого ответа - пользуйтесь файловыми операциями.
А при обновлении модулей ядра, антивирус отключается на долю секунды, а затем снова загружается. Это не заметно, но происходит именно перезагрузка. Иногда (очень редко) даже появляется всплывающее окошко, информирующее о том что требуется перезагрузка операционки.
Насколько я понимаю, при работающем эксперте, сама программа (сам эксперт) находится в оперативной памяти. Вся структура, весь алгоритм, со всеми значениями переменных, логикой и т.п. Вы хотите изменить структуру, изменить логику действия программы которая в работе, работает по предыдущему алгоритму. Это можно сделать не выгружая старую структуру/логику из оперативной памяти? Путем добавления новых примочек, путем изменения существующих функций не затрагивая значения текущих переменных - все это сделать прямо в работающем эксперте, прямо в оперативной памяти? Наверное все-таки эксперта придется выгрузить из оперативной памяти и запустить на выполнение, снова загрузить в оперативную память новую структуру, нового эксперта. Прямо в работе можно изменять значения переменных, но не логику программы.
Когда обновляется браузер, например FireFox, он просит перезагрузку. Не так ли?
Хотя я могу сильно ошибаться, этот вопрос к профессиональным программистам.
MetaEditor(?) и Terminal работают в связке. При компиляции соотв. терминалу приходит событие.
Ну, допустим, что скомпилировать можно и в другом Терминале/MetaEditorе, так что событие терминалу может и не приходить.
Интересно, а если логику вынести во внешний файл, эксперт ее подхватит?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, тут такой вопрос возник.
Терминал уже запущен и к графику уже прицеплен советник если в процессе работы подкинуть этот же советник (имеется в виду совтеник с таким же именем, но с изменениями) в скомпилированном виде - он подхватится терминалом или нужно перезапустить терминал (експерт)?
Заранее спасибо.