Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще теоретически есть вариант постоянных (persistent) HTTP соединений, если их поддерживает WebRequest. Тогда бы можно было без DLL, сделать HTTP-сервер во внешней программе и передавать данные и команды хоть локально, хоть через интернет.
WebRequest их не поддерживает в явном виде. То есть где-то глубоко внутри он возможно держит keepalive и не закрывает соединение, но пользователю эта внутренняя кухня не доводится. И он синхронный - на время исполнения запроса WebRequest советник стоит.
А разве штатный виндовый способ обмена сообщениями не работает? Послать в DLL или вообще в другой процесс хэндл чарта, и потом уже в обратную сторону делать SendMessage или PostMessage. Конечно над выбором самих сообщений может придется повозиться (MSDN Spy погонять), если не делать полноценный сабклассинг окон терминала - не уверен что это полностью через импорты стандартных виндовых dll можно сделать без кастомных библиотек, не проверял.
гонять Spy и самому засылать недокументированный Message в окно, это и есть не-штатный по отн. к MQL способ оповещений :-)
вообще самый простой способ - спихивать все данные сразу во внешнюю базу, чтобы та отвечала. Базы и предназначены чтобы их запрашивали :-) Самые подходящие чтобы писать потоки, то есть быстрые и маложручие - RR (round-robin), но они узко-специализированы и потому редки (в этой области имею ввиду, всякая измерительная аппаратура весьма их использует)
из более-менее универсальных, на мой взгляд более подходит MonetDB - там и данные организованы по столбцам и есть оригинальные "сокеты" - можно прямо по tcp лить сырые данные, а база сама триггерами разложит их по таблицам. Для фанатов - к базе можно прицепить R и python :-)
вообще самый простой способ - спихивать все данные сразу во внешнюю базу, чтобы та отвечала. Базы и предназначены чтобы их запрашивали :-)
Да, самый естественный подход. Передаются только последние данные.
Я использую MS SQL-Server или Access. Кстати, последние версии Access достаточно быстрые, но вообще, это не имеет особого значения т.к. последние данные все равно лежат в копиях таблиц в самой программе.
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?
Раньше для МТ4 все писал в DLL, так как язык был бедный. Это я про старые версии < 600.
Сейчас особого смысла не вижу.
Похоже, вчера нашел решение, мне надо подключить МТ5 к MS SQL Server 2017
Можно конечно через пайпы, но я их не люблю за ненадежность
ДЛЛ писать влом, вот готовый пакет для подключения MT4, MT5-32, MT5-64 к C#
Все гнутое, пакет развивается
http://mtapi4.net
Похоже, вчера нашел решение, мне надо подключить МТ5 к MS SQL Server 2017
Можно конечно через пайпы, но я их не люблю за ненадежность
ДЛЛ писать влом, вот готовый пакет для подключения MT4, MT5-32, MT5-64 к C#
Все гнутое, пакет развивается
http://mtapi4.net
Утром все установил, смысл такой. Во первых проект с открытым кодом, то есть исходники на MQL4, MQL5, C#, C++ CLR и вдобавок все в уже откомпилированном виде. Ставятся легко, если будете ставить, только на c:\Program Files и c:\Program Files(x86). На другие диски почему-то не ставиться, об этом пишут на сайте. Нужна Visual Studio 2015, если будете писать на шарпе.
Пока изучаю сырцы, если эта магия заработает, будет здорово.
Вообще я давно связывал МТ4 с шарпом через прослойку на C++ CLR, похоже, тут тот же подход.
Вообще, я не собираюсь уйти с MQL5, просто нужен доступ к MS SQL Server 2017. Кстати, для Сан Саныча, VS 2017 и этот сервер поддерживают R.
Сырцы лежат на Githab, постоянно народ пишет багфиксы.
Утром все установил, смысл такой. Во первых проект с открытым кодом, то есть исходники на MQL4, MQL5, C#, C++ CLR и вдобавок все в уже откомпилированном виде. Ставятся легко, если будете ставить, только на c:\Program Files и c:\Program Files(x86). На другие диски почему-то не ставиться, об этом пишут на сайте. Нужна Visual Studio 2015, если будете писать на шарпе.
Пока изучаю сырцы, если эта магия заработает, будет здорово.
Вообще я давно связывал МТ4 с шарпом через прослойку на C++ CLR, похоже, тут тот же подход.
Вообще, я не собираюсь уйти с MQL5, просто нужен доступ к MS SQL Server 2017. Кстати, для Сан Саныча, VS 2017 и этот сервер поддерживают R.
Сырцы лежат на Githab, постоянно народ пишет багфиксы.
по отзывам от его пользователей - он нещадно тормозит и подглючивает. Впрочем Ренат уже высказался (правда про другую DLL), (в целом так) "если вы втягиваете для простых вещей, целую виртуальную машину CLR, то чего вы от нас ждёте ?? оно и будет тормозить и глючить.."
Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.
А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.
По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.
Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.
А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.
По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.
Наврал, вот время летит, думал год прошел ))
Вот эти тесты https://www.mql5.com/ru/forum/165687
Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.
А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.
По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.
он там не просто мостик stdC<->C#, mt4api там ещё и данные сериализует/десериализует туда обратно. На чём в сумме и оттормаживает
по поводу "давно обещали", я тоже про то помню :-) ждёмс "нативный интерфейс SQLite" уже давно-давно..походу этого не будет никогда.
В общем, как только разработчики найдут время и силы для написания большего количества"народных" библиотек (и внедрения фич типа доступа к БД в язык??) будет совсем круто. С быстродействием MQL5 все хорошо, не хватает обвязки.
По поводу выбора MS MQL 2017 - это не мой выбор )) Себе я беру что-то попроще с доступом через нативную DLL. Например SCLIte, MS SQL Compact или другое.