с очередью сообщений окна, которые предоставляет user32.dll.
спасибо конечно за идею и ссылки, но я нашел более элегантное решение посредством глобальных переменных Windows, даже можно реализовать свой DDE с любым периодом обновления, реализовать связь советника со своим софтом и при этом не нужно писать DLL.
Импортируете DLL в советник и дальше используете эти функции, по названию функций думаю понятно что они делают
#import "kernel32.dll"string GlobalFindAtomA (string lpString);
int GlobalGetAtomNameA(int nAtom, string lpBuffer, int nSize);
int GlobalAddAtomA (string lpString);
int GlobalDeleteAtom (int nAtom);
#import
В своей программе просто считываем эти переменные, конечно не забываем их удалять после прочтения, а то они так и будут висеть в памяти Windows.
спасибо конечно за идею и ссылки, но я нашел более элегантное решение посредством глобальных переменных Windows, даже можно реализовать свой DDE с любым периодом обновления, реализовать связь советника со своим софтом и при этом не нужно писать DLL.
Импортируете DLL в советник и дальше используете эти функции, по названию функций думаю понятно что они делают
В своей программе просто считываем эти переменные, конечно не забываем их удалять после прочтения, а то они так и будут висеть в памяти Windows.
Хорошо конечно, но как-то не интересно. Можно было бы в каждом из взаимодействующих приложений
написать свой обработчик сообщений и обмениваться сообщениями между окнами, принадлежащими разным классам со своими собственными
Изумительно примитивный механизм межпроцессорного взаимодействия из времен Windows 3.1 уже нет никаких сил тащить дальше.
Никакого
желания нет портить свой код и тянуть за собой страшненную DDE
библиотеку, которая фактически сохранилась исключительно для работы с
Экселем. У нас гораздо более мощные возможности в языке MQL5.
Изумительно примитивный механизм межпроцессорного взаимодействия из времен Windows 3.1 уже нет никаких сил тащить дальше.
Никакого
желания нет портить свой код и тянуть за собой страшненную DDE
библиотеку, которая фактически сохранилась исключительно для работы с
Экселем. У нас гораздо более мощные возможности в языке MQL5.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Требуется получать котировки в свою программу из mt4 по запросу, какие методы реализации можете предложить, желательно с рабочими примерами.
Например по запросу из своей программы требуется получить информацию по последним 10 свечам(open, close) H1 Eurusd.
MT4 в основном будет использоваться как источник котировок, если знаете другое ПО или веб сервис для получения котировок с API, прошу поделится.
Лучше всего разработать для МТ4 скрипт, работающий в цикле на каком-либо графике.
Этот скрипт через свою маленькую DLL-программку создает невидимое окно(Windows).
Дальнейший обмен вашей программы с упомянутым скриптом будет осуществляться через сообщения очереди сообщений
данного окна(Windows ).
Получим такую схему обмена:
Скрипт<-->DLL<-->Очередь сообщений окна<-->ваша программа.
--------------------------------------------------------------------------------
Рабочие примеры привести не могу, давно это было.
-----------------------------------------------------------------------------
Кстати, вот здесь на форуме пример, упрощающий жизнь - окно можно создать прямо в MQL4-программе с помощью импорта штатной MS Windows - user32.dll.
Вот ссылка на эту ветку - https://www.mql5.com/ru/forum/132050, т.е. свою DLL даже и писать не надо, а просто использовать те функции по работе
с очередью сообщений окна, которые предоставляет user32.dll.
Лучше всего разработать для МТ4 скрипт, работающий в цикле на каком-либо графике.
Этот скрипт через свою маленькую DLL-программку создает невидимое окно(Windows).
Дальнейший обмен вашей программы с упомянутым скриптом будет осуществляться через сообщения очереди сообщений
данного окна(Windows ).
Получим такую схему обмена:
Скрипт<-->DLL<-->Очередь сообщений окна<-->ваша программа.
--------------------------------------------------------------------------------
Рабочие примеры привести не могу, давно это было.
-----------------------------------------------------------------------------
Кстати, вот здесь на форуме пример, упрощающий жизнь - окно можно создать прямо в MQL4-программе с помощью импорта штатной MS Windows - user32.dll.
Вот ссылка на эту ветку - https://www.mql5.com/ru/forum/132050, т.е. свою DLL даже и писать не надо, а просто использовать те функции по работе
с очередью сообщений окна, которые предоставляет user32.dll.
спасибо конечно за идею и ссылки, но я нашел более элегантное решение посредством глобальных переменных Windows, даже можно реализовать свой DDE с любым периодом обновления, реализовать связь советника со своим софтом и при этом не нужно писать DLL.
Импортируете DLL в советник и дальше используете эти функции, по названию функций думаю понятно что они делают
В своей программе просто считываем эти переменные, конечно не забываем их удалять после прочтения, а то они так и будут висеть в памяти Windows.спасибо конечно за идею и ссылки, но я нашел более элегантное решение посредством глобальных переменных Windows, даже можно реализовать свой DDE с любым периодом обновления, реализовать связь советника со своим софтом и при этом не нужно писать DLL.
Импортируете DLL в советник и дальше используете эти функции, по названию функций думаю понятно что они делают
В своей программе просто считываем эти переменные, конечно не забываем их удалять после прочтения, а то они так и будут висеть в памяти Windows.Хорошо конечно, но как-то не интересно. Можно было бы в каждом из взаимодействующих приложений
написать свой обработчик сообщений и обмениваться сообщениями между окнами, принадлежащими разным классам со своими собственными
обработчиками сообщений.
Нашел про атомы в MSDN, чтобы иметь под рукой сделаю ссылку: http://msdn.microsoft.com/en-us/library/ms649053%28VS.85%29.aspx
Следует определится, как по мне, кто будет генерить поток событий - скрипт, эксперт или индюк.
Промелькнуло сообщение о систематической потере тиков в индюке. ГИП об этом говорил, и исчез...
Сам знаю, что зацыкленный скрипт вместо Sleep(1) делает его на 14-15 милисекунд дольше.
Ловите, что осталось - называется.
Ладно для истории чепуха (имхо), но ведь рэквоты становятся понятны.
Поезд ушел.
;)
Хорошо конечно, но как-то не интересно. Можно было бы в каждом из взаимодействующих приложений
написать свой обработчик сообщений и обмениваться сообщениями между окнами, принадлежащими разным классам со своими собственными
обработчиками сообщений.
Нашел про атомы в MSDN, чтобы иметь под рукой сделаю ссылку: http://msdn.microsoft.com/en-us/library/ms649053%28VS.85%29.aspx
Следует определится, как по мне, кто будет генерить поток событий - скрипт, эксперт или индюк.
Промелькнуло сообщение о систематической потере тиков в индюке. ГИП об этом говорил, и исчез...
Сам знаю, что зацыкленный скрипт вместо Sleep(1) делает его на 14-15 милисекунд дольше.
Ловите, что осталось - называется.
Ладно для истории чепуха (имхо), но ведь рэквоты становятся понятны.
Поезд ушел.
;)
Для моего приложения "свежесть" тиков не столь критична, торговать по этим данным не собираюсь :)
типа - просто "зарисоваться"?
Лучче Ринатовского DDЕ нет ничего у МТ.
Жаль в пятёре этого штатного средства уже нет.
Потому - ждите диагноз:
"КРИВОРУКОСТЬ усугублённая непониманием проблем потоковой многозадочности..."
;)
типа - просто "зарисоваться"?
Лучче Ринатовского DDЕ нет ничего у МТ.
Жаль в пятёре этого штатного средства уже нет.
Потому - ждите диагноз:
"КРИВОРУКОСТЬ без понимания проблем потоковой многозадочности..."
;)
я уже отвечал почему DDE мне не подходит, он выдает только последнюю цену, а тут по запросу я могу получить цены по нескольким барам
я уже отвечал почему DDE мне не подходит, он выдает только последнюю цену, а тут по запросу я могу получить цены по нескольким барам
Удачи с барами!
А то наш нервный тик точно вам ни к чему.
;)
Только в барах уже не котиры, а пыль истории...
Менять тему топика? или как?
Renat по поводу вашего любимого DDE :)
Изумительно примитивный механизм межпроцессорного взаимодействия из времен Windows 3.1 уже нет никаких сил тащить дальше.
Никакого желания нет портить свой код и тянуть за собой страшненную DDE библиотеку, которая фактически сохранилась исключительно для работы с Экселем. У нас гораздо более мощные возможности в языке MQL5.
https://www.mql5.com/ru/forum/2254/page1#comment_27510
Renat по поводу вашего любимого DDE :)
Изумительно примитивный механизм межпроцессорного взаимодействия из времен Windows 3.1 уже нет никаких сил тащить дальше.
Никакого желания нет портить свой код и тянуть за собой страшненную DDE библиотеку, которая фактически сохранилась исключительно для работы с Экселем. У нас гораздо более мощные возможности в языке MQL5.
https://www.mql5.com/ru/forum/2254/page1#comment_27510
кто бы спорил.
"old tick..."
Ничего личного - бизнес.