MetaTrader 5 交易平台为实时数据导出到 MySQL、Microsoft SQL Server、FireBird、Oracle、Mariadb 和 PostgreSQL 数据库提供了标准选项。此选项允许快速、轻松地将数据导出部署到外部 DBMS, 以便在任何流行的编程语言和第三方应用程序中使用平台数据。因此, 可以在交易服务器和经纪商的程序服务之间创建一个中间层, 这些程序服务定期访问交易数据。这将减少交易服务器在接收当前交易数据时的负载。
导出功能是通过通过 MetaTrader 5 管理员连接到 DBMS 的简单设置规范启用的。之后, 备份服务器将立即执行来自 DBMS 的数据的初始同步。此外, 新数据将实时导出到 DBMS。导出以下数据:
关于客户的信息 (一般信息和交易状态)当前有效订单和仓位订单和交易的历史当前价格交易平台的几乎所有设置 (工作时间、同步和点差除外)
常用数据库的安装和设置的说明在相应的小节中提供:
Mysql 服务器 5.7(支持的版本: 5.1、5.5、5.6、5.7)mariadb 10.2(所有版本均支持)火鸟 3.0(支持的版本: 2.0、2.1、2.5、3.0)微软 Sql 快递 2012(支持版本: 2005、2008、2008 R2、2012、2014、2016)Oracle 数据库速成版 11 g(支持的版本: 11g/11g 速成版, 12c)
Postgresql(支持的版本: 8.4-10.1)
操作原理
已在备份服务器一侧实现了导出机制, 从交易服务器复制数据。
以下是备份服务器中同步的一般步骤:
备份服务器连接到相应的交易服务器, 并与之同步。成功完成与交易服务器的同步后, 备份服务器将同步外部 DBMS。备份服务器通过来自交易服务器的事务将更改应用于其数据库和外部 DBMS。
在每次连接到 DBMS 期间, 备份服务器都会根据时间戳 (表中的时间戳字段) 执行初始同步:
外部 DBMS 中具有不同时间戳的所有日志都将替换为备份服务器日志。备份服务器上缺少的所有条目都将从外部 DBMS 中删除。
时间戳用于检查备份和外部 DBMS 日志的标识。如果备份上的时间戳与外部 DBMS 上的时间戳相似, 则备份服务器会认为所有其他日志字段都相似, 并且不需要更新日志。
同步数据库后, 备份服务器将在外部 DBMS 上应用更改事务。此外, 有效订单 (mt5_orders)、仓位 (mt5_positions) 和相关交易账户 (mt5_accounts) 的价格和利润价值也会定期更新。
导出表的详细说明可在Metatrader 5 管理员用户指南中找到。
MetaTrader 5 表中的数据
在平台中, 您可以创建自己的表和数据库, 在 mt5 _ * 表中添加自己的字段, 这些字段用于数据导出, 以及创建存储过程和触发器。
备份服务器不会重新创建数据, 而只是添加或更新现有记录。只有在平台一侧删除相应的条目时, 才会删除表条目。例如, 如果将用户添加到 mt5_users 表中, 则在从 MetaTrader 5 中删除该用户之前, 数据库中将存在相应的用户记录。备份服务器仅适用于自己的表和字段。备份服务器不创建默认索引。每个索引都是数据库上的额外负载, 这可能会减慢导出和信息更新的速度。在 mt5 _ * 表中创建自己的字段时, 不要忘记为其设置默认值 (或允许 NULL)。否则, 备份服务器将无法向表中添加新条目。