云同步错误 - 页 3 12345 新评论 cowil 2013.05.13 23:04 #21 Clock:这听起来是个好主意,我很感谢这个提示。然而,关于这一点,有3点。1)正如我上面提到的,我也有 "无尽 "循环的问题,但由于我从这个主题中了解到 "无尽循环 "只是对 "一个事件超过10分钟 "的最佳猜测,我接受这可能是我的代码。我使用相当复杂的指标,由于(至少我认为如此)它们在创建句柄时计算其整个历史,这可能(在缓慢的计算机上)需要超过十分钟。2) 然而!通常我的云计算在10-15分钟后就崩溃了。但是昨天晚上,它完美地工作了8个小时。没有一次崩溃,尽管我根本就没有改变代码。很奇怪!3) 最重要的是,因为与你的方法有关。当你基于内存拒绝一个代理时,代理(以及整个云)不会崩溃,我明白这一点。但我不认为,更强大的机器会再次尝试相同的参数集,所以你基本上失去了优化数据点,我说的对吗?你说这是我们必须付出的代价吗?我很想知道,一旦我下班回来,我的代理是否还能工作......嗨,时钟。1)首先,除非你在使用指标,例如10年的100万数据,而且指标非常复杂,否则在这个处理能力的时代,我很惊讶在正常的系统上,任何事情都需要5分钟。我在这里强调正常的原因是,我仍然怀疑在云中有一些代理在机器上运行,这些机器要么负载极大,要么只是有Windows(创伤后应激)减速的严重问题。只需要一个哑巴代理就可以杀死你的优化....。2)我有和你完全一样的情况--即在优化开始后,一些云代理会返回结果,没有任何问题。然后过了5-20分钟,有时甚至更久,一个代理会抛出可怕的错误,然后砰的一声,优化结束。我也有过偶尔的优化,它完成时没有任何问题。非常令人沮丧,因为你无法访问代理的日志文件、系统细节、CPU使用率等,无法看到发生了什么。3)你说的这一点非常有趣。从我的理解来看,优化器只有在得到一个特定的参数 组合的结果时,才会考虑 "使用 "该参数组合,尽管我可能是错的。也许MetaQuotes的人可以评论一下这一点?无论如何,我希望你能取得进展!:) cowil 2013.05.13 23:13 #22 angevoyageur: 当 你拒绝所有 低于32G 内存的代理时,有多少代理 是 可用的 ? 你好。对于消费者类型的电脑来说,这似乎是一个很大的内存量,但云计算似乎没有任何问题,可以找到具有这些规格的机器。当我开始优化时,优化器很容易找到最初的64个代理,然后迅速提升到128个(当然,这取决于参数 集的配置)。我最初尝试了8GB--优化运行的时间较长,而且经常完成,但我仍然经常有一个代理产生错误,结果是杀死优化。然后我尝试了16GB--同样,它更好,但不是完美无缺。我没有再去尝试24GB--我想我应该直接进入32GB,看看会发生什么。)然后就看到了--完美无缺的优化。我想多玩玩,看看我是否能更好地磨练代理的配置要求,但当你因玩耍而被收费时,这种动机很快就消失了。) Alain Verleyen 2013.05.14 06:24 #23 cowil:你好。对于消费者类型的电脑来说,这似乎是一个很大的内存量,但云计算似乎没有任何问题,可以找到具有这些规格的机器。当我开始优化时,优化器很容易找到最初的64个代理,然后迅速提升到128个(当然,这取决于参数集的配置)。我最初尝试了8GB--优化运行的时间较长,而且经常完成,但我仍然经常有一个代理产生错误,结果是杀死优化。然后我尝试了16GB--同样,它更好,但不是完美无缺。我没有再去尝试24GB--我想我应该直接进入32GB,看看会发生什么。)然后就看到了--完美无缺的优化。我想多玩一会儿,看看我是否能更好地磨练代理配置要求,但当你因玩耍而被收费时,这种动力很快就消失了。) 如果能从Metaquotes得到一些回报,那就很有意思了。如果一台16G内存的机器不足以运行一些优化,那就有必要调查。如果我很好地理解,当你在本地运行你的优化时,你没有任何问题,为什么当使用云时,需要这么多内存? cowil 2013.05.14 21:51 #24 angevoyageur: 从Metaquotes得到一些回报将是有趣的。如果一台16G内存的机器不足以运行一些优化,那就需要调查。如果我很好地理解,当你在本地运行你的优化时,你没有任何问题,为什么当使用云时,需要这么多内存?我完全不知道。我的本地机器是一台8GB i7处理器的机器,MT5在上面安装了8个本地代理(它显然只是一个4核处理器,但在超线程的情况下,Windows和MT5当然把它看作一个8核处理器)。当进行优化时,每个代理似乎使用了约400MB的内存,这显然意味着8个代理需要约3.2GB的内存。离32GB还远着呢....我在想的另一件事,实际上可能是这个问题的根本原因,就是一个 "坏 "的云代理终止了整个优化的事实。事实上,可能发生的情况是,当云服务器 为优化工作分配代理时(没有说明内存要求),同样的 "坏 "代理被选中。当内存要求在OnInit()中被说明时,"坏 "代理被绕过,因为它们运行的盒子不符合要求,只有好的代理被选中。仔细想想,我怀疑这可能是更多的情况。是的,我已经向MetaQuotes登记了这个问题,但还没有听到任何回复。 MetaQuotes 2013.05.15 06:42 #25 如果OnInit(或任何其他函数)被执行超过10分钟,即使是在一个缓慢的代理上,它被认为是对MQL5云计算网络有害的无休止的循环(注意,对于本地和远程代理没有这样的限制)。对于这种情况,我们已经实现了OnInit函数的返回代码 INIT_AGENT_NOT_SUITABLE。使用它,云计算网络用户可以在测试运行一开始就检查并拒绝不合适的代理。你可以把这个评论看作是对你的服务台票据的正式答复。我们知道你已经熟悉了上面的信息。此外。在任何情况下,任何功能都被认为是不正常的、无效的和非最佳的,如果它的执行时间超过10分钟,即使是在最慢的PC上。 cowil 2013.05.15 09:50 #26 MetaQuotes:如果OnInit(或任何其他函数)被执行超过10分钟,即使是在一个缓慢的代理上,它被认为是对MQL5云计算网络有害的无尽循环(注意,本地和远程代理没有这种限制)。对于这种情况,我们已经实现了OnInit函数的返回代码 INIT_AGENT_NOT_SUITABLE。使用它,云计算网络用户可以在测试运行一开始就检查并拒绝不合适的代理。你可以把这个评论看作是对你的服务台票据的正式答复。我们知道你已经熟悉了上面的信息。此外。在任何情况下,如果任何功能的执行时间超过10分钟,即使在最慢的电脑上也被认为是不正常的、无效的和非最佳的。 嗨,MetaQuotes。首先,非常感谢您的评论--非常感谢。 我面临的问题(如果你回顾这个帖子,显然还有其他问题)是,当使用我的本地代理进行优化时,优化运行良好--即随着优化的进行,每个代理上的 "完成百分比 "状态稳步上升。如果我的专家号中的OnTick()事件处理程序包含任何需要超过一分钟(更不用说10分钟)才能完成的代码,这些 "完成百分比 "的百分比肯定会在这些时间暂停?如果我的代码包含云代理错误所暗示的无休止的循环形式,我不是应该在这些状态百分比中看到10分钟(或更多)的暂停吗? cowil 2013.05.20 11:58 #27 好吧,经过我的专家们的努力,我似乎已经找到了OnInit()或OnTick() "无尽循环 "错误的问题的根源--这就是SymbolInfoInteger()命令。我不知道SymbolInfoDouble()或SymbolInfoTick()是否会导致同样的问题,因为我还没有机会进一步实验。如果有人想试试这个,请在优化器中运行以下专家,使用云代理。/+------------------------------------------------------------------+ //| MultiSymbolTest.mq5 | //| | //+------------------------------------------------------------------+ input double var1 = 45; input double var2 = 54; input bool onInit = true; input bool onTick = false; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (onInit) { string pairsToTrade[] = {"AUDUSD","EURJPY","EURUSD","GBPUSD","AUDJPY","USDJPY","AUDCAD"}; for (int i=0; i<ArraySize(pairsToTrade); i++) { int digits = SymbolInfoInteger(pairsToTrade[i], SYMBOL_DIGITS); if (digits == -1) return(INIT_FAILED); } } // Return... return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ void OnTick() { if (onTick) { string pairsToTrade[] = {"AUDUSD","EURJPY","EURUSD","GBPUSD","AUDJPY","USDJPY","AUDCAD"}; for (int i=0; i<ArraySize(pairsToTrade); i++) { int digits = SymbolInfoInteger(pairsToTrade[i], SYMBOL_DIGITS); if (digits == -1) return; } } ExpertRemove(); } 选择你想测试OnInit()或OnTick(),给var1和var2足够的开始/步骤/停止值,产生大约1000个组合(可能更少,但这是我一直使用的),然后启动优化器。大约10分钟后,你会看到 "检测到无尽循环 "的错误。哦,我之所以把 "ExpertRemove() "放在OnTick()的末尾,是为了表明只需要OnTick()的一次迭代就能产生错误。不用说,我也已经向服务台报告了这个问题...... cowil 2013.05.20 12:10 #28 哦,我忘了说,不管什么原因,我上面提供的内存修复方法似乎在大多数时候都能解决这个问题,但不是全部。我不知道这是怎么/为什么/什么原因,我不知道。它一定是在MT5的肠子里挠到了什么东西......:) Alain Verleyen 2013.05.20 12:26 #29 我可以确认这个问题:2013.05.20 14:22:31 MQL5云欧洲2个遗传通(0,22)测试,错误 "OnInit函数中检测到无尽循环,专家被MQL5云网络 拒绝",时间为602秒(PR140)。 Slava 2013.05.20 16:32 #30 需要思考... 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这听起来是个好主意,我很感谢这个提示。
然而,关于这一点,有3点。
1)正如我上面提到的,我也有 "无尽 "循环的问题,但由于我从这个主题中了解到 "无尽循环 "只是对 "一个事件超过10分钟 "的最佳猜测,我接受这可能是我的代码。我使用相当复杂的指标,由于(至少我认为如此)它们在创建句柄时计算其整个历史,这可能(在缓慢的计算机上)需要超过十分钟。
2) 然而!通常我的云计算在10-15分钟后就崩溃了。但是昨天晚上,它完美地工作了8个小时。没有一次崩溃,尽管我根本就没有改变代码。很奇怪!
3) 最重要的是,因为与你的方法有关。当你基于内存拒绝一个代理时,代理(以及整个云)不会崩溃,我明白这一点。但我不认为,更强大的机器会再次尝试相同的参数集,所以你基本上失去了优化数据点,我说的对吗?你说这是我们必须付出的代价吗?
我很想知道,一旦我下班回来,我的代理是否还能工作......
嗨,时钟。
1)首先,除非你在使用指标,例如10年的100万数据,而且指标非常复杂,否则在这个处理能力的时代,我很惊讶在正常的系统上,任何事情都需要5分钟。我在这里强调正常的原因是,我仍然怀疑在云中有一些代理在机器上运行,这些机器要么负载极大,要么只是有Windows(创伤后应激)减速的严重问题。只需要一个哑巴代理就可以杀死你的优化....。
2)我有和你完全一样的情况--即在优化开始后,一些云代理会返回结果,没有任何问题。然后过了5-20分钟,有时甚至更久,一个代理会抛出可怕的错误,然后砰的一声,优化结束。我也有过偶尔的优化,它完成时没有任何问题。非常令人沮丧,因为你无法访问代理的日志文件、系统细节、CPU使用率等,无法看到发生了什么。
3)你说的这一点非常有趣。从我的理解来看,优化器只有在得到一个特定的参数 组合的结果时,才会考虑 "使用 "该参数组合,尽管我可能是错的。也许MetaQuotes的人可以评论一下这一点?
无论如何,我希望你能取得进展!:)
当 你拒绝所有 低于32G 内存的代理时,有多少代理 是 可用的 ?
你好。
对于消费者类型的电脑来说,这似乎是一个很大的内存量,但云计算似乎没有任何问题,可以找到具有这些规格的机器。当我开始优化时,优化器很容易找到最初的64个代理,然后迅速提升到128个(当然,这取决于参数 集的配置)。我最初尝试了8GB--优化运行的时间较长,而且经常完成,但我仍然经常有一个代理产生错误,结果是杀死优化。然后我尝试了16GB--同样,它更好,但不是完美无缺。我没有再去尝试24GB--我想我应该直接进入32GB,看看会发生什么。)然后就看到了--完美无缺的优化。
我想多玩玩,看看我是否能更好地磨练代理的配置要求,但当你因玩耍而被收费时,这种动机很快就消失了。)
你好。
对于消费者类型的电脑来说,这似乎是一个很大的内存量,但云计算似乎没有任何问题,可以找到具有这些规格的机器。当我开始优化时,优化器很容易找到最初的64个代理,然后迅速提升到128个(当然,这取决于参数集的配置)。我最初尝试了8GB--优化运行的时间较长,而且经常完成,但我仍然经常有一个代理产生错误,结果是杀死优化。然后我尝试了16GB--同样,它更好,但不是完美无缺。我没有再去尝试24GB--我想我应该直接进入32GB,看看会发生什么。)然后就看到了--完美无缺的优化。
我想多玩一会儿,看看我是否能更好地磨练代理配置要求,但当你因玩耍而被收费时,这种动力很快就消失了。)
从Metaquotes得到一些回报将是有趣的。如果一台16G内存的机器不足以运行一些优化,那就需要调查。如果我很好地理解,当你在本地运行你的优化时,你没有任何问题,为什么当使用云时,需要这么多内存?
我完全不知道。我的本地机器是一台8GB i7处理器的机器,MT5在上面安装了8个本地代理(它显然只是一个4核处理器,但在超线程的情况下,Windows和MT5当然把它看作一个8核处理器)。当进行优化时,每个代理似乎使用了约400MB的内存,这显然意味着8个代理需要约3.2GB的内存。离32GB还远着呢....
我在想的另一件事,实际上可能是这个问题的根本原因,就是一个 "坏 "的云代理终止了整个优化的事实。事实上,可能发生的情况是,当云服务器 为优化工作分配代理时(没有说明内存要求),同样的 "坏 "代理被选中。当内存要求在OnInit()中被说明时,"坏 "代理被绕过,因为它们运行的盒子不符合要求,只有好的代理被选中。仔细想想,我怀疑这可能是更多的情况。
是的,我已经向MetaQuotes登记了这个问题,但还没有听到任何回复。
如果OnInit(或任何其他函数)被执行超过10分钟,即使是在一个缓慢的代理上,它被认为是对MQL5云计算网络有害的无休止的循环(注意,对于本地和远程代理没有这样的限制)。
对于这种情况,我们已经实现了OnInit函数的返回代码 INIT_AGENT_NOT_SUITABLE。使用它,云计算网络用户可以在测试运行一开始就检查并拒绝不合适的代理。
你可以把这个评论看作是对你的服务台票据的正式答复。我们知道你已经熟悉了上面的信息。
此外。在任何情况下,任何功能都被认为是不正常的、无效的和非最佳的,如果它的执行时间超过10分钟,即使是在最慢的PC上。
如果OnInit(或任何其他函数)被执行超过10分钟,即使是在一个缓慢的代理上,它被认为是对MQL5云计算网络有害的无尽循环(注意,本地和远程代理没有这种限制)。
对于这种情况,我们已经实现了OnInit函数的返回代码 INIT_AGENT_NOT_SUITABLE。使用它,云计算网络用户可以在测试运行一开始就检查并拒绝不合适的代理。
你可以把这个评论看作是对你的服务台票据的正式答复。我们知道你已经熟悉了上面的信息。
此外。在任何情况下,如果任何功能的执行时间超过10分钟,即使在最慢的电脑上也被认为是不正常的、无效的和非最佳的。
嗨,MetaQuotes。
首先,非常感谢您的评论--非常感谢。
我面临的问题(如果你回顾这个帖子,显然还有其他问题)是,当使用我的本地代理进行优化时,优化运行良好--即随着优化的进行,每个代理上的 "完成百分比 "状态稳步上升。如果我的专家号中的OnTick()事件处理程序包含任何需要超过一分钟(更不用说10分钟)才能完成的代码,这些 "完成百分比 "的百分比肯定会在这些时间暂停?如果我的代码包含云代理错误所暗示的无休止的循环形式,我不是应该在这些状态百分比中看到10分钟(或更多)的暂停吗?
好吧,经过我的专家们的努力,我似乎已经找到了OnInit()或OnTick() "无尽循环 "错误的问题的根源--这就是SymbolInfoInteger()命令。我不知道SymbolInfoDouble()或SymbolInfoTick()是否会导致同样的问题,因为我还没有机会进一步实验。如果有人想试试这个,请在优化器中运行以下专家,使用云代理。
选择你想测试OnInit()或OnTick(),给var1和var2足够的开始/步骤/停止值,产生大约1000个组合(可能更少,但这是我一直使用的),然后启动优化器。大约10分钟后,你会看到 "检测到无尽循环 "的错误。
哦,我之所以把 "ExpertRemove() "放在OnTick()的末尾,是为了表明只需要OnTick()的一次迭代就能产生错误。
不用说,我也已经向服务台报告了这个问题......
我可以确认这个问题:
2013.05.20 14:22:31 MQL5云欧洲2个遗传通(0,22)测试,错误 "OnInit函数中检测到无尽循环,专家被MQL5云网络 拒绝",时间为602秒(PR140)。