功能性睡眠替代品 - 页 2 1234 新评论 Simon Gniadkowski 2013.02.01 23:08 #11 paulepanke:对这样的语句要小心,运行sleep()总是有逻辑上的理由,在Tester甚至在指标中。 我没有说没有使用sleep()的逻辑理由,有很多,我说没有理由期望sleep()在策略测试器中起 作用。 它在策略测试器图表上 运行的指标中起作用吗,我不知道,也许它是。它在策略测试器中运行的EA中起作用吗,据我所知,不起作用。 Nathan 2013.02.02 00:21 #12 RaptorUK: 看看TimeSeconds()给你什么,然后想想TimeCurrent()给你什么。.你需要哪一个,为什么? 西蒙, intTimeSeconds( datetime time)返回指定时间 内从分钟开始经过的秒数。 datetimeTimeCurrent( )返回最后已知的服务器时间(最新报价的输入时间),即从1970年1月1日00:00起经过的秒数。"你需要哪一个,为什么?"- 西蒙我会同时使用两个e'm,因为它们是相辅相成的。- 内森TimeSeconds(datetime time)需要在其大括号内放置一个变量。然后将TimeCurrent()放在这些大括号内,这就为我提供了可行的解决方案。我曾经这样做过,但不明白为什么返回的时间值会出现跳动和停顿(由于缺乏有效的刻度)。你对此有什么看法?谢谢你。 Nathan 2013.02.02 00:39 #13 WHRoeder:在你返回之前,没有创建任何类型 的ticks,它创建了下一个,并调用你的start()。如果你计算了5分钟并返回,那么下次调用时的成交量(tick数)将是+1。在实时图表中,如果你计算了5分钟,那么你将错过5分钟的点数,而在M1上将形成几个新的柱子。 威廉。谢谢你对这个问题的阐述。我对 "2. "的解释是,当一个tick被创建时,返回函数被调用。接下来,在调用return(0)函数后直接调用Start()函数,再次触发程序的执行。对2.这部分的解释是否正确?"如果你计算5分钟",我怎么能确定EA会计算5分钟 (即使EA计算了5分钟,我也不相信这能保证会产生一个点。勾股的概率会增加)?抱歉,我在阅读方面有困难。 "如果你计算了5分钟并返回,那么下一次调用时的成交量(tick数)将是+1。在实时图表中,如果你计算5分钟,那么你将错过5分钟的刻度线,而在M1上将形成几个新的柱子。"非常感谢您的回答。 Nathan 2013.02.02 01:03 #14 RaptorUK: 我没有说没有使用sleep()的逻辑理由,有很多,我说没有理由期望sleep()在策略测试器中起作用。 它在策略测试器图表上 运行的指标中是否起作用,我不知道,也许它起作用。它在策略测试器中运行的EA中起作用吗,据我所知,不起作用。 西蒙。"可以让在策略测试器中 运行的EA暂停吗? 是的,可以。"你能不能就你在测试器中用来 "暂停 "EA的这个方法表达你的想法?谢谢你 William Roeder 2013.02.02 02:30 #15 EA从start()返回给测试者。测试人员创建下一个tick并调用start()。如果EA没有返回,就没有下一个tick。start()需要多长时间才能返回并不重要。当它返回的时候,下一个tick就会被创建。在测试器中,你不能在EA中暂停或睡眠。你可以在EA从开始返回后以编程方式 按下暂停按钮来暂停测试器。 Nathan 2013.02.02 02:52 #16 威廉。那么,在EA中,一个新刻度线会调用start()函数,是吗?我的问题是,"除了新刻度线,你知道有什么其他方式可以调用start()函数吗?可能有一个一致的重复性动作来替代对Start()的调用?"(我在想,有没有一种方法可以持续跟踪不依赖于刻度的秒数)"......下一个tick是在它出现时创建的。"我相信你想写的是,"在创建一个新的tick时,Start()被执行";)所以,你说在测试器中,EA不能暂停或睡眠,是吗?我会查看你提供的链接,但同时,你能不能解释一下在被测试的EA从开始返回后,"按下暂停按钮,暂停测试器 "的方法?当在测试器中运行时,这种方法是否可以模拟EA在真实账户上 "实时 "暂停一段决定性时间的表现?我知道测试器有局限性,必须使用 "变通方法 "来模拟 "实时 "性能。非常感谢威廉。另外,你是否介意我直接称呼你为威尔?这将为我节省每条信息的时间。你的电话。我喜欢你的EA拥有的一个功能,这就是:"我想在周末(周五收市)前关闭所有订单 ,以防止市场在周末出现缺口时,通过SL来防止损失。"(高兴地拍手。)哈哈哈!;)通过在你的EA中添加这一功能,你减少了不必要的损失,但这与我目前试图做的不同。目前,我正试图持续跟踪秒数,而不需要用刻度来更新秒数。我希望有一种不同的方法来更新Start()函数,明白吗?谢谢你 Simon Gniadkowski 2013.02.02 09:45 #17 WhooDoo22:目前,我正试图持续跟踪时间的秒数,而不需要用刻度来更新秒数。我希望有一种不同的方法来更新Start()函数,明白吗? 我怀疑你想做的是一个有缺陷的解决方案,因为缺乏理解。 如果价格在30秒内没有变化,你为什么需要知道从一秒到下一秒的时间? 当价格变化时,你会得到一个刻度。澄清一下WHRoeder 所说的,所有的ticks都是在策略测试器开始调用/执行它们之前创建的,它们被保存在一个.fxt文件中。fxt文件,ST调用第一个tick,这反过来导致start()被执行,下一个tick不会被调用/使用,直到start()执行完毕,理解这一点非常重要。只有当start()执行完毕,下一个tick才会被使用,这样EA才能再次调用start()。 当ST全速运行时,start()的运行速度控制着ST的速度,所以一个非常简单的start()函数会让ST运行得非常快,一个复杂的start()函数会导致ST运行得更慢。在现场/演示的情况下,如果start()函数非常复杂,需要很长的时间来运行,也许是几十分之一秒,有可能在start()函数完成之前,下一个tick就到了,在这种情况下,tick将被错过,不会导致start()被调用......这种情况不可能发生在ST。 Simon Gniadkowski 2013.02.02 10:04 #18 WhooDoo22:西蒙。"可以让在策略测试器中运行的EA暂停吗? 是的,可以。"你能不能就你在测试器中用来 "暂停 "EA的这个方法表达你的想法? 当然可以,这不是很优雅,所以我不建议任何人使用它。 我使用了一个GlobalVariable,通过脚本设置和取消设置,当ST中的EA看到GlobalVariable被设置时,它将坐在一个循环中,不断检查GlobalVariable是否被取消设置,当脚本取消设置GlobalVariable时,EA退出循环,它的start()函数 可以终止。 Simon Gniadkowski 2013.02.02 10:07 #19 WhooDoo22:"你需要哪一个,为什么?"- 西蒙我想把e'm这两个词放在一起使用,因为它们是相辅相成的。- 内森TimeSeconds(datetime time)需要在其大括号内放置一个变量。TimeCurrent()被放在这些大括号内,这给我提供了可行的解决方案。我曾经这样做过,但不明白为什么返回的时间值会出现跳过和暂停的情况(由于缺乏有效的刻度线/刻度)。 假设你有2个事件,这些事件相隔10秒,那么对于这2个事件,TimeSeconds(datetime time) 返回的值会有什么区别? Nathan 2013.02.02 19:29 #20 RaptorUK:我怀疑你所做的是由于缺乏理解而导致的有缺陷的解决方案。 如果价格在30秒内没有变化,为什么你需要知道从一秒到下一秒的时间呢? 当价格变化时,你会得到一个刻度。澄清一下WHRoeder 所说的,所有的ticks都是在策略测试器开始调用/执行它们之前创建的,它们被保存在一个.fxt文件中。fxt文件,ST调用第一个tick,这反过来导致start()被执行,下一个tick不会被调用/使用,直到start()执行完毕,理解这一点非常重要。只有当start()执行完毕,下一个tick才会被使用,这样EA才能再次调用start()。 当ST全速运行时,start()的运行速度控制着ST的速度,所以一个非常简单的start()函数会让ST运行得非常快,一个复杂的start()函数会导致ST运行得更慢。在现场/演示的情况下,如果start()函数非常复杂,需要很长的时间来运行,也许是几十分之一秒,有可能在start()函数完成之前,下一个tick就到了,在这种情况下,tick将被错过,不会导致start()被调用......这在ST上不可能发生。 西蒙。我怀疑你想做的是一个有缺陷的解决方案,因为缺乏理解。 如果价格在30秒内没有变化,你为什么需要知道从一秒到下一秒的时间? 当价格变化时,你会得到一个tick。我承认我确实缺乏理解,这就是为什么我在MQL4论坛上讨论这个话题。我希望在价格变化时保存价格(我明白如何做到这一点)。此外,我也明白如何在一个实时/模拟图表上使用Sleep(),每秒钟持续保存价格。我的目标是。我希望持续追踪秒数(不根据创建的点位追踪秒数),最多不超过一分钟,然后将追踪的秒数重置为零。我明白为什么我希望完成这个目标。原因是,我需要在测试器中测试一个EA,在测试时不能使用Sleep()。该怎么做对吗?收集选择。那就详细说说吧。)给EA编码一个定时器(可用于测试器)。这个定时器从0-30开始计数,或从30-0开始计数。当这个时间在向上/向下计数时,我有一个单独的矢量跟踪价格行动(一个非常大的矢量)。我的条件是这样的。如果价格走了 x个点(在0-30或30-0秒内),作出决定。如果价格没有 上涨x点(0-30或30-0秒内),ArrayInitialize()。你对这个西蒙怎么说? 谢谢你。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对这样的语句要小心,运行sleep()总是有逻辑上的理由,在Tester甚至在指标中。
看看TimeSeconds()给你什么,然后想想TimeCurrent()给你什么。.你需要哪一个,为什么?
西蒙,
返回指定时间 内从分钟开始经过的秒数。
"你需要哪一个,为什么?"- 西蒙
我会同时使用两个e'm,因为它们是相辅相成的。- 内森
TimeSeconds(datetime time)需要在其大括号内放置一个变量。然后将TimeCurrent()放在这些大括号内,这就为我提供了可行的解决方案。我曾经这样做过,但不明白为什么返回的时间值会出现跳动和停顿(由于缺乏有效的刻度)。
你对此有什么看法?
谢谢你。
威廉。
谢谢你对这个问题的阐述。
我对 "2. "的解释是,当一个tick被创建时,返回函数被调用。接下来,在调用return(0)函数后直接调用Start()函数,再次触发程序的执行。对2.这部分的解释是否正确?
"如果你计算5分钟",我怎么能确定EA会计算5分钟 (即使EA计算了5分钟,我也不相信这能保证会产生一个点。勾股的概率会增加)?
抱歉,我在阅读方面有困难。
"如果你计算了5分钟并返回,那么下一次调用时的成交量(tick数)将是+1。在实时图表中,如果你计算5分钟,那么你将错过5分钟的刻度线,而在M1上将形成几个新的柱子。"
非常感谢您的回答。
我没有说没有使用sleep()的逻辑理由,有很多,我说没有理由期望sleep()在策略测试器中起作用。 它在策略测试器图表上 运行的指标中是否起作用,我不知道,也许它起作用。它在策略测试器中运行的EA中起作用吗,据我所知,不起作用。
西蒙。
"可以让在策略测试器中 运行的EA暂停吗? 是的,可以。"
你能不能就你在测试器中用来 "暂停 "EA的这个方法表达你的想法?
谢谢你
威廉。
那么,在EA中,一个新刻度线会调用start()函数,是吗?
我的问题是,"除了新刻度线,你知道有什么其他方式可以调用start()函数吗?可能有一个一致的重复性动作来替代对Start()的调用?"
(我在想,有没有一种方法可以持续跟踪不依赖于刻度的秒数)
"......下一个tick是在它出现时创建的。"
我相信你想写的是,"在创建一个新的tick时,Start()被执行";)
所以,你说在测试器中,EA不能暂停或睡眠,是吗?
我会查看你提供的链接,但同时,你能不能解释一下在被测试的EA从开始返回后,"按下暂停按钮,暂停测试器 "的方法?
当在测试器中运行时,这种方法是否可以模拟EA在真实账户上 "实时 "暂停一段决定性时间的表现?
我知道测试器有局限性,必须使用 "变通方法 "来模拟 "实时 "性能。
非常感谢威廉。
另外,你是否介意我直接称呼你为威尔?这将为我节省每条信息的时间。你的电话。
我喜欢你的EA拥有的一个功能,这就是:"我想在周末(周五收市)前关闭所有订单 ,以防止市场在周末出现缺口时,通过SL来防止损失。"
(高兴地拍手。)哈哈哈!;)通过在你的EA中添加这一功能,你减少了不必要的损失,但这与我目前试图做的不同。目前,我正试图持续跟踪秒数,而不需要用刻度来更新秒数。我希望有一种不同的方法来更新Start()函数,明白吗?
谢谢你
目前,我正试图持续跟踪时间的秒数,而不需要用刻度来更新秒数。我希望有一种不同的方法来更新Start()函数,明白吗?
我怀疑你想做的是一个有缺陷的解决方案,因为缺乏理解。 如果价格在30秒内没有变化,你为什么需要知道从一秒到下一秒的时间? 当价格变化时,你会得到一个刻度。
澄清一下WHRoeder 所说的,所有的ticks都是在策略测试器开始调用/执行它们之前创建的,它们被保存在一个.fxt文件中。fxt文件,ST调用第一个tick,这反过来导致start()被执行,下一个tick不会被调用/使用,直到start()执行完毕,理解这一点非常重要。只有当start()执行完毕,下一个tick才会被使用,这样EA才能再次调用start()。 当ST全速运行时,start()的运行速度控制着ST的速度,所以一个非常简单的start()函数会让ST运行得非常快,一个复杂的start()函数会导致ST运行得更慢。
在现场/演示的情况下,如果start()函数非常复杂,需要很长的时间来运行,也许是几十分之一秒,有可能在start()函数完成之前,下一个tick就到了,在这种情况下,tick将被错过,不会导致start()被调用......这种情况不可能发生在ST。
西蒙。
"可以让在策略测试器中运行的EA暂停吗? 是的,可以。"
你能不能就你在测试器中用来 "暂停 "EA的这个方法表达你的想法?
"你需要哪一个,为什么?"- 西蒙
我想把e'm这两个词放在一起使用,因为它们是相辅相成的。- 内森
TimeSeconds(datetime time)需要在其大括号内放置一个变量。TimeCurrent()被放在这些大括号内,这给我提供了可行的解决方案。我曾经这样做过,但不明白为什么返回的时间值会出现跳过和暂停的情况(由于缺乏有效的刻度线/刻度)。
我怀疑你所做的是由于缺乏理解而导致的有缺陷的解决方案。 如果价格在30秒内没有变化,为什么你需要知道从一秒到下一秒的时间呢? 当价格变化时,你会得到一个刻度。
澄清一下WHRoeder 所说的,所有的ticks都是在策略测试器开始调用/执行它们之前创建的,它们被保存在一个.fxt文件中。fxt文件,ST调用第一个tick,这反过来导致start()被执行,下一个tick不会被调用/使用,直到start()执行完毕,理解这一点非常重要。只有当start()执行完毕,下一个tick才会被使用,这样EA才能再次调用start()。 当ST全速运行时,start()的运行速度控制着ST的速度,所以一个非常简单的start()函数会让ST运行得非常快,一个复杂的start()函数会导致ST运行得更慢。
在现场/演示的情况下,如果start()函数非常复杂,需要很长的时间来运行,也许是几十分之一秒,有可能在start()函数完成之前,下一个tick就到了,在这种情况下,tick将被错过,不会导致start()被调用......这在ST上不可能发生。
西蒙。
我怀疑你想做的是一个有缺陷的解决方案,因为缺乏理解。 如果价格在30秒内没有变化,你为什么需要知道从一秒到下一秒的时间? 当价格变化时,你会得到一个tick。
我承认我确实缺乏理解,这就是为什么我在MQL4论坛上讨论这个话题。我希望在价格变化时保存价格(我明白如何做到这一点)。此外,我也明白如何在一个实时/模拟图表上使用Sleep(),每秒钟持续保存价格。我的目标是。我希望持续追踪秒数(不根据创建的点位追踪秒数),最多不超过一分钟,然后将追踪的秒数重置为零。我明白为什么我希望完成这个目标。原因是,我需要在测试器中测试一个EA,在测试时不能使用Sleep()。该怎么做对吗?收集选择。
那就详细说说吧。)
给EA编码一个定时器(可用于测试器)。这个定时器从0-30开始计数,或从30-0开始计数。当这个时间在向上/向下计数时,我有一个单独的矢量跟踪价格行动(一个非常大的矢量)。
我的条件是这样的。
如果价格走了 x个点(在0-30或30-0秒内),作出决定。
如果价格没有 上涨x点(0-30或30-0秒内),ArrayInitialize()。
你对这个西蒙怎么说?
谢谢你。