初学者的问题 MQL5 MT5 MetaTrader 5 - 页 320 1...313314315316317318319320321322323324325326327...1503 新评论 Aleksandr Novikov 2014.11.27 10:17 #3191 亲爱的程序员们,请告知谁知道!我有一个MT4的专家顾问,在达到总利润时关闭一堆订单(500-2500)。正如我所注意到的,它一个接一个地关闭订单,根据魔法进行排序--从小到大。因此,这里有一个问题:是否有可能在你的专家顾问中加入 在订单关闭时启动一个脚本的功能,这将关闭订单,但从最后按魔术师排序--从大到小?这个想法是否会加快关闭订单的速度? 有人告诉我,最多可以同时向服务器发送4个请求。 Roman Shiredchenko 2014.11.27 10:54 #3192 Tapochun: 那么你需要看一下代码...也许这就是它...印刷品中是否有这样的线条? 没有。这都是以前测试过的,没有问题的...还能是什么呢? Vasiliy Sokolov 2014.11.27 10:57 #3193 Novikov:亲爱的程序员们,请告知谁知道!我有一个MT4的专家顾问,在达到总利润时关闭一堆订单(500-2500)。正如我所注意到的,它一个接一个地关闭订单,根据魔法进行排序--从小到大。因此,问题是,是否有可能在专家顾问中添加一个功能, 在订单关闭时启动一个脚本,关闭订单,但按魔术师从头到尾进行排序--从大到小?那么这个想法是否会加快结单的速度? 有人告诉我,最多可以同时向服务器发送4个请求。你不能从专家顾问中运行该脚本。你真的可以同时向服务器发送几个来自不同EA的请求。如果你同步几个EA,确实有可能获得一些性能的提升。但如果我是你,我不会用我的头去撞那扇敞开的门。我宁愿改用MetaTrader5。OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。 关于交易、自动交易系统和策略测试的论坛 开发人员!错误10024(请求太多)。 C-4, 2014.11.07 15:55 总之总结一下我的小研究。我设法在50毫秒内推送50个请求;180毫秒内推送100个请求;2100毫秒内推送200个请求;9000毫秒内推送500个请求;23000毫秒内推送1000个请求。(时间是平均数)。也就是说,我们越是需要推动,就越是需要时间。这可能是一个文盲编码的问题。一组请求的实际执行时间 当然会更长。这个时间似乎等同于最坏的情况--发送请求的时间+请求执行的时间。在任何情况下,在极限情况下,它趋向于交易所执行订单的平均时间+与交易服务器通信的时间。如果请求的数量少于60个,那么就没有必要与交易服务器通信,发送所有的请求并等待它们的满足。发送本身需要40-60毫秒。如果有更多的要求,那就更难了。你必须等待服务器的回复,再次开启发送订单,等待拒绝,等等。因此,在网络上有这种信息的交流。当有很多请求时,池子会随着请求的满足而逐渐释放。随后的派遣是小部分的,每次一到两个请求,这就是网络。因此,时间越来越长。总而言之,这段代码似乎工作正常,你只需要了解发送/接收请求的机制。我附上了测试这种发送的代码。p.s. 总结一下,60个请求即使对HFT交易来说也是绰绰有余。你实际上需要对交易行为进行有意识的分析--你发送一个订单,得到结果,分析交易环境,必要时发送一个新的订单。整个周期将明显超过40-60毫秒+1个订单的平均执行时间的规模。 [删除] 2014.11.27 11:05 #3194 R0MAN: 没有。一切都用来测试,没有问题...有什么提示吗,还可能是什么原因? 尝试用新的数据进行测试。你有没有试着在不同的终端中运行它? Roman Shiredchenko 2014.11.27 11:22 #3195 Tapochun: 尝试用新的数据进行测试。你有没有试着在不同的终端中运行它? 不,我今天从Bx公司安装了一个新的。试着在上面测试。我将尝试另一个...我将在这里公布结果。 Aleksandr Novikov 2014.11.27 11:22 #3196 C-4:不可能从EA中运行一个脚本。确实有可能在同一时间从不同的EA向服务器发送几个请求。如果你同步几个EA,确实有可能获得一定的性能提升。但如果我是你,我不会用头去撞那扇敞开的门。我宁愿改用MetaTrader5。那里的OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。MT5和更多的100-200个订单有什么关系?而在MT5中,什么100-200个订单?这些是MT5中的100-200种交易工具!毕竟,在一个符号上只能建立一个订单--如果我没有弄错的话!而我在28种工具上积累了大量的订单,同时又有一部分是手数!如果你在这个问题上有什么建议,我将不胜感激,给出与问题无关的建议是无用的,也是没有建设性的! Roman Shiredchenko 2014.11.27 11:32 #3197 C-4:不可能从EA中运行一个脚本。确实有可能在同一时间从不同的EA向服务器发送几个请求。如果你同步几个EA,确实有可能获得一定的性能提升。但如果我是你,我不会用我的头去撞开的门。我宁愿改用MetaTrader5。那里的OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。 О!瓦西里,如果你在这里,请看一下我的问题,谢谢你。 Vasiliy Sokolov 2014.11.27 11:41 #3198 R0MAN: 哦!瓦西里,如果在这里,请看一下我的问题,谢谢你。嗨!检查了一下。不幸的是,我以前从未遇到过这样的错误。我想到的唯一一件事是检查测试仪的历史文件夹,例如这里y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\。如果没有所需符号的文件,请尝试从主文件夹y:\MetaTrader 5\bases\AdmiralMarkets-MT5\手动复制数据,并重新启动测试器。到目前为止没有其他想法。s.e. 虽然这很奇怪。测试人员应自动复制历史记录。但不知道是什么。 Roman Shiredchenko 2014.11.27 11:44 #3199 C-4: 嗨!检查了一下。不幸的是,我以前从未遇到过这样的错误。我想到的唯一一件事是检查测试器中的历史文件夹,例如这里y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\。如果没有所需符号的文件,请尝试从主文件夹y:\MetaTrader 5\bases\AdmiralMarkets-MT5\手动复制数据,并重新启动测试器。到目前为止,我还没有其他想法。 谢谢你。我将回到校园...我现在在用手机。 Vasiliy Sokolov 2014.11.27 11:59 #3200 Novikov: MT5和它有什么关系,尤其是100-200个订单?那么MT5中的100-200个订单是什么?这些是MT5中的100-200种交易工具!毕竟,一个符号只能开1个订单--如果我没有搞错的话!而我在28种工具上积累了大量的订单,同时又有一部分是手数!如果你在这个问题上有什么建议,我将不胜感激,给出与问题无关的建议是无用的,也是没有建设性的!再一次(仔细阅读)。在MetaTrader4中,您只能按顺序关闭订单:发送订单关闭一个订单,等待其执行,继续下一个订单,等等。由于这个原因,在MetaTrader4中关闭一批订单的时间是相当长的,不能通过微不足道的手段减少。然而,你可以将几个专家顾问系统上传到你自己的图表中,并使它们相互交换信息,通过一个共同的命令关闭订单。每个专家只在其符号处关闭订单。由于MetaTrader4中有几个交易线程,它们不会相互阻挡和相互发送订单。然而,组织这样一个专家库是很复杂的,从你的知识水平来看,我不会建议你做这样的事情。如果你仍然认为我写了太多的字,这里有一个简单的总结。1.你的问题的答案是否定的,你不能从专家顾问中运行一个脚本。2.如果不使用复杂的方法,你无法提高MetaTrader4中交易订单的执行速度。通常解决你的问题的唯一方法是使用OrderSendAsync函数,这在MetaTrader4中不存在。 1...313314315316317318319320321322323324325326327...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
亲爱的程序员们,请告知谁知道!
我有一个MT4的专家顾问,在达到总利润时关闭一堆订单(500-2500)。正如我所注意到的,它一个接一个地关闭订单,根据魔法进行排序--从小到大。
因此,这里有一个问题:是否有可能在你的专家顾问中加入 在订单关闭时启动一个脚本的功能,这将关闭订单,但从最后按魔术师排序--从大到小?
这个想法是否会加快关闭订单的速度?
有人告诉我,最多可以同时向服务器发送4个请求。那么你需要看一下代码...也许这就是它...印刷品中是否有这样的线条?
亲爱的程序员们,请告知谁知道!
我有一个MT4的专家顾问,在达到总利润时关闭一堆订单(500-2500)。正如我所注意到的,它一个接一个地关闭订单,根据魔法进行排序--从小到大。
因此,问题是,是否有可能在专家顾问中添加一个功能, 在订单关闭时启动一个脚本,关闭订单,但按魔术师从头到尾进行排序--从大到小?
那么这个想法是否会加快结单的速度?
有人告诉我,最多可以同时向服务器发送4个请求。你不能从专家顾问中运行该脚本。你真的可以同时向服务器发送几个来自不同EA的请求。如果你同步几个EA,确实有可能获得一些性能的提升。
但如果我是你,我不会用我的头去撞那扇敞开的门。我宁愿改用MetaTrader5。OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。
关于交易、自动交易系统和策略测试的论坛
开发人员!错误10024(请求太多)。
C-4, 2014.11.07 15:55
总之总结一下我的小研究。
我设法在50毫秒内推送50个请求;180毫秒内推送100个请求;2100毫秒内推送200个请求;9000毫秒内推送500个请求;23000毫秒内推送1000个请求。(时间是平均数)。也就是说,我们越是需要推动,就越是需要时间。这可能是一个文盲编码的问题。
一组请求的实际执行时间 当然会更长。这个时间似乎等同于最坏的情况--发送请求的时间+请求执行的时间。在任何情况下,在极限情况下,它趋向于交易所执行订单的平均时间+与交易服务器通信的时间。如果请求的数量少于60个,那么就没有必要与交易服务器通信,发送所有的请求并等待它们的满足。发送本身需要40-60毫秒。如果有更多的要求,那就更难了。你必须等待服务器的回复,再次开启发送订单,等待拒绝,等等。因此,在网络上有这种信息的交流。当有很多请求时,池子会随着请求的满足而逐渐释放。随后的派遣是小部分的,每次一到两个请求,这就是网络。因此,时间越来越长。总而言之,这段代码似乎工作正常,你只需要了解发送/接收请求的机制。
我附上了测试这种发送的代码。
p.s. 总结一下,60个请求即使对HFT交易来说也是绰绰有余。你实际上需要对交易行为进行有意识的分析--你发送一个订单,得到结果,分析交易环境,必要时发送一个新的订单。整个周期将明显超过40-60毫秒+1个订单的平均执行时间的规模。
没有。一切都用来测试,没有问题...有什么提示吗,还可能是什么原因?
尝试用新的数据进行测试。你有没有试着在不同的终端中运行它?
不可能从EA中运行一个脚本。确实有可能在同一时间从不同的EA向服务器发送几个请求。如果你同步几个EA,确实有可能获得一定的性能提升。
但如果我是你,我不会用头去撞那扇敞开的门。我宁愿改用MetaTrader5。那里的OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。
MT5和更多的100-200个订单有什么关系?而在MT5中,什么100-200个订单?这些是MT5中的100-200种交易工具!毕竟,在一个符号上只能建立一个订单--如果我没有弄错的话!
而我在28种工具上积累了大量的订单,同时又有一部分是手数!
如果你在这个问题上有什么建议,我将不胜感激,给出与问题无关的建议是无用的,也是没有建设性的!
不可能从EA中运行一个脚本。确实有可能在同一时间从不同的EA向服务器发送几个请求。如果你同步几个EA,确实有可能获得一定的性能提升。
但如果我是你,我不会用我的头去撞开的门。我宁愿改用MetaTrader5。那里的OrderSendAsync功能允许你以难以置信的速度分批平仓,在几秒钟内完成100-200个订单。
哦!瓦西里,如果在这里,请看一下我的问题,谢谢你。
嗨!检查了一下。不幸的是,我以前从未遇到过这样的错误。我想到的唯一一件事是检查测试仪的历史文件夹,例如这里y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\。如果没有所需符号的文件,请尝试从主文件夹y:\MetaTrader 5\bases\AdmiralMarkets-MT5\手动复制数据,并重新启动测试器。到目前为止没有其他想法。
s.e. 虽然这很奇怪。测试人员应自动复制历史记录。但不知道是什么。
嗨!检查了一下。不幸的是,我以前从未遇到过这样的错误。我想到的唯一一件事是检查测试器中的历史文件夹,例如这里y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\。如果没有所需符号的文件,请尝试从主文件夹y:\MetaTrader 5\bases\AdmiralMarkets-MT5\手动复制数据,并重新启动测试器。到目前为止,我还没有其他想法。
MT5和它有什么关系,尤其是100-200个订单?那么MT5中的100-200个订单是什么?这些是MT5中的100-200种交易工具!毕竟,一个符号只能开1个订单--如果我没有搞错的话!
而我在28种工具上积累了大量的订单,同时又有一部分是手数!
如果你在这个问题上有什么建议,我将不胜感激,给出与问题无关的建议是无用的,也是没有建设性的!
再一次(仔细阅读)。
在MetaTrader4中,您只能按顺序关闭订单:发送订单关闭一个订单,等待其执行,继续下一个订单,等等。由于这个原因,在MetaTrader4中关闭一批订单的时间是相当长的,不能通过微不足道的手段减少。然而,你可以将几个专家顾问系统上传到你自己的图表中,并使它们相互交换信息,通过一个共同的命令关闭订单。每个专家只在其符号处关闭订单。由于MetaTrader4中有几个交易线程,它们不会相互阻挡和相互发送订单。然而,组织这样一个专家库是很复杂的,从你的知识水平来看,我不会建议你做这样的事情。
如果你仍然认为我写了太多的字,这里有一个简单的总结。
1.你的问题的答案是否定的,你不能从专家顾问中运行一个脚本。
2.如果不使用复杂的方法,你无法提高MetaTrader4中交易订单的执行速度。
通常解决你的问题的唯一方法是使用OrderSendAsync函数,这在MetaTrader4中不存在。