MetaEditor 帮助

SQL数据库操作

SQL数据库操作

MetaEditor提供了便于数据库操作的选项。这些功能都是以流行的SQLite引擎集成为基础而实现的。整个数据库都位于用户PC硬盘上的单个文件中。

编辑器可以访问使用数据库的主要功能,使您可以:

  • 创建并连接数据库
  • 查看表格并执行快速数据查询
  • 创建并执行SQL查询,回滚更改

交易策略的发展与处理大量数据有关,这也是数据库广泛用于算法交易的原因。使用数据库可使您:

  • 分析交易历史和报价
  • 保存并分析优化和测试结果
  • 准备并与其他分析组合交换数据
  • 存储设置和MQL5程序状态

MQL5语言支持直接从程序中使用数据库的功能。了解详情,请参阅文章“SQLite:本地处理MQL5中的SQL数据库”。

创建数据库 #

快速数据库创建功能可从MQL5向导中获得。您可以轻松创建第一个表格并定义它的字段。

通过向导创建数据库

以下字段类型可供使用:

  • integer ― 整数值
  • real ― 分数值
  • text ― 字符串值
  • blob ― 二进制数据数组

字段也可以用标识进行标记:

  • primary ― 唯一用于识别表格内每条记录的主键。表格中只有一个字段可用作主键。此字段的值必须是唯一的。
  • unique ― 包含值的字段,不能重复。尝试写入已经存在的值将导致错误。您可以将此标识用于必须具有唯一值的字段。例如,可以将其设置为用于单号的字段。

您还可以通过使用导航快捷菜单创建数据库:

  • Create database(创建数据库) ― 创建选定格式的空数据库文件。默认情况下使用.db扩展名。
  • Create from file(创建自文件)― 基于现有*.SQL数据库创建数据库。

创建数据库后,您将被重定向到相应的“导航”部分。所有数据操作均在此部分执行。

导入表格 #

您可以基于现有CSV文件在数据库中创建表格。在数据库菜单中点击“导入表格”,选择一个文件并设置以下参数:

  • 数据库中的表格名称。
  • 自动或手动文件编码检测。
  • 数据分隔符:逗号、分号、制表符或空格。
  • 开始时跳过指定的行数。
  • 评论前缀。
  • 文件是否具有列名。如果启用此选项,则文件第一行中的值将导入为列名。
  • 如何确定换行符:仅换行(LF,默认)或回车和换行(CRLF)字符。
  • 数据应该添加到新表还是现有表中。
  • 文件中哪些引号用于字符串:单引号或双引号。导入期间将删除引号。

将准备好的表格导入数据库

使用数据库 #

导航为使用数据库提供一个单独的选项卡。在其快捷菜单或“文件”菜单中点击“打开”,然后选择数据库文件。相应的表格将出现在导航中。

双击表格名称,快速查询前1,000条记录。

使用数据库

要执行数据库查询,请在编辑器的右侧输入该查询,然后点击“执行”。如果出现查询错误,相应的消息则会添加到日志中。创建表格的简单查询示例:

CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);

COMPANY字段包含5个字段:记录ID、名称、年龄、地址和薪资。ID字段用作密钥,即唯一索引。索引可以成为每个记录的唯一标识,可以在不同表格中使用,并将它们链接在一起。这类似于持仓ID链接与特定持仓相关的所有交易和订单的方式。

如果表格列包含自1970.01.01起以分钟(UNIX时间)、秒或微秒指定的时间数据,请左击该列,然后选择所需的格式。然后,时间将以常规格式YYYY.MM.DD hh:mm:ss显示。

要将表格另存为文件,请使用“SELECT * FROM [表格名称]”查询表格中的所有数据,然后在快捷菜单中点击“导出”。导出操作提供与导入相同的表格选项。