在 MQL5 中操作套接字 - MetaTrader 5程序库
- 显示:
- 2309
- 等级:
- 已发布:
- 2014.01.24 06:34
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
本例将向您展示如何实现从MetaTrader 5客户终端实时传输订单信息到外部服务器应用程序.
使用 TCP 协议, 它不仅允许您在本地传输数据, 也可以在互联网的外部传输数据.
Winsock2 代码库 (ws2_32.dll) 用于操作套接字. 无法直接调用库函数, 因为MQL5不允许使用指针和把复杂数据结构做为参数传送给DLL函数. 函数库socket_mql5.dll, 使用C++编写, 它是个中间封装, 连接着EA交易和套接字函数库.
MetaTrader 5 和外部服务器应用程序的交互如图1所示:
图 1. MetaTrader 5 和外部服务器应用程序的交互
在socket_mql5.dll函数库中实现了单向传输 (SocketOpen, SocketWrite, SocketClose).
在图2中展示了一个EA交易的例子, 它连接到服务器并把实时订单数据传输给外部服务器应用程序.
图 2. 从MetaTrader 5客户终端输出订单数据到外部服务器应用程序
档案中包含:
- 一个EA交易
- socket_mql5.dll 库 (在 Visual Studio 2008 中写的 C++ 源代码)
- TCP 服务器和 TCP 客户端 (Delphi7 源代码)
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/169