下载此文档

如何从MQL5MQL4访问MySQL数据库.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
如何从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查询与数据检索。:类型名称参数描述intMySqlConnect该功能已实现与数据库连接并返回一个连接标识符。这个ID在数据库查询时需要。在连接失败情况下,则返回值"-1"。对于错误详情,检查变量 MySQLErrorNumber 与 MySqlErrorDescription。典型地,这个函数在MQL程序处理 OnInit() 事件时调用。string pHost这是MySQL服务器域名或IP地址stri

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

非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人erterye
  • 文件大小95 KB
  • 时间2020-04-15