Как отдать в МТ5 команду на сделку из сторонней программы ?

 

Привет

есть расчетная часть которая работает в отдельной программе.

Как  можно в МТ5 получить команду на совершение сделки из вне,

костыльные решения типа чтения файла не подходят. 

желательно что то асинхронное - что то дернуть в МТ чтобы он дальше сам начал что то делать.

 
Nemoys:

Привет

есть расчетная часть которая работает в отдельной программе.

Как  можно в МТ5 получить команду на совершение сделки из вне,

костыльные решения типа чтения файла не подходят. 

желательно что то асинхронное - что то дернуть в МТ чтобы он дальше сам начал что то делать.

"Дёрнуть" - это значит, что в MetaTrader 5 должен работать советник. И он должен слушать. Должен ждать команду.
 
Karputov Vladimir:
"Дёрнуть" - это значит, что в MetaTrader 5 должен работать советник. И он должен слушать. Должен ждать команду.
Так вопрос в том - как ждать то. не нашел никаких лазеек - все события внутренние была надежда на OnChartEvent - не срабатывает на внешних сообщениях. Сервер на сокетах не поднять пайпы работают в цикле - асинхронных методов нету. как жить то?
 
Karputov Vladimir:
"Дёрнуть" - это значит, что в MetaTrader 5 должен работать советник. И он должен слушать. Должен ждать команду.
Напиример, чере named pipes канал, вполне себе асинхронно получится. Сервер во внешней программе, в MQL есть библиотека с поддержкой НП.
 
Alexey Volchanskiy:
Напиример, чере named pipes канал, вполне себе асинхронно получится. Сервер во внешней программе, в MQL есть библиотека с поддержкой НП.

Прошу - ткни носом где там асинхронная часть

может я не так искал

я увидел только создание клиента в МТ - потом соединенеие его к серверу отправка серверу

а прием только 1 раз по завершении отправки с последующим выходом 

 
Nemoys:

Прошу - ткни носом где там асинхронная часть

может я не так искал

я увидел только создание клиента в МТ - потом соединенеие его к серверу отправка серверу

а прием только 1 раз по завершении отправки с последующим выходом 

Я вспомнил пример из MSDN - там клиент ждал сообщение по пайпу от сервера. Я думаю, легко найти, только искать в части win 32 API, не .NET 

Так... вроде вот это , хотя не уверен https://msdn.microsoft.com/en-us/library/windows/desktop/aa365592%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 

 

Алексей - извини конечно но приведенный тобой пример никак не асинхронный

получается советник будет всегда в этом цикле 

  do

   { 
   // Read from the pipe. 
 
      fSuccess = ReadFile( 
         hPipe,    // pipe handle 
         chBuf,    // buffer to receive reply 
         BUFSIZE*sizeof(TCHAR),  // size of buffer 
         &cbRead,  // number of bytes read 
         NULL);    // not overlapped 
 
      if ( ! fSuccess && GetLastError() != ERROR_MORE_DATA )
         break; 
 
      _tprintf( TEXT("\"%s\"\n"), chBuf );  

} while ( ! fSuccess); // repeat loop if ERROR_MORE_DATA  

 
Nemoys:

Алексей - извини конечно но приведенный тобой пример никак не асинхронный

получается советник будет всегда в этом цикле 

  do

} while ( ! fSuccess); // repeat loop if ERROR_MORE_DATA  

Может вы как-то так по своему, по особенному понимаете асинхронность? Как вы ее понимаете?
 
Nemoys:

Привет

есть расчетная часть которая работает в отдельной программе.

Как  можно в МТ5 получить команду на совершение сделки из вне,

костыльные решения типа чтения файла не подходят. 

желательно что то асинхронное - что то дернуть в МТ чтобы он дальше сам начал что то делать.

Дерните разработчиков. 
 

Алексей Тарабанов:
Дерните разработчиков. 

 

 

А это кто и где? 

 
Алексей Тарабанов:
Дерните разработчиков. 
Разработчики никогда этого не сделают, это противоречит их основной политике и идеологии.
Причина обращения: