Библиотеки: Работа с сокетами в MQL5

 

Работа с сокетами в MQL5:

Библиотека для передачи котировок из MetaTrader 5 в серверное приложение, написанное на Delphi 7.

Для связи используется TCP протокол, что позволяет передавать данные не только локально но и удаленно, например, на ПК, подключенный по локальной сети. Для работы с сокетами используется библиотека Winsock2 (wsock32.dll).  В качестве промежуточного звена, связывающего советник и библиотеку сокетов служит библиотека socket_mql5.dll написанная на С++.

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

Автор: Andrey Voytenko

 

Огромное спасибо!



 

В проекте появились изменения и дополнения. Прошу всех, кто уже скачал файл проекта, обновить его.

 
Это только для одной валютной пары, а как реализовать это для нескольких валютных пар ?

 
gisip:
 ... а как реализовать это для нескольких валютных пар ?

Для этого советник socket необходимо поставить на графики тех валютных пар, по которым хотите собирать тиковую информацию.

Не самое элегантное решение. Но я готов выслушать предложения по улучшению проекта

 
avoitenko:

Для этого советник socket необходимо поставить на графики тех валютных пар, по которым хотите собирать тиковую информацию.

Не самое элегантное решение. Но я готов выслушать предложения по улучшению проекта. 

Для MT4 вроде ясно как - через DDE сервер, а как на MT5 сам у всех спрашиваю.

Может у кого есть идеи ?

 
gisip:

Для MT4 вроде ясно как - через DDE сервер, а как на MT5 сам у всех спрашиваю.

Может у кого есть идеи ?

Все зависит от продвинутости сервера, сложности сетевого протокола и той задачи которую необходимо выполнить...

Для начала нужно определиться с поставленной задачей, потом разработать сетевой протокол (возможно понадобится проработать и структуру БД сервера).

 
Interesting:

Все зависит от продвинутости сервера, сложности сетевого протокола и той задачи которую необходимо выполнить...

Для начала нужно определиться с поставленной задачей, потом разработать сетевой протокол (возможно понадобится проработать и структуру БД сервера).

Без всяких наворотов, просто поток котировок, также примитивно как в MT4 через DDE сервер.
 

Если наберетесь терпения, я закончу проект обмена данными через File Mapping. Это будет то, что Вам нужно.

 
avoitenko:

Если наберетесь терпения, я закончу проект обмена данными через File Mapping. Это будет то, что Вам нужно.

Там надо будет тоже ставить советника на каждую пару по которой я хочу получать данные?
 
gisip:
Там надо будет тоже ставить советника на каждую пару по которой я хочу получать данные?

Я пока не делал передачу котировок именно так, как это делает MT4 через DDE, ведь MT4 является сервером автоматизации. А у меня сделано так: MT5 является клиентом, и если хотите знать текущие_цены, посылаете запрос и получаете результат. Это работает для всех валютных пар, активных в окне обзора рынка.

Вы можете и в этом проекте передать все котировки одним пакетом. Например, в советнике, по таймеру каждую секунду, получаете данные и проверяете перед отправкой, чтобы новые данные не были похожи на уже отправленные, по каждой валютной паре, т.е. изменение данных для Ask или Bid будет считаться новым тиком.

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