mql5语言的特点、微妙之处以及技巧 - 页 174 1...167168169170171172173174175176177178179180181...247 新评论 Andrey Khatimlianskii 2020.04.27 12:37 #1731 Igor Makanu: 是不同的 有所谓的控制和管理任务 EA - 管理,服务 - 控制 控制不应该是多余的--如果你消耗了系统的所有资源,你会得到一个不稳定的系统而不是控制。 那么,节省的是什么呢?该服务将做同样的订单列举,同样的比较。 如果这个想法是让一个服务通过向多个顾问发送 "事情有变 "的信号来 "服务 "他们,那么这个解决方案是值得怀疑的。 首先,等待来自外部的决策所需的关键数据是愚蠢的。其次,如果有节省的话,也只是在一个终端上有许多专家顾问的情况下。 这更像是一个理论上的技巧,在实践中,我们在EA中的订单查询没有问题。 fxsaber 2020.04.30 08:49 #1732 MT5中的某种故障抓住了这种情况。 ACCOUNT_TRADE_EXPERT = true ACCOUNT_TRADE_ALLOWED = false TERMINAL_TRADE_ALLOWED = true 请记住,这种禁令可能是终端(bug)的结果,而不是经纪人的结果。 Alexey Viktorov 2020.04.30 09:33 #1733 fxsaber: 某种MT5的故障抓住了这种情况。 请记住,这个禁令可能是终端(bug)的结果,而不是经纪人。 这和Robo的情况不一样,前2分钟的交易被关闭,报价就走了? 只是我不记得是每天都禁止交易,还是只在周一禁止这2分钟的交易。 fxsaber 2020.04.30 09:39 #1734 Alexey Viktorov: 这和Robo的情况不一样,前2分钟交易被关闭,报价就会? 只是我不记得是每天还是只在周一这2分钟不允许交易。 不,这是在一天中。MT5故障,经纪人不参与。 Edgar Akhmadeev 2020.04.30 09:42 #1735 Alexey Viktorov: 只是我不记得是每天都禁止交易,还是只在周一的那两分钟禁止。 只有在开市时 fxsaber 2020.05.14 02:53 #1736 MessageBox 不显示日志中的所有信息。在阅读日志时,有时会出现一些问题。解决办法如下。// Терминал при MessageBox не выводит в лог имя MQL-программы, текст заголовка окна, флаги и результат нажатия. int MessageBox2( const string Text, const string Caption = NULL, const int Flags = 0 ) { const int Res = MessageBox(Text, Caption, Flags); #define TOSTRING(A) " " + #A + " = " + (string)(A) Print("MessageBox:" + TOSTRING(Caption) + TOSTRING(Flags) + TOSTRING(Res)); #undef TOSTRING return(Res); } #define MessageBox MessageBox2 fxsaber 2020.05.14 02:57 #1737 关于交易、自动交易系统和交易策略测试的论坛 mql5的特殊性,技巧和窍门 fxsaber, 2020.04.30 08:49 MT5的一些小故障抓住了这种情况。 ACCOUNT_TRADE_EXPERT = true ACCOUNT_TRADE_ALLOWED = false TERMINAL_TRADE_ALLOWED = true 请记住,这种禁令可能是终端(bug)的结果,而不是经纪人的结果。 我又得到了它。我认为这可能发生在重新登录的罕见情况下。 解决方法 - 如果是假的,在短暂停顿后再试。 bool IsTradeAllowed( const int Attempts = 0 ) { // https://www.mql5.com/ru/forum/170952/page174#comment_16363677 bool Res = false; int Count = 0; // https://www.mql5.com/ru/forum/170952/page174#comment_16363677 while (!(Res = ::MQLInfoInteger(MQL_TRADE_ALLOWED) && ::AccountInfoInteger(ACCOUNT_TRADE_EXPERT) && ::AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) && ::TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) && (Count++ < Attempts) && !::IsStopped()) ::Sleep(100); return(Res); } fxsaber 2020.05.14 03:37 #1738 当你想在赋值时抓住一个变量的变化。if (Value != (Value = NewValue())) Print("Value is changed."); [删除] 2020.05.14 04:43 #1739 fxsaber: 当你需要捕捉一个变量在赋值中的变化时。 你这里有UB,你不能用它。 fxsaber 2020.05.14 04:59 #1740 Vict: 你这里有UB,你不能用它。 它是有效的,但你可以建议一个适当的宏。 1...167168169170171172173174175176177178179180181...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是不同的
有所谓的控制和管理任务
EA - 管理,服务 - 控制
控制不应该是多余的--如果你消耗了系统的所有资源,你会得到一个不稳定的系统而不是控制。
那么,节省的是什么呢?该服务将做同样的订单列举,同样的比较。
如果这个想法是让一个服务通过向多个顾问发送 "事情有变 "的信号来 "服务 "他们,那么这个解决方案是值得怀疑的。
首先,等待来自外部的决策所需的关键数据是愚蠢的。其次,如果有节省的话,也只是在一个终端上有许多专家顾问的情况下。
这更像是一个理论上的技巧,在实践中,我们在EA中的订单查询没有问题。
某种MT5的故障抓住了这种情况。 请记住,这个禁令可能是终端(bug)的结果,而不是经纪人。
这和Robo的情况不一样,前2分钟的交易被关闭,报价就走了?
只是我不记得是每天都禁止交易,还是只在周一禁止这2分钟的交易。
这和Robo的情况不一样,前2分钟交易被关闭,报价就会?
只是我不记得是每天还是只在周一这2分钟不允许交易。
不,这是在一天中。MT5故障,经纪人不参与。
只是我不记得是每天都禁止交易,还是只在周一的那两分钟禁止。
关于交易、自动交易系统和交易策略测试的论坛
mql5的特殊性,技巧和窍门
fxsaber, 2020.04.30 08:49
MT5的一些小故障抓住了这种情况。 请记住,这种禁令可能是终端(bug)的结果,而不是经纪人的结果。我又得到了它。我认为这可能发生在重新登录的罕见情况下。
解决方法 - 如果是假的,在短暂停顿后再试。
当你需要捕捉一个变量在赋值中的变化时。
你这里有UB,你不能用它。
你这里有UB,你不能用它。
它是有效的,但你可以建议一个适当的宏。