构建1485之后,对CopyTicks()和CopyTicksRange()的缺陷和改进建议。 - 页 3

 
MetaQuotes Software Corp.:
谢谢你的留言,这个错误已经被修复了--现在它在指标中也能工作。很快就会发布更新。
请告诉我,通过CopyTicksRange()获取ticks的速度是否会提高?
 
Build 1491 - ME中的语言文档没有更新。关于CopyTicksRange()的信息只能通过网站获得!
 
在测试器中,目前(build 1495)的 "包"(具有相同的毫秒时间)中的ticks被逐一给出。而测试者分别计算每一个。在现实中,情况不可能是这样的。
 

我想我是来对地方了。亲爱的论坛成员,我自己纠结这个问题很久了,但我似乎无法解决这个问题。我希望你能提供帮助。

情况如下:经纪人Finam(Whotrades),MMA账户。我与26个俄罗斯证券一起工作,即我有26个打开的窗口,我的专家顾问的副本挂在每个窗口中。他们正在使用通用的C++库,该库有一个管理和显示调试信息的通用窗口。

一些策略参数直接取决于滴答带,所以所有的滴答带都要经过算法,这一点非常重要。当然,了解到OnTick()并不是在每个tick 起作用,也不总是如此,甚至在tick上也是如此,这让人很吃惊。因此,我不得不通过定时器使用CopyTicksCopyTicksRange 函数。由于巨大的努力(而且没有写在任何地方),我发现,datetime*1000正好是1970年以来的毫秒数,但这不是问题所在。
我们现在的最终结果是一个代码块,它,onTimer,从上午10点开始请求最新的tick数据。

问题是,由于一些重要的原因,在metatrader重启后的第一天,对于一些证券,tick数据在上午11点才开始到达(给或不给),第二天 - 一切正常,在上午10点开始。这些证券的名单是不固定的,在某些第一天,一些证券可能不会出现嘀嗒声,在另一些日子--对其他证券。
我以为问题出在缓存的刻度上。我以为这是不正确的时间问题,但事实证明不是这样的。此外,如果CopyTicks(Range)不能返回数据,似乎可以返回一个错误(-1),一切都会有意义。但它返回0,数组也是0,GetLastError返回ERR_SUCCESS。也就是说,就像那些刻度线不存在一样,这很奇怪,因为它们存在于窗口的色带中。

我很茫然。希望你能告诉我该怎么做,或者至少告诉我前进的方向。

如果你需要提供代码,我会在下一篇评论中,把它从 "额外 "的命令中清理出来并张贴出来。

谢谢你!

 
antru:

是的,一个代码是可取的。是真实账户还是模拟账户?终端的构建是什么?

老实说,我不知道这里是否有人与你的经纪人一起工作。如果这里没有人对你的帖子作出反应--写信给ServiceDesk,你可以直接链接到你的帖子。他们还需要提供一个代码。

 
antru:
你最好带着代码直接去服务台回放。
 
Alexey Kozitsyn:

是的,一个代码是可取的。是真实账户还是模拟账户?终端的构建是什么?

老实说,我不知道这里是否有人与你的经纪人一起工作。如果这里没有人对你的帖子作出反应--写信给ServiceDesk,你可以直接链接到你的帖子。他们还需要提供一个代码。

该账户是真实的,最新的构建,1525。我认为这是你应该做的。创建没有策略算法的裸体打钩代码。运行它。如果它不能工作,你应该给服务台打电话。如果它确实有效,也许应该在自己的代码中寻找错误。

谢谢你提到服务台,我不知道这有可能。我在metaquotes网站上看了看,所有联系人都是塞浦路斯和中国的电话号码,没有一个电子邮件。

 
Andrey Khatimlianskii:
最好是带着代码直接去服务台回放。
谢谢你!
 
antru:

该账户是真实的,构建是最新的,1525。我想这是我们应该做的。做一个没有策略算法的赤裸裸的tick-taking代码。运 行它。如果不工作,就把它带到服务台。如果它确实有效,也许应该在自己的代码中寻找错误。

谢谢你提到服务台,我不知道有这种可能。我在metaquotes网站上看了看,所有联系人都是塞浦路斯和中国的电话号码,没有一个电子邮件。

正是你所需要的,你的策略,在这种情况下,只会妨碍发现问题。需要的是一个你如何请求蜱虫的代码。
 
antru:

我想我是来对地方了。亲爱的论坛成员,我自己纠结这个问题很久了,但我似乎无法解决这个问题。我希望你能提供帮助。

情况如下:经纪人Finam(Whotrades),MMA账户。我与26个俄罗斯证券一起工作,即我有26个打开的窗口,我的专家顾问的副本挂在每个窗口中。他们正在使用通用的C++库,该库有一个管理和显示调试信息的通用窗口。

一些策略参数直接取决于滴答带,所以所有的滴答带都要经过算法,这一点非常重要。当然,了解到OnTick()并不是在每个tick 起作用,也不总是如此,甚至在tick上也是如此,这让人很吃惊。因此,我不得不通过定时器使用CopyTicksCopyTicksRange 函数。由于巨大的努力(而且没有写在任何地方),我发现,datetime*1000正好是1970年以来的毫秒数,但这不是问题所在。
我们现在的最终结果是一个代码块,它,onTimer,从上午10点开始请求最新的tick数据。

问题是,由于一些重要的原因,在metatrader重启后的第一天,对于一些证券,tick数据在上午11点才开始到达(给或不给),第二天 - 一切正常,在上午10点开始。这些证券的名单是不固定的,在某些第一天,一些证券可能不会出现跳动,在某些一天--对其他证券。
我以为问题出在缓存的刻度上。我以为这是不正确的时间问题,但事实证明不是这样的。此外,如果CopyTicks(Range)不能返回数据,似乎可以返回一个错误(-1),一切都会有意义。但它返回0,数组也是0,GetLastError返回ERR_SUCCESS。也就是说,就像那些刻度线不存在一样,这很奇怪,因为它们存在于窗口的色带中。

我很茫然。希望你能告诉我该怎么做,或者至少告诉我前进的方向。

如果你需要提供代码,我会在下一篇评论中,把它从 "额外 "的命令中清理出来并张贴出来。

谢谢你!

试着使用所有可能的方法来获得虱子和OnTisk以及CopyTicks,然后比较结果,使用最充分的一种。