Примеры: Взаимодействие между MetaTrader 4 и Matlab посредством DDE

 

New article Взаимодействие между MetaTrader 4 и Matlab посредством DDE has been published:

Пошаговые инструкции по организации передачи данных от Matlab к MetaTrader 4 посредством DDE.

Поддерживаемый в MT4 механизм DDE (Dynamic data exchange) позволяет передавать данные из приложения в приложение непосредственно через RAM компьютера. Matlab обладает всей полнотой функций для реализации как клиентской, так и серверной части DDE, и нам хотелось бы воспользоваться этой возможностью.

DDE-сервер MT4 предоставляет только тиковые и только последние данные, но даже с такими ограничениями DDE-обмен предпочтительнее, например, при работе с котировками внутри баров.

Как и в статье “MT4 <-CSV->Matlab” я буду описывать последовательность создания инструмента для организации обмена.

Не забудьте разрешить передачу по DDE на вкладке “ Сервис -> Настройки -> Сервер” в вашем терминале MT4 и начнём.

Author: Dmitriy

 

Извините,но я так и не понял,для чего нужен этот самый Matlab посредством DDE??????????????????Какой ужас,я даже себе и представить не могу что это такое.

Ох и отстал же я от современного ритма.Столько изменений, а я не знаю.Кошмар,да ужас один!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

drakon писал(а):

Извините,но я так и не понял,для чего нужен этот самый Matlab посредством DDE??????????????????Какой ужас,я даже себе и представить не могу что это такое.

Ох и отстал же я от современного ритма.Столько изменений, а я не знаю.Кошмар,да ужас один!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Это очень мощный многофункциональный математический инструмент.

Не забивайте себе голову.

 

Dmitriy, а скажите пожалуйста, есть ли возможность связать MetaTrader с Матлабом посредством COM технологии? Имхо, в последних версиях Матлаба про технологию DDE пишут, что устарела... и многие dde функции внесли в раздел Obsolete Functions (ddeadv, ddeexec и пр.)...  У меня стоит Матлаб версии 7.6.0.

 

denkir писал(а):

Dmitriy, а скажите пожалуйста, есть ли возможность связать MetaTrader с Матлабом посредством COM технологии? Имхо, в последних версиях Матлаба про технологию DDE пишут, что устарела... и многие dde функции внесли в раздел Obsolete Functions (ddeadv, ddeexec и пр.)... У меня стоит Матлаб версии 7.6.0.

А MT4 - поддерживает COM?

Конечно, используя dll можно как угодно связать, но, к сожалению, это для меня - тёмный лес.

 
Добрый день! Очень интересная статья. У меня к вам вопрос - а как по DDE передать данные из MatLab, скажем, в ElWave? Мне необходимо получить данные в MatLab по DDE (здесь теперь всё ясно), после обработки их нужно передать в ElWave, и именно по DDE, поскольку требуется реалтайм. Надеюсь на Вашу помощь! Заранее спасибо!
 
startdata:
Добрый день! Очень интересная статья. У меня к вам вопрос - а как по DDE передать данные из MatLab, скажем, в ElWave? Мне необходимо получить данные в MatLab по DDE (здесь теперь всё ясно), после обработки их нужно передать в ElWave, и именно по DDE, поскольку требуется реалтайм. Надеюсь на Вашу помощь! Заранее спасибо!
Всё, сделал через Ёксель, тем более, что в MatLab 2007 функция ddeadv не работает и никто не знает, как с этим бороться.
 
startdata:
startdata:
Добрый день! Очень интересная статья. У меня к вам вопрос - а как по DDE передать данные из MatLab, скажем, в ElWave? Мне необходимо получить данные в MatLab по DDE (здесь теперь всё ясно), после обработки их нужно передать в ElWave, и именно по DDE, поскольку требуется реалтайм. Надеюсь на Вашу помощь! Заранее спасибо!
Всё, сделал через Ёксель, тем более, что в MatLab 2007 функция ddeadv не работает и никто не знает, как с этим бороться.
 
Karlo писал(а): Есть ряд вопросов) Связка Эксель -Матлаб работает в обе стороны тоесть данные которые полученны из Экселя можно обработать в Матлабе и ВЕРНУТЬ назад в Эксель таким образом применяя Пакеты Прикладных Программ (ППП) Матлаба можно выстраивать МТС сигналы которого передаются в Эксель.. а из Экселя в Торговый Терминал. Так вот вопрос Связка МТ4 - Матлаб обладает возможностью передачи  обработанных данных ОТ Матлаба в МТ4 или вывод из МТ4 так и обрываеться на Матлабе и обратного взаимодействия НЕТ?? 
startdata:
startdata:
Добрый день! Очень интересная статья. У меня к вам вопрос - а как по DDE передать данные из MatLab, скажем, в ElWave? Мне необходимо получить данные в MatLab по DDE (здесь теперь всё ясно), после обработки их нужно передать в ElWave, и именно по DDE, поскольку требуется реалтайм. Надеюсь на Вашу помощь! Заранее спасибо!
Всё, сделал через Ёксель, тем более, что в MatLab 2007 функция ddeadv не работает и никто не знает, как с этим бороться.

 

чегото не работает ddeadv.

пишу

channel=ddeinit('MT4','BID');    - все нормально, channel = 7.2920e-304

далее

rc = ddeadv(channel, 'EURUSD','disp(x)','x',[1 1]);     - rc = 1, но ничего не происходит. Что неправильно?

кстати, вы пишете, что работает адвизори(по готовности), а у меня он не пашет(выше писал), а работает как-раз реквест. как-же Вы все-таки адвизори запустили?

 
startdata:
startdata:
Добрый день! Очень интересная статья. У меня к вам вопрос - а как по DDE передать данные из MatLab, скажем, в ElWave? Мне необходимо получить данные в MatLab по DDE (здесь теперь всё ясно), после обработки их нужно передать в ElWave, и именно по DDE, поскольку требуется реалтайм. Надеюсь на Вашу помощь! Заранее спасибо!
Всё, сделал через Ёксель, тем более, что в MatLab 2007 функция ddeadv не работает и никто не знает, как с этим бороться.

Это самое в матлабе есть toolbox  Excel Link, который связывает excel и матлаб в единое целое. Но чтобы  передавать данные из excel  в матлаб в реальном времени надо чуть чуть попрограммировать в vba excel. В хелпе всё матлаба всё рассказано, правда на английском.

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