错误、漏洞、问题 - 页 208

 
Ashes:

就在上面你写道。

这可能是我们的意图,但是...做一个现场实验(建设358)。

我从 "C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history "文件夹中删除了所有符号。

我连接到Alpari-Demo(终端有5个开放图表:EURUSD H1,EURCHF H1,USDJPY H1,GPBUSD H1+M1)。

几分钟后,我可以看到图片(历史记录仍在下载中)。

C:Program Files\MetaTrader 5\Bases\Alpari-Demo\history文件夹的内容

谢谢你的留言。我们会研究的。
 
Interesting:

...

如果我理解正确的话,历史文件的大小是在终端目录中,这是由 "工作 "目录的位置指示的 -C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history\EURJPY

测试员有自己的文件夹来存放这些数据--C:\Program Files\MetaTrader 5\tester\Agent(根据代理的数量)\bases\DC或另一个经纪人(服务器)\history\....

那么问题出在哪里呢?

问题是不愿意仔细阅读原始信息;)

在测试器文件夹中确实有2个文件(2009年,2010年),但在第一次为一个特定的符号启动测试器时,整个历史被下载(如果它之前没有被下载或删除)到文件夹 "x:\Program Files\MetaTrader 5\Bases...",直到这些信息被完全下载,测试才开始。

我不介意把数据从MetaTrader 5\Bases复制到 MetaTrader 5\tester\Agent(by number of agents)\bases,因为我知道这是一个tick状态的快照,以确保优化枚举期间报价的绝对身份。但为什么要上传目前绝对不必要的数据呢?

 
Ashes:

问题是不愿意仔细阅读原帖;)

在测试器文件夹中确实有2个文件(2009年,2010年),但在第一次启动测试器时,在一个特定的符号下,整个历史被下载(如果它之前没有被下载或删除)到 "x:\Program Files\MetaTrader 5\Bases... "文件夹,直到它填补了这些不必要的信息,测试将不会开始。

我不介意把数据从MetaTrader 5\Bases复制到 MetaTrader 5\tester\Agent(by number of agents)\bases,因为我知道这是一个tick状态的快照,以确保优化枚举期间报价的绝对身份。但为什么要上传目前绝对不必要的数据?

我会检查的,也许我真的错了,有什么可想的。
 
Renat:
历史记录被正确上传--这意味着2004年有一个请求。而在使用测试器时,整个历史记录肯定会被正确地上传到最大深度--这是一个绝对正确和有意识的决定。只要看看MT4用户的 "不可理喻 "的感叹就能明白--如果我们不照顾历史,那么用户甚至无法控制历史。

请再读一下我的回答。

我们不只是下载和反复检查所有的历史。如果使用测试仪,那么它将不可避免地(不是在这个测试中,而是在下一个测试中)意味着对整个历史的完整和无条件的工作,不管这个特定的测试将使用一小段历史的事实。因此,终端提前准备并完全重新检查所需符号的整个历史的深度和正确性。当然,只有必要的历史间隔被传递/同步到特定的测试代理,用于特定的测试。

因为交易者往往没有注意到正确准备测试条件的规则,终端尽量准备和重新测试环境。在MetaTrader 5中,我们特别取消了对所请求数据的数量和深度的限制,这样交易者就不必手动下载和同步数据

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
Interesting:

1.策略测试员

测试时,测试仪只加载测试仪参数中指定的一对。如果对所有符号进行优化,每个符号将按顺序加载。

如果专家顾问是多币种,其他符号应独立加载。

该想法如下

а.测试仪有自己的市场概览,其中最初只有测试仪参数中指定的配对被设置。

б.如果有必要,可以使用 "选择 "将其他货币对添加到EA的测试器市场概览中。

в.策略测试器将数据与终端同步,而终端又将数据与交易服务器(账户开设地)同步。

这可以下载整个测试期的历史记录+测试日期之前的一定数量的信息(如果我没记错的话,是1年)。

в.如果专家顾问(你)对所需的历史深度不满意,应独立加载。例如,在初始化块中,在检查了历史数据和同步数据之后。

A. 逻辑上

b. 即在一般情况下,在测试过程中下载专家顾问所需的一切是不可能的(除非你绝对下载一切)。

c. 即在测试器中的EA开始之前,测试器的市场概览中还没有相应的货币对(根据a点)。

c(2). 深度还可以,我没有要求更多。

因此,当我们在EA中访问数据时,根据b、c、c(2)下载数据更符合逻辑(但有点复杂)。

我建议添加#propertytester_symbol来填充a点的表格(如果想法描述正确的话),可以设置几个,比如#propertydescription但我仍然相信,在没有#propertytester_symbol 的情况下,分页应该 "按游戏进行"(除了基础字符),因为它们的真实性完全取决于EA本身的算法。

有趣的 是。

2. 终端

在这里,历史是以类似的方式形成的(据我所知,根据终端的市场回顾中显示的符号,考虑到开放图表)。当你开始使用终端工作时,你所处理的符号会形成一个必要的最低历史记录(我不记得确切的条数,但在论坛上已经反复提到)。

如果这种历史深度不适合你,应该手动加载数据。要做到这一点,请切换到最大月份(推荐的选项之一),并使用图表的左滚动加载历史记录到最大深度。

在终端参数中设置图表上所需的条数也是可取的。

事实证明,在这种情况下,它不是必要的最低限度,而是符号的整个历史,我们正在与之合作。

一个观察结果(360的构建已经改变了):如果我们稍微修改一下条件--在最初的下载之后不要删除整个历史文件夹,并在其中留下当前年份,以前的年份就不会被自动调换了直到测试器在这个角色上运行。

 
Renat:

请重新阅读我的答复。

我们不只是下载和重新测试整个历史,是有原因的。如果使用测试仪,它不可避免地(不是在这个测试中,而是在下一个测试中)意味着对整个历史的完整和无条件的工作,不管这个特定的测试将使用一小段历史的事实。因此,终端提前准备并完全重新检查所需符号的整个历史的深度和正确性。当然,只有必要的历史间隔被传递/同步到特定的测试代理,用于特定的测试。

因为交易者往往没有注意到正确准备测试条件的规则,终端尽量准备和重新测试环境。在MetaTrader 5中,我们特意取消了对请求数据的数量和深度的限制,这样交易者就不必手动下载和同步数据 了。

这只是为了 "拥有"!通过下一次使用测试器,历史可以被纠正(尤其是现在,当它在不同的经纪公司有很多缺陷,从完全没有,到歪曲的数据)。

用户并不了解落在他身上的幸福!他不知道。在设置中添加复选框 "不想要,我只在用户或专家/脚本/指标要求时才想要"。还有 "不希望强制自动更新MT5"。

 
Ashes:

A. 逻辑上

b.也就是说,一般来说,在开始之前,不可能把EA在测试期间需要的所有东西都抽出来(除非绝对是所有东西都抽出来)。

c. 即在测试器中的EA开始之前,测试器的市场概览中还没有相应的货币对(根据a点)。

c(2). 深度还可以,我没有要求更多。

因此,当我们在EA中访问数据时,根据b、c、c(2)下载数据更符合逻辑(但有点复杂)。

我建议添加#propertytester_symbol来填充a点的表格(如果想法描述正确的话),可以设置几个,比如#propertydescription但我仍然相信,在没有#propertytester_symbol 的情况下,分页应该 "按游戏进行"(除了基础字符),因为它们的真实性完全取决于EA本身的算法。


这些函数对于形成测试器中的符号列表是很方便的(而且相当充分)。

获取市场数据

获取市场条件信息的功能。

职能

行动

符号总数

返回可用的(在MarketWatch中选择的或全部)符号的数量。

符号名称

返回指定符号的名称

符号选择

在MarketWatch中选择一个符号或从窗口中删除该符号。

 
"你经常使用阵列调整大小吗?有时你的大脑在沸腾,你不知道为什么会弹出"Array out of range in... "信息?"? 那我们就去找你!":D

-检查ArrayResize()是否返回"-1"?

以前,会弹出 "内存不足 "这样的信息,程序就会崩溃--现在不会了。

Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5
 

建设360。看起来像是CTrade 中的一个错误。

2010.10.04 18:59:00 CTrade::PositionOpen: Instant buy 0.10 EURUSD at 1.36890 sl: 1.36390 tp: 1.37890 [在0.00000 完成]

2010.10.05 09:43:00 CTrade::PositionModify: 修改买入0.00 EURUSD (sl: 1.36897, tp: 1.37861) [完成] 。

 

建设360。在测试器中,有几次出现了 "测试器代理失败 "的信息。

GK 0 Tester 18:26:31 EURUSD:历史初步下载开始

CL 0 Tester 18:28:55 EURUSD:历史初步下载完成

GH 0 Core 2 18:28:59 代理进程开始

HP 0 Core 2 18:29:00 连接到127.0

.0。

1:3000

OI 2 Tester 18:29:05 tester agent got failed

LI 0 Core 2 18:29:05 connect closed

GN 0 Core 2 18:34:14 agent process started

KJ 0 Core 2 18:34:14 connecting to 127.0

.0.

1:3000

RJ 0 Core 2 18:34:15 connected

OP 0 Core 2 18:34:15 authorized (agent build 360)

NH 0 Tester 18:34:15 EURUSD,M1 (Alpari-Demo): testing of experts\third.ex5 from 2010.10.04 00:00 to 2010.11

.

05 00:00:00待启动

...

HQ 0 Core 2 19:27:47 agent process started

II 0 Core 2 19:27:48 connecting to 127.0.0.1:3000

CP 2 Tester 19:27:53 tester agent failed

HP 0 Core 2 19:27:53 connect closed

KI 0 Core 2 19:28:10 connecting to 127.0.0

.

1:3000

QL 0 Core 2 19:28:10 connected

PN 0 Core 2 19:28:10 authorized (agent build 360)

RJ 0 Tester 19:28:10 EURUSD,M1 (MetaQuotes-Demo): testing of experts\third_alptest2.ex5 from 2010.10.04 00:00 to 2010.11.05 00:00 to be started

MF 0 Core 2 19:28:11 common synchronization completed

IM 0 Core 2 19:28:11 3124 bytes of account information

loaded