2020.02.1917:56:14.624 SecondExpertDataBase (GBPUSD,H1) 16:56:14: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:16.627 SecondExpertDataBase (GBPUSD,H1) 16:56:16: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:18.616 SecondExpertDataBase (GBPUSD,H1) 16:56:18: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:20.630 SecondExpertDataBase (GBPUSD,H1) 16:56:20: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:22.078 FirstExpertDataBase (USDCHF,H1) 16:56:21: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:22.629 SecondExpertDataBase (GBPUSD,H1) 16:56:22: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:24.071 FirstExpertDataBase (USDCHF,H1) 16:56:24: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:24.619 SecondExpertDataBase (GBPUSD,H1) 16:56:24: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:26.070 FirstExpertDataBase (USDCHF,H1) 16:56:26: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:26.619 SecondExpertDataBase (GBPUSD,H1) 16:56:26: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:28.079 FirstExpertDataBase (USDCHF,H1) 16:56:27: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:28.625 SecondExpertDataBase (GBPUSD,H1) 16:56:28: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:30.079 FirstExpertDataBase (USDCHF,H1) 16:56:30: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:30.617 SecondExpertDataBase (GBPUSD,H1) 16:56:30: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:32.069 FirstExpertDataBase (USDCHF,H1) 16:56:32: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:32.627 SecondExpertDataBase (GBPUSD,H1) 16:56:32: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:34.073 FirstExpertDataBase (USDCHF,H1) 16:56:33: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:34.627 SecondExpertDataBase (GBPUSD,H1) 16:56:34: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:36.616 SecondExpertDataBase (GBPUSD,H1) 16:56:36: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:38.079 FirstExpertDataBase (USDCHF,H1) 16:56:38: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:38.615 SecondExpertDataBase (GBPUSD,H1) 16:56:38: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:40.072 FirstExpertDataBase (USDCHF,H1) 16:56:40: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:40.618 SecondExpertDataBase (GBPUSD,H1) 16:56:40: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:42.630 SecondExpertDataBase (GBPUSD,H1) 16:56:42: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:44.617 SecondExpertDataBase (GBPUSD,H1) 16:56:44: added 1 record on GBPUSD to timer.sqlite
Database file is by default stored to . If you specify a full path as database filename, it's used. Terminal data path TERMINAL_DATA_PATH can be known by the following instruction. Open MT4 Open [File] menu Click "Open Data Folder" Sample Many sample scripts in under . Precautions Argument mess MT4 build 610 has a weird bug when dll function...
Renat Fatkhullin:
在一个终端启动的不同 MQL5 智能顾问中,您可以共享同一个数据库。
。
我已经测试了在一个终端中 使用相同数据库的两个 Expert Advisor 的工作情况。运行无误 - 两个 Expert Advisor 都以 2 秒钟的计时器将数据写入一个文件。
文件附后,它们的区别仅在于 Expert Advisor 的名称不同。
下面是数据库在 MetaEditor 中的样子
µl5 中描述的内容是否可以在 µl4 中使用?
在 MQL4 中,您可以通过 MQL 的包装器使用本地 Sqlite3_32.dll
这是 MQL 的封装器,请勿与SQLite3Wrapper.dll 混淆。
但我不知道它是否还在线,我以前用过它。
更新:https://github.com/Shmuma/sqlite3-mt4-wrapper谁想出了这个办法,请展示一下这项任务的执行情况。
还有一个细微差别--在数据库中保存价值不断增长的一致数据,而不是分散的数据,如报价(日期不断增长)--这是一个非常昂贵的操作。数据树并不平衡,一个分支会无限增长,而引擎会定期重新平衡数据树(这比垃圾收集还要糟糕)。也许这只适用于索引表,我不记得了。或者,在我没有使用它的这几年里,这个问题已经解决了。我得试试看。也许开发人员也会分析一下,他们应该会对此感兴趣。
数据库导入
简单脚本
2020.02.20 15:09:27.171 MQL5 'DOMcopy.ex5' 有较新的不支持版本,请更新客户端
版本 5 第 2323 版的最新元编辑器也是如此,调试不起作用。
有什么未完成的吗?
DatabaseImport 函数 尚未向公众发布。
请等待发布。
数据库导入功能尚未向公众发布。
请等待发布。
版本 5 第 2326 版也是如此,那么何时才能等到稳定版本?
版本 5 建 2326 同样的事情,是等待一个稳定的版本,什么时候?
关于交易、自动交易系统和测试交易策略的论坛。
新版本的MetaTrader 5建立2340:在测试仪管理帐户设置和扩大与Python的集成
MetaQuotes, 2020.02.20 14:55
2020年2月21日星期五,将发布MetaTrader 5平台的更新版本。更新包含以下更改:
在之前的平台更新 中,我们增加了直接从 MQL5 使用 SQLite 数据库的支持。现在,主要功能可通过 MetaEditor 用户界面使用:
。
工作原理
要快速创建数据库,请使用 "MQL5 向导"。在这里,您可以立即创建第一个表并定义其字段列表。
创建数据库后,您将进入 "导航器 "的一个新部分。所有数据处理工作都在该部分进行。左侧显示的是数据库表。要快速查询前 1000 条记录,请双击表名。在这里,您还可以创建和打开其他数据库并处理表格。编辑器的主要部分是处理数据库的地方:在表中填入数据、进行搜索和选择、输入 SQL 查询等。 。

有关在 MetaTrader 5 中使用数据库的更多详情,请阅读文章"SQLite:在 MQL5 中使用 SQL 数据库的本地工作"。。
。
要在编辑器中运行脚本,请点击 "编译": 。
要使用 Python,不要忘记在 MetaEditor 的 "设置/编译器 "部分指定 Python 的路径。要使用 MetaTrader 5 库,请使用以下命令安装: 。
.
新命令命名
现有命令已 重新命名:
MT5Shutdown -> shutdown
MT5TerminalInfo -> terminal_info
MT5Version -> version
MT5CopyRatesFrom -> copy_rates_from
MT5CopyRatesFromPos -> copy_rates_from_pos
MT5CopyRatesRange -> copy_rates_range
MT5CopyTicksFrom -> copy_ticks_from
MT5CopyTicksRange -> copy_tick_range
新命令
支持的命令列表已大大扩展。增加了交易功能,可处理交易历史、获取金融工具和当前账户信息。
。
。
在图表上运行 Python 脚本
现在,Python 脚本可以直接在平台的图表上运行,类似于普通的 MQL5 程序。这些脚本将以特殊图标显示在 "导航器 "中。
。
脚本信息将显示在 "工具/专家 "部分。如果脚本使用MetaTrader 5 库,则可接收有关工具、账户和交易的信息。
Python 脚本可与其他 MQL5 脚本和智能交易系统并行运行在同一图表上。要在脚本循环执行时停止脚本,只需将其从图表中删除即可。
附加保护
为了在使用第三方 Python 库时进一步保护您的账户,在终端设置中添加了 "禁止通过外部 Python API 自动交易 "选项。
。
只有明确禁用该选项,才允许 Python 脚本进行交易。 。
。
DatabaseImport
将数据从文件导入表格。
DatabaseExport
将表或 SQL 查询执行结果导出为 CSV 文件。文件以 UTF-8 编码创建。
DatabasePrint
将表或 SQL 查询执行结果打印到 Expert Advisor 日志中。
新函数将使用户与 MQL5 程序的交互更加方便。
.
.
。
常规设置
在本节中,您可以设置账户上同时可拥有的最大未结订单数和头寸数。您还可以在此设置测试程序不允许交易的时段。
保证金
在这里,您可以完全控制如何预留保证金,以及在测试期间使用何种头寸会计系统: 。
。
。
。
佣金
在此部分,您可以完全控制所有交易的佣金收取方式。 。
。
。
。
。
更新将通过 LiveUpdate 系统提供。
稳定版 5 build 2340DatabaseImport 在执行时显示相同的DatabaseImport
2020.02.22 14:01:42.338 MQL5 'DOMcopy.ex5' 有较新的不支持版本,请更新您的客户终端
您好!
,我试图在指标中创建一个与数据库的连接,但不知为什么没有成功。
为什么没有在任何地方写明,我可以在哪些程序中使用数据库?