Исполнить скрипт по команде извне

 

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

То есть я хочу чтобы стороннее приложение под Windows обратилось к МТ,

а тот, в ответ исполнил скрипт.

Как это делается?

Может ли МТ прослушивать какой-либо порт итп?

 
А что конкретно нужно?
 
grell:
А что конкретно нужно?



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

А я не знаю как передать это МТ

 
Eugene1:

Может ли МТ прослушивать какой-либо порт итп?

файл ?

память ?

 
Eugene1:

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

То есть я хочу чтобы стороннее приложение под Windows обратилось к МТ,

а тот, в ответ исполнил скрипт.

Как это делается?

Может ли МТ прослушивать какой-либо порт итп?

В МТ запускаете зацикленный скрипт, который с определенной периодичностью запрашивает данные у DLL, связанной с вашим процессом. Процесс в нужное время устанавливает флаг готовности данных через эту же DLL (shared memory), а скрипт считывает данные и посылает торговый приказ в МТ.
 
не могу кодом воспроизвести, нужно гуглить, но подозреваю, что можно терминалу передать из внешнего процесса сообщение о нажатии "горячей клавиши" на которую назначен скрипт
 
Scriptong:
В МТ запускаете зацикленный скрипт, который с определенной периодичностью запрашивает данные у DLL, связанной с вашим процессом. Процесс в нужное время устанавливает флаг готовности данных через эту же DLL (shared memory), а скрипт считывает данные и посылает торговый приказ в МТ.



Мне представляется, что если так зациклить, то это будет мешать приёму очередных тиков.

Эмулировать нажатие горячей клавиши было бы хорошо...

 
WinAPI в руки.
 
А может просто задача не корректно поставлена.
 
sergeev:
WinAPI в руки.

Так мне не понять.

Что в МТ для этих целей предусмотрено?

 
Eugene1:

Эмулировать нажатие горячей клавиши было бы хорошо...

Передать комбинацию клавиш окну МТ, к сожалению, не получилось. Можно лишь эмулировать нажатие клавиш при активном окне МТ:

   keybd_event(VK_CONTROL, SCAN_CONTROL, 0, 0);
   keybd_event(VK_B, SCAN_A, 0, 0);
   keybd_event(VK_B, SCAN_A, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_CONTROL, SCAN_CONTROL, KEYEVENTF_KEYUP, 0);

Это нажатие и отпускание Ctrl+B. Коды именованных констант смотреть тут - http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx.

Сей код вам нужно будет реализовать на стороне своего процесса Windows, который перед этим активирует окно МТ.

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