下载此文档

如何从 MQL5 (MQL4) 访问 MySQL 数据库.doc


文档分类:IT计算机 | 页数:约23页 举报非法文档有奖
1/23
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/23 下载此文档
文档列表 文档介绍
Forpersonaluseonlyinstudyandresearch;mercialuse螈如何从MQL5(MQL4)访问MySQL数据库螆介绍羁MQL与数据库的交互问题并非新事物,但它们依然是相关的。利用数据库​​可以极大增强MetaTrader的可塑性:存储并分析价格历史,从一个交易平台拷贝交易至另一个平台,提供实时报价/交易,在服务器端定期进行深度分析计算,使用web技术监视并远程控制账户。芁总之,有许多种应用尝试从MQL和MySQL的组合之中获益,一些方案已经在代码库里出现。薆例如 "MySQL包装-用于MetaTrader4的链接库" 就是这样的项目,许多程序员开始自己开发,在将来还可扩充。我认为,这种解决方案的缺点之一是分配特殊数组用来从数据库中读数据。袄另一个项目 "MySQL日志1-用于MetaTrader4的EA" 更加专业,。因此,它不能在MetaTrader4编译版600+上工作,由于 char 字符类型已经被 wchar_t 替代,且使用 int 类型替代了 TMYSQL 结构指针,导致在项目中产生内存泄漏(内存分配不能控制/释放)。莁另一个有趣的项目是 "EAX_Mysql-MySQL链接库-用于MetaTrader5的链接库"。它是十分出色的实现。不过作者列出了一些缺点,在使用时有强制限制。肂任何人若需要在他们的项目中使用数据库,有两个选项:要么开发自己的解决方案,并了解它的每一个部分,或者使用/改编任何第三方解决方案,了解如何使用它们并检测是否会阻碍他们的项目。薇在我开发一个相当复杂的自动交易时,就要面对这样的必要性和两个选项。依照现有项目经过搜索,且研究了很多的解决方案后,我意识到,已发现的实施方案均无助于把我的自动交易提升到“专业水平”。芆此外,也有些荒谬的方案,例如:(插入/更新/删除数据,在数据库中创建/废弃对象),以及将数据检索(SELECT)的实现作为HTTP请求(.dll)与MySQL服务器端的web服务器上的PHP脚本通信。而SQL查询被写在PHP脚本中。肄换句话说,要运行该项目,一定需要保证下述所有部件准备妥当,配置好并运行:MySQL服务器,Apache/IISWeb服务器,在服务器端的PHP/ASP脚本...大量技术的组合。当然,在某些情况下,这是可以接受的,但当唯一的任务就是从数据库中查询数据-那么这些全无意义。此外,支持如此累赘的方案也耗费时间。蒈大部分的方案在插入数据,创建对象等等操作时没有问题。问题在于数据查询,因为数据将会被返回调用环境。蚈我认为出于此目的而使用数组是不切实际的和不方便的,简单的原因就是在主程序的开发/调试/支持过程中,数据库查询是可以变化的,而您也要正确控制为数组分配的内存..那么,这些可以,而且必须要避免。莅下文讨论的MQL<->MySql的接口基于OraclePL/SQL,MSSQLT-SQL,AdoDB等产品内使用的典型方式-使用游标。这个接口的开发目标是易于编程和维护,再加上最少元部件。它作为DLL包装器实现,,。<->MySQL接口芈在MetaTrader终端之间交互(通过MQL程序)可以在如下元部件的帮助下实现: #include 语句将它加到项目工程里,并且可以按照您的喜好进行修改。,以及调用它们和处理错误的函数。。这是一个包装器,。蒇此外,。这意味着您可以在同一时间创建和使用多个连接(来自一个或多个MQL程序),保持少量的打开游标,查询一个或多个数据库。互斥则用于分隔访问共享资源。。您可以从任何MySql数据库的发布位置C:\Windows\Sytem32或<终端>\MQL5\Libraries(对于MetaTrader4在<终端>\MQL4\Libraries)中拷贝它。莂事实上,它负责发送查询到数据库并接收检索结果。蝿让我们来详述要点,诸如:打开/关闭连接,执行DML/DDL查询和数据检索。:螂类型蒀名称莆参数莆描述芁int芀MySqlConnect莇该功能已实现与数据库的连接并返回一个连接标识符。这个ID在数据库查询时需要。蒅在连接失败

如何从 MQL5 (MQL4) 访问 MySQL 数据库 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数23
  • 收藏数0 收藏
  • 顶次数0
  • 上传人水中望月
  • 文件大小156 KB
  • 时间2019-05-26