Экспорт данных - страница 3

 
Stanislav Korotky:
Еще теоретически есть вариант постоянных (persistent) HTTP соединений, если их поддерживает WebRequest. Тогда бы можно было без DLL, сделать HTTP-сервер во внешней программе и передавать данные и команды хоть локально, хоть через интернет.

WebRequest их не поддерживает в явном виде. То есть где-то глубоко внутри он возможно держит keepalive и не закрывает соединение, но пользователю эта внутренняя кухня не доводится. И он синхронный - на время исполнения запроса WebRequest советник стоит.

Stanislav Korotky:

А разве штатный виндовый способ обмена сообщениями не работает? Послать в DLL или вообще в другой процесс хэндл чарта, и потом уже в обратную сторону делать SendMessage или PostMessage. Конечно над выбором самих сообщений может придется повозиться (MSDN Spy погонять), если не делать полноценный сабклассинг окон терминала - не уверен что это полностью через импорты стандартных виндовых dll можно сделать без кастомных библиотек, не проверял.

гонять Spy и самому засылать недокументированный Message в окно, это и есть не-штатный по отн. к MQL способ оповещений :-)

вообще самый простой способ - спихивать все данные сразу во внешнюю базу, чтобы та отвечала. Базы и предназначены чтобы их запрашивали :-) Самые подходящие чтобы писать потоки, то есть быстрые и маложручие - RR (round-robin), но они узко-специализированы и потому редки (в этой области имею ввиду, всякая измерительная аппаратура весьма их использует)

из более-менее универсальных, на мой взгляд более подходит MonetDB - там и данные организованы по столбцам и есть оригинальные "сокеты" - можно прямо по tcp лить сырые данные, а база сама триггерами разложит их по таблицам. Для фанатов - к базе можно прицепить R и python :-)

 
Maxim Kuznetsov:

вообще самый простой способ - спихивать все данные сразу во внешнюю базу, чтобы та отвечала. Базы и предназначены чтобы их запрашивали :-) 

Да, самый естественный подход. Передаются только последние данные.

Я использую MS SQL-Server или Access. Кстати, последние версии Access достаточно быстрые, но вообще, это не имеет особого значения т.к. последние данные все равно лежат в копиях таблиц в самой программе.

 
Alexey Oreshkin:
Допустим всю логику я хочу описать не на мкл а где-то в другом месте, а от мт мне нужен тока поток данных и история, при запросе.
Кто как решает данную задачу ?

Раньше для МТ4 все писал в DLL, так как язык был бедный. Это я про старые версии < 600.

Сейчас особого смысла не вижу.

 

Похоже, вчера нашел решение, мне надо подключить МТ5 к MS SQL Server 2017

Можно конечно через пайпы, но я их не люблю за ненадежность

ДЛЛ писать влом, вот готовый пакет для подключения MT4, MT5-32, MT5-64 к C#

Все гнутое, пакет развивается

http://mtapi4.net 

 
Alexey Volchanskiy:

Похоже, вчера нашел решение, мне надо подключить МТ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, постоянно народ пишет багфиксы.

 
Alexey Volchanskiy:

Утром все установил, смысл такой. Во первых проект с открытым кодом, то есть исходники на 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, то чего вы от нас ждёте ?? оно и будет тормозить и глючить.."
 
Maxim Kuznetsov:
по отзывам от его пользователей - он нещадно тормозит и подглючивает. Впрочем Ренат уже высказался (правда про другую DLL), (в целом так) "если вы втягиваете для простых вещей, целую виртуальную машину CLR, то чего вы от нас ждёте ?? оно и будет тормозить и глючить.."

Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.

А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.

По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.

 
Alexey Volchanskiy:

Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.

А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.

По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.


Наврал, вот время летит, думал год прошел ))

Вот эти тесты https://www.mql5.com/ru/forum/165687

Тесты на вычисление числа Pi для mql4, mql5, MSVC, Intel compilators
Тесты на вычисление числа Pi для mql4, mql5, MSVC, Intel compilators
  • 2017.01.07
  • www.mql5.com
Открыл отдельную ветку, чтобы у Сан Саныча ветку по R не засорять. Итак, первый тест - сравнение с C...
 
Alexey Volchanskiy:

Вот и проверю. Не думаю, что запросы к БД раз в секунду через мостик .NET будут прям так критически тормозить. Мой мост MQL4 - C++ CLR - C# не тормозил и не глючил, но сырцы частично утеряны.

А что с машиной, ну надо время на разгон, потом она едет. Проводили же тесты год назад или меньше, С# отстает от MS С++ и MQL5, но не критично, вроде было менее 2 раз.

По факту, пусть сделают вместо разных экзотических либ типа fuzzy logic либу для MySQL. Давно обещали.

он там не просто мостик stdC<->C#, mt4api там ещё и данные сериализует/десериализует туда обратно. На чём в сумме и оттормаживает

по поводу "давно обещали", я тоже про то помню :-) ждёмс "нативный интерфейс SQLite" уже давно-давно..походу этого не будет никогда.

 

В общем, как только разработчики найдут время и силы для написания большего количества"народных" библиотек (и внедрения фич типа доступа к БД в язык??) будет совсем круто. С быстродействием MQL5 все хорошо, не хватает обвязки.

По поводу выбора MS MQL 2017 - это не мой выбор )) Себе я беру что-то попроще с доступом через нативную DLL. Например SCLIte, MS SQL Compact или другое.

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