Межпрограммное взаимодействие...

 
К сожалению, я не нашел ответа на свой вопрос и поэтому задаю его тут. Существует ли в MQL4 штатные механизмы межпрограммного взаимодействия? Могу ли я, например, установить по TCP/IP соединение с экспертом, написанным и запущенным в виде программы-сервера? Есть ли другие способы межпрограммного взаимодействия? Ogogon.
 
С некоторой натяжкой -- существуют. В mql4-программе можно объявлять обычную, т.е. не АХ, пользовательскую библиотеку (dll), написанную на других языках, например, С, а она уже может делать всё, что душа пожелает.
 
А существует dll для работы с TCP/IP? Скорее всего, это весьма типовая ситуация. Если нет - где можно прочесть спецификацию по созданию dll-плагинов под MT4? Ogogon.
 

Многое есть на здешних форумах. Вроде бы кто-то здесь делал и такую длл. В том числе и рекомендации разбросаны по всем здешним форумам. Надеюсь, когда-нибудь оно всё соберётся в одном разделе. А пока что попытаться найти интересующее можно только поиском. Или автор откликнется.

З.Ы. Можно организовать взаимодействие через DDE, однако разработчики говорят, что в следующей версии терминала они от DDE откажутся, т.е. работа программ с этим типом обмена данными в будущем не гарантируется. Правда, взамен обещают объекты.

 
ogogon:
А существует dll для работы с TCP/IP? Скорее всего, это весьма типовая ситуация. Если нет - где можно прочесть спецификацию по созданию dll-плагинов под MT4? Ogogon.

Полезно будет заглянуть ...\MetaTrader\experts\samples\DLLSample

 
ogogon:
К сожалению, я не нашел ответа на свой вопрос и поэтому задаю его тут. Существует ли в MQL4 штатные механизмы межпрограммного взаимодействия? Могу ли я, например, установить по TCP/IP соединение с экспертом, написанным и запущенным в виде программы-сервера? Есть ли другие способы межпрограммного взаимодействия? Ogogon.

штатный метододов особых нет, есть правда DDE ... т е от MT можно получать к примеру котировки

если Вам надо давать команды в эксперт из внешнего приложения

получать информацию из эксперта во внешнее приложение - хороший путь это создание DLL

протокол которым будут обменияваться приложение и эксперт может быть вполне и TCP/IP

для этого необходимо уметь писать приложения работающие по протоколу TCP/IP

благо в интернете навалом таких примеров...

---

еще один способ c примерами я описал в статье - которая вот вот должна выйти...

правка
Интеграция MT с MS SQL сервером (готова к публикации)

// YURAZ 2008 YZMSSQLExpertSample
//
// Пример DLL интеграция MT4 с MS SQL 2000
//
// ADO MS SQL SERVER
//
// используемое программное обеспечение
//
// VISUAL C++ 6, SP5, MDAC 7, MS SQL2000 + SP4

 
Непосредственное общение MT4 эксперта можно реализовать через оконные сообщения windows и GlobalAtom (и то и др. из WinAPI). Вариант мною проверенный, реализация относительно простая, кода не много. Если надо могу поискать сам код...
 
Хм. Насколько я сталкивался с такими вопросами, его суть сводиться к удаленному исполнению алгоритма. То есть я даю советника в аренду с кодом доступа в библиотеке (в которой собственно алгоритм работы). То есть я и советник продал (в смысле в аренду сдал) и от взлома обезопасился. Я правда такую вещь писать не стал, но по всем прикидкам - можно. Самое слабое место это передача данных. Лег сервер с библиотекой, все клиенты сосут лапу.
 
YuraZ:

еще один способ c примерами я описал в статье - которая вот вот должна выйти...

правка
Интеграция MT с MS SQL сервером (готова к публикации)

// YURAZ 2008 YZMSSQLExpertSample
//
// Пример DLL интеграция MT4 с MS SQL 2000
//
// ADO MS SQL SERVER
//
// используемое программное обеспечение
//
// VISUAL C++ 6, SP5, MDAC 7, MS SQL2000 + SP4

ОК! бум ждать выхода статьи... ;)

Почитаю, но токма ради интереса, ибо буквально в субботу снёс это "нечто".

Ещё на стадии инсталляции посетили смутные сомнения...

Кааак началось!!! это поставь, то проапдейть, сие скачай... :)))

Благо инета немеряно, одних тока скачек наверное под гиг пришлось.

Правда было усё типа х-2005 (на халяву... :)

-

В общем оставил пока Microsoft Visual C++ 2005 Express Edition,

точнее всё что находиться в папке Microsoft Visual Studio 8

Дабы сравнить с другим продуктом, более мне приглянувшмся на первый взгляд: Dev-Cpp

-

Сам же планирую по старинке, накачивать мускулЪ :)

Как-то там всё проще и шустрее...

 
kombat:
YuraZ:

еще один способ c примерами я описал в статье - которая вот вот должна выйти...

правка
Интеграция MT с MS SQL сервером (готова к публикации)

// YURAZ 2008 YZMSSQLExpertSample
//
// Пример DLL интеграция MT4 с MS SQL 2000
//
// ADO MS SQL SERVER
//
// используемое программное обеспечение
//
// VISUAL C++ 6, SP5, MDAC 7, MS SQL2000 + SP4

ОК! бум ждать выхода статьи... ;)

Почитаю, но токма ради интереса, ибо буквально в субботу снёс это "нечто".

Ещё на стадии инсталляции посетили смутные сомнения...

Кааак началось!!! это поставь, то проапдейть, сие скачай... :)))

Благо инета немеряно, одних тока скачек наверное под гиг пришлось.

Правда было усё типа х-2005 (на халяву... :)

-

В общем оставил пока Microsoft Visual C++ 2005 Express Edition,

точнее всё что находиться в папке Microsoft Visual Studio 8

Дабы сравнить с другим продуктом, более мне приглянувшмся на первый взгляд: Dev-Cpp

-

Сам же планирую по старинке, накачивать мускулЪ :)

Как-то там всё проще и шустрее...



в принципе если не компилировать достаточно установить MS SQL 2000 ( думаю что Developer лучше всего )

---

если необходимо компилировать DLL развивать ...

то надо бы MICROSOFT VISUAL C++ 6.0, полагаю что можно и 7.0 и 8.0

MDAC как правило стоит у всех по умолчанию ... он ставиться либо с MS OFFICE либо с другими продуктами

либо отдельно


тот кто пишет под C, и юзает MS SQL, наверняка имеет необходимые сервис паки

я лишь описал какой набор использовал


полагаю что работать будет если у VISAUL C++ + SP6 а не + SP5

более того! работать будет даже если у вас голый VISUAL C++ без SPx и MS SQL без SPx

---

MYSQL - шустрее будет под UNIX ставить - но сие требует дополнительной машины

---

интеграция описана именно для MS SQL, но используемый вариант можно применить и для других баз

---

не так страшен черт :-)



 

Aver писал (а):
Хм. Насколько я сталкивался с такими вопросами, его суть сводиться к удаленному исполнению алгоритма. То есть я даю советника в аренду с кодом доступа в библиотеке (в которой собственно алгоритм работы). То есть я и советник продал (в смысле в аренду сдал) и от взлома обезопасился. Я правда такую вещь писать не стал, но по всем прикидкам - можно. Самое слабое место это передача данных. Лег сервер с библиотекой, все клиенты сосут лапу.

Конечно можно


1 клиенту отдается голый исполнительский код ( вплоть до исходника )

2 клиенту дается имя и пароль для доступа в базу


----

лег сервер ... рассылающий сигналы - это самое слабое место - должен быть запасной - стоящий в горячем резерве

между серверами обмен - "репликация" - после изменений в базе.

как только main server лег вступает в работу резервный! как только main сервер встал управление возвращается ему после репликации с резерва

---

это одно из применений