Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
Evgeny Potapov
1632
Evgeny Potapov 2011.08.12 13:12 

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

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

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

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

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

Дмитрий
1460
Дмитрий 2011.08.12 13:13  
А что конкретно нужно?
Evgeny Potapov
1632
Evgeny Potapov 2011.08.12 13:42  
grell:
А что конкретно нужно?



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

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

o_o
Модератор
23712
o_o 2011.08.12 13:48  
Eugene1:

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

файл ?

память ?

Ihor Herasko
9065
Ihor Herasko 2011.08.12 13:59  
Eugene1:

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

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

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

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

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

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



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

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

o_o
Модератор
23712
o_o 2011.08.12 14:49  
WinAPI в руки.
Victor Nikolaev
Модератор
14523
Victor Nikolaev 2011.08.12 15:01  
А может просто задача не корректно поставлена.
Evgeny Potapov
1632
Evgeny Potapov 2011.08.12 15:10  
sergeev:
WinAPI в руки.

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

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

Ihor Herasko
9065
Ihor Herasko 2011.08.12 15:36  
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, который перед этим активирует окно МТ.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий