Проще всего организовать передачу команд и результатов их выполнения через сигнальные файлы в "песочнице" = каталог терминала\MQL4 или \MQL5. И Ваша программа на c#, и советники на MQL4 и MQL5 умеют их читать и писать. И даже не мешать при этом работе сканирующих антивирусов, разрешив при открытии файлов совместное чтение. Признак изменения файла - изменение его возраста или длины. Примеры кода, думаю, писать не надо, они общеупотребительны.
Я думал о таком пути, но только как о крайнем случае.
Проще всего организовать передачу команд и результатов их выполнения через сигнальные файлы в "песочнице" = каталог терминала\MQL4 или \MQL5. И Ваша программа на c#, и советники на MQL4 и MQL5 умеют их читать и писать. И даже не мешать при этом работе сканирующих антивирусов, разрешив при открытии файлов совместное чтение. Признак изменения файла - изменение его возраста или длины. Примеры кода, думаю, писать не надо, они общеупотребительны.
https://www.mql5.com/ru/articles/5563