Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Automated-Trading
Админ
101251
Automated-Trading  

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

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

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

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

Автор: Andrey Voytenko

o_o
Модератор
23861
o_o  

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



Andrey Voytenko
23304
Andrey Voytenko  

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

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

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

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

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

gisip
325
gisip  
avoitenko:

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

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

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

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

Vladimir Batrudinov
4930
Vladimir Batrudinov  
gisip:

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

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

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

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

gisip
325
gisip  
Interesting:

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

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

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

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

gisip
325
gisip  
avoitenko:

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

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий