Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Работа с сокетами в MQL5 - библиотека для MetaTrader 5

Просмотров:
4890
Рейтинг:
(51)
Опубликован:
2010.08.16 16:58
Обновлен:
2016.11.22 07:33
socket.zip (506.46 KB)
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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

Для связи используется TCP протокол, что позволяет передавать данные не только локально но и удаленно, например, на ПК, подключенный по локальной сети.

Для работы с сокетами используется библиотека Winsock2 (wsock32.dll). Однако, непосредственная работа с функциями этой библиотеки невозможна из-за отсутствия в MQL5 механизма работы с указателями и передачи сложных типов данных в качестве параметров в вызываемые функции DLL.

В качестве промежуточного звена, связывающего советник и библиотеку сокетов служит библиотека socket_mql5.dll написанная на С++.

На рисунке 1 показана схема взаимодействия MetaTrader 5 с серверным приложением.

Схема взаимодействия MetaTrader 5 с серверным приложением

Рисунок 1. Схема взаимодействия MetaTrader 5 с серверным приложением

В библиотеке socket_mql5.dll реализован минимальный набор функций для односторонней передачи данных: SocketOpen, SocketWriteData, SocketWriteString, SocketClose. Котировки можно передавать в двух форматах: в виде данных и в виде строки. Выбор формата реализован во входной переменной "тип передаваемых данных" советника.

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

Передача данных из MetaTrader 5 в серверное приложение

Рисунок 2. Передача данных из MetaTrader 5 в серверное приложение

В архиве содержатся:

  • Советник;
  • Библиотека socket_mql5.dll (исходный код написан на VisualStudio 2008);
  • TCP сервер и TCP клиент (исходный код написан на Delphi 7).
i-ImpulseSystem i-ImpulseSystem

Индикатор по импульсной системе А.Элдера.

Советник "Боллинджер на стероидах" Советник "Боллинджер на стероидах"

Советник "Боллинджер на стероидах". Эксперт торгует по тренду и использует индикатор Bollinger Bands.

AlfOs AlfOs

Осциллятор, аналогичный OsMA на Variable Index Dynamic Average.

Keywords MQL5 Keywords MQL5

Ключевые слова языка MQL5