交易机器人在市场发布前必须经过的检验 - 页 15

 

你好。

如何检查我的磁盘空间是否足够?


现在出现了这条信息。

第三次尝试时,没有做任何更改就通过了


 
Denis Nikolaev #:

你好

如何检查我的磁盘空间是否足够?


现在有这样一条信息

在第三次尝试时,没有做任何更改就通过了


在这种情况下,信息并不完全正确。问题出在内存上。

服务器上的内存已经增加。

 
Anton #:

在这种情况下,信息并不完全正确。问题出在内存上。

服务器上的内存已经增加。

谢谢。

 

MT5 终端。Broker RoboForex, instrument - CFD AAPL.
在机器人测试器2021.05.05.05 16:30:00 第一次运行时,我收到消息 " failed market buy 0.1 AAPL [Market closed] ",error 4756, retcode 10018.

工作日 - 星期三,交易时间,16:30:00 时,市场关闭原因不明。

市场关闭的 检查不在强制检查列表中,即(理论上)猫头鹰验证会通过。
但是!
如果收到此错误后不将时间延迟 2-3 小时,则不会通过 - 将收到关键错误"堆栈已满",测试器将关闭。即使测试通过了,我也不喜欢日志中出现任何错误。不应该有任何错误。

我仔细查看了所有函数,但没有发现如何获取 "市场关闭"事件
向文章作者提问:

-
在实际交易中 每天收盘前几分钟和新一天开始后 5-10 分钟,几乎所有经纪商都会关闭交易。但报价仍在继续。因此,如果 Expert Advisor(智能交易系统)在市场上开盘,并且有允许的信号,它就会 发出错误信息。好在这种 "烟雾中断 "没有在测试程序中解决。

 
Vasyl Temchenko 关键错误"堆栈已满",测试器将关闭。即使测试通过了,我也不喜欢日志中出现任何错误。不应该有任何错误。

我仔细查看了所有函数,但没有发现如何获取 "市场关闭"事件
向文章作者提问:

-
在实际交易中 每天收盘前几分钟和新一天开始后 5-10 分钟,几乎所有经纪商都会关闭交易。但报价仍在继续。 因此,如果 Expert Advisor(智能交易系统)在市场上开盘,并且有允许的信号,它就会 发出错误信息。好在这种 "烟雾中断 "没有在测试程序中解决。

报价开始,但没有蜱。OnTick()只有在有另一个跳动点时才起作用。

 
Alexey Viktorov #:

有报价,但没有刻度。OnTick() 只有在有另一个刻度线时才起作用。

说明一下:
- 我们说的是测试器
- CFD 交易时段的开盘价通常会有一个或大或小的缺口,即机器人计算的开盘价处于 "open yesterday"(昨天开盘价)的水平
- 在第一个刻度点,即 16:30:00 整,机器人尝试开盘交易。

麻烦就出现在这里: - 16:30:00 整。 市场仍然关闭。.也许只有几分之一秒。但测试仪在这个时候会产生大量错误,直到堆栈溢出。图表站在第一个刻度上。

我解决这个问题的方法如下:
- 设置当前价格到开盘价的距离。
- 当发生错误时,我重置开盘价变量。
- 只出现一次错误,然后就正常交易了。

但这是一种迂回的解决方案。还有其他一些选择:
- 在菜单栏中添加会话开盘时间,并在延迟 5-10 分钟后开始交易
- 控制第一个条形图收盘与零条形图开盘之间的时间。如果有间隙 - 则进行延迟。
在这种情况下,可以避免很多错误。但这并不能解决 "午夜问题"。经纪商关闭交易 10-15 分钟,但报价仍在流动,机器人试图交易,却反复出现 "市场关闭 "错误。
可用的工具无法避免这种情况。
如果有检测真实市场可用性的功能,就不会有问题了。


哦,对了,关于 OnTick。你说得没错,但是......
从 OnTick 开始,我每分钟 只在新的条形图打开时调用一次 Trade() 函数,然后代码会重复调用 Trade(),而不是返回。显然,这就是代码卡在 "市场已关闭 "错误上的原因。



 
Vasyl Temchenko #:

说明一下:
- 这是关于测试器
- 差价合约会话的开盘价通常较小或较大,但有差距,即机器人计算的开盘价处于 "昨日开盘价 "的水平
- 在第一个刻度线,即16:00 整, 机器人尝试开盘交易。

也许最好还是看看说明书?


如果第一个跳动点的时间是 16:30,为什么第一个跳动点是 16:00?

 
Alexey Viktorov #:


如果第一个刻度的时间是 16:30,为什么第一个刻度是 16:00?

是的,当然是 16:30
感谢您注意到我的错字 - 我已经更正了文本。
我在 OnTick() 中添加了一行。

   if(iTime(NULL,PERIOD_M5,0)-iTime(NULL,PERIOD_M5,1) > 360) return;  

这个问题已经解决了--我在开仓交易的函数中加入了一个错误计数器,每年运行时都不会出错。
这意味着开仓时只是几分之一秒(或几秒/分)的时间。
但我还是希望有一个通知市场供应情况的函数。

 

我想知道,那些费尽心思克服自动测试机问题的人,他们到底有没有使用过他们的机器人?

他们到底有没有使用他们的机器人?

只是有时整理出来的错误,在现实生活中至少会在杂志上被骂一顿。

我可以理解自动测试仪在奇怪的地段/步骤/项目/平衡_in_1 cent....。

......但是,机器人在正常运行中必须要做的事情 - 尝试在交易时段 之外做一些事情,或者交易禁止标志是怎么回事?

除了本地测试器之外,您从未运行过您的机器人吗?????

 
这都是宝贵的经验。
写作的不同目的....
对有些人来说,只是 "流行 "而已
而对有些人来说,这就是努力....