- 发布者:
- Michael Schoen
- 显示:
- 3704
- 等级:
- 已发布:
- 2014.01.28 06:49
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
我意外运行 MQL5, 并强迫与 MySQL 库在一起。对于任何库, 我希望能有例子来说明如何使用这个库。对于任何库, 事实上最重要的事情就是如何使用它 ;)
例子:
读数据
#include <EAX\EAX_Mysql.mqh> EAX_mysql *db = new EAX_Mysql(); db.connect("myhost.mydomain.com", "myusername", "mypassword", "mydatabase", "mytable") int iResults = db.read_rows("SELECT password, COUNT(*) as Hits FROM users GROUP BY password"); for (int i=0; i < iResults; i++) { string password = (string) db.get("password",i); int hits = (int) db.get("Hits", i); }
写数据
#include <EAX\EAX_Mysql.mqh> // 全局 EAX_mysql *db = new EAX_Mysql(); void OnInit() { db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "Ticks"; } void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol,tick); // 在 Ticks 表中加入新的数据集 db.AddNew("Ticks"); // 填充值.. db.set("symbol", _Symbol); // 若 MySQL 可以转换, 您可以发送数字到数字 DB 字段 db.set("ask", tick.ask); db.set("bid", tick.bid); db.set("last", tick.last); db.set("time", TimeToString(tick.time,TIME_DATE) + " " + TimeToString(tick.time,TIME_SECONDS)); db.set("volume", tick.volume); db.write(); } void OnDeinit() { // 清除内存 delete db; }
与数据交互
EAX_mysql *db = new EAX_Mysql(); db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "mytable") // 选择表 AgentsOnline (需要标识正确的关键字) db.select("AgentsOnline"); // 以关键字 5, 读数据集 with Primary Key 5 db.read("5"); // 修改任意列, db.set("lastupdate", (string) TimeLocal()); // 写回数据 db.write();
安装:
- 标识您的 MQL5 数据目录 (MQL5).
- 下载 连接器/C (libmysql), 需与您的环境配套 (32 或 64位) 并将 libymsql.dll 放在 "MQL5\Libraries"。
- 在 Include 中创建一个文件加 EAX。
- 将 EAX_Mysql.mqh 放在 "MQL5\Include\EAX"。
问题:
- 因为它在内部使用共享连接指针, 这个库不能同时处理超过一个 DB 连接 (我不需要添加/移植连接池)。
- 无实时错误 (mysql) 处理, 放弃 db 连接。
- 无错误处理/重连接 DB (=> db 池)。
- 不支持多列主键。
- 依旧是 beta - 如果您打算测试, 请给我电子邮件。
- DataTypes 不处理 (内部仅是字符串), 必须在代码/数据库中处理。
- 数据库通信采用 ISO - 懒得调整指针/字符串运算为 UTF-8。
参与:
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/855

该指标绘制 (在分离窗口) 相对于均线的布林带以及价格柱线的投影。

该 CFastFile 省略了写数据至物理磁盘的中间过程。它在处理数据时可以显著加速。

该库包含多种统计函数, 包括平均值计算, 方差, 非对称, 超额, 协方差, 相关性等。

对于非程序员, 允许 "图表对象描述"。任何打开的图表窗口。