自动检查市场中的产品(问题和建议)。 - 页 6

 
Andrey Khatimlianskii:

是的,的确,我忘了"@global_initializations"。

事实证明,绘制条形图和指标缓冲区本身需要这么长时间?

如果你编译到发布,并在同一时间段内运行可视化软件,直接滚动到最后("跳到..."),需要多长时间?

那么,多长时间?

 
Prostocar:
你好你好,我在终端中失去了我的市场,我不能从市场中安装专家顾问和指标,重新安装终端也没有帮助,而且以前在市场上购买的产品也没有更新,谁知道如何解决这个问题?

你仍然没有回答我的问题。

关于交易、自动交易系统和交易策略测试的论坛

市场上的自动产品检查(问题和建议)。

Vladislav Andruschenko, 2019.10.10 18:35


检查Internet explorer的版本。有一种怀疑,就是它没有发挥作用。

你可以在终端的 "工具 "窗口中,在 "日志 "选项卡中检查。


第二个问题:你连接的是什么服务器?尝试连接到MetaQuotes-Demo。

 
MetaQuotes Software Corp.:

来自自动减毒机的日志显示,对M1的测试无法在一小时内 通过月度间隔

而在H1上,同一个指标在几分钟内就能通过测试。

在你的代码中寻找原因。

原因更可能是在自流井中。我设法发现,这个问题在某种程度上与处理Tick历史有关。

当第一个事件OnCalculate被处理时,该指标试图通过运行函数CopyTicksRange来加载最近一天的ticks历史。如果每个条形图至少收到一些刻度线,就会绘制收到的历史记录,然后它就会在线处理刻度线。如果一些历史条形图没有收到任何刻度,OnCalculate处理程序返回0,并启动一个5秒的计时器。在下一个事件OnCalculate中,指标继续尝试加载历史的ticks。在OnTimer处理程序中,计时器停止,如果所有的OnCalculate调用都未能加载5秒钟的历史记录,则使用ChartSetSymbolPeriod(0, NULL, 0)调用 进行刷新请求。

请注意,所有的东西都是异步执行的,没有逻辑上的挂起。在最坏的情况下,如果我们假设刻度线数据库由于某种原因无法使用,我们将得到一系列周期为5秒的刷新。但这种情况下的指标根本没有计算,因为没有数据。已经调查了刷新的影响,它是不存在的--见下面的评论。

这段代码对我来说在不同的服务器、不同的角色/时间段和测试器中都能正常工作。

同样的代码似乎挂在自动监测仪的某个地方。通过直觉方法(在正常反馈、日志等情况下不应该发生),我发现了以下问题。

如果你把对tick历史的注释去掉,指标就会正常地自动失效。

由于有许多历史要求的因素,我不能确切地说,是什么以及以什么组合 "挂 "住了自流井。

  • 在没有历史刻度的情况下,CopyTicksRange(但即使没有,指标也不计算,并立即将控制权返回到环境中,在线刻度继续自由 "滴答",我模仿了这种情况--没有挂起)。
  • 计时器。
  • ChartSetSymbolPeriod(作为压力测试,我在极端模式下运行了这个刷新的指标(在每个tick上),它没有导致任何减速或明显的CPU负载,这个请求也是异步的)。
  • 我添加了一个刷新失败的计数器,在给定的尝试次数(5次)后停止刷新,但这对成功没有影响。

如果从OnTimer处理程序中请求刷新 - 自动验证失败。如果刷新被转移到OnCalculate - 自动验证成功。因此,有一个间接的证据表明,从OnTimer调用ChartSetSymbolPeriod会产生负面的影响。我特意在测试器中运行这样的组合--没有问题。很明显,自体脂肪检测仪与公开的检测仪是不同的。

由于确定的通过验证的条件不是很清楚(至少很奇怪),而且需要凭直觉人为地使代码变得更复杂,所以对于发布的产品来说是不可接受的。

 
下午好,我在寻求帮助,当自动无效时,没有指标,指标是通过资源设置的,其他终端上的编译文件在测试和真实账户中都没有问题。问题可能是什么?
附加的文件:
2yr38jvml4.png  32 kb
 
RODION SLOTIN:
你好,我想寻求帮助,在自动验证过程中,出现了没有指标的错误,指标是通过资源设置的,在其他终端编译的文件在测试和实时中都没有问题。问题可能是什么?

尽量不要使用双重扩展和破折号。这只是一个快速的猜测。

 
RODION SLOTIN:


你能告诉我具体地点吗?

#resource "\Indicators\\\\\guru.ex4"

double SigUp= iCustom(Symbol(),0,"\Experts\/SnowyOwl.v1-1.eng.ex4::Indicators\\guru.ex4",Sensitivity,PopUp_Alert,5,0)。


你应该这样写(例子)。

#resource "\\Indicators\\trend_channel.ex4"

iCustom(Symbol(),0,"::Indicators\\trend_channel.ex4",kstd,bars,shift,0,bars);

而你在这里写了一些胡言乱语。

 
出于某种原因,Libraries文件夹也被列在日志中。为什么会这样呢?尤金正确地描述了对一个资源的引用。它应该在本地工作(如果所有默认文件夹,MQL4/Experts,MQL4/Indicators)。当你修复本地发射时,它很可能会在autovalidator中工作。
 

你好。

我正试图将我的产品上传到市场。自动验证给出了以下错误。

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) However this cannot be.我在鼠标移动起点的地方铺设了VWAP。脚本的编译没有错误,一切运行正常。也许自动验证不能与我需要选择起始点的脚本互动?

还有什么原因呢?该指标可以选择带量或不带量计数。默认情况下,它是 "无",但也许验证器运行了所有可能的参数,并偶然发现了货币对的计算量。该怎么做?

 
Anton Polkovnikov:

你好。

我正试图将我的产品上传到市场。自动验证给出了以下错误。

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) However this cannot be.我在鼠标移动起点的地方铺设了VWAP。脚本的编译没有错误,一切运行正常。也许自动验证不能与我需要选择起始点的脚本互动?

还有什么原因呢?该指标可以选择带量或不带量计数。默认情况下,它是 "无",但也许验证器运行了所有可能的参数,并偶然发现了货币对的计算量。该怎么做?

试图导入编译的文件(甚至是EX4/EX5)和DLLs

通过市场分发的程序应保证对用户是安全的。因此,任何试图使用已编译的EX4/EX5文件中的DLLs或函数的行为都被认为是一种错误。这些产品将不会在市场上公布。

如果你的程序需要使用没有提供的额外指标,请使用"资源"。


通过iCustom()应用于自定义指标

如果你的程序需要访问自定义指标数据,你应该把所有必要的指标放在资源。来自市场的产品必须准备好在任何没有准备的环境中工作,因此它们必须包含你在EX4/EX5文件中需要的一切。推荐有关该主题的文章。


https://www.mql5.com/ru/articles/2555#dll_and_libraries_prohibited

 
Anton Polkovnikov:

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) However this cannot be.

第387行中的超范围数组 是字符30。书上说。我们必须检查阵列。