下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2014.01.28 06:49
程序库

EAX_Mysql - MySQL library - MetaTrader 5程序库

| Chinese English Русский Español Deutsch 日本語 Português

发布者:
Michael Schoen
显示:
923
等级:
投票: 28
eax_mysql.mqh (29.79 KB)预览

我意外运行 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 Software Corp.从英文翻译成
官方代码: https://www.mql5.com/en/code/855

价格在布林通道 价格在布林通道

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

CFastFile - 类可工作于 uchar 数组与虚拟文件之间 CFastFile - 类可工作于 uchar 数组与虚拟文件之间

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

Statistics.mqh 函数 Statistics.mqh 函数

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

对象描述激活器 对象描述激活器

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