MT5和速度在行动 - 页 88 1...8182838485868788899091929394 新评论 Artyom Trishkin 2021.03.01 12:23 #871 fxsaber:一个就够了。 int CTickSeriesCollection::IndexTickSeries(const string symbol) { const CTickSeries *obj=new CTickSeries(symbol==NULL || symbol=="" ? ::Symbol() : symbol); ... ... ... } 此外,我还检查了""。我自己在调用当前字符的方法时总是使用NULL。 fxsaber 2021.03.01 12:25 #872 Artyom Trishkin: 你的代码不会给出加速。 Artyom Trishkin 2021.03.01 12:26 #873 fxsaber: 我发现很难解释明显的事情。在这段代码中,有可能加快GetMarketWatchTick的速度。 const MqlTick GetMarketWatchTick( const string &Symb ) { MqlTick Tick = {0}; SymbolInfoTick(Symb, Tick); return(Tick); } void OnTick() { MqlTick Ticks[1]; Ticks[0] = GetMarketWatchTick(_Symbol); ArrayPrint(Ticks); } 你认为即使_Symbol作为Symbol参数被传递,一个字符串也会被传递给SymbolInfoTick()吗? 我不认为标准函数内部没有检查字符串与当前符号是否相等,如果当前符号的缓存在手,这种显式参数就开始 "全速 "检查。 fxsaber 2021.03.01 12:29 #874 加速是在编译时进行的,而不是在运行时。 编译器会进行这种替换。 SymbolInfoTick(_Symbol, Tick) -> SymbolInfoTickInside(Tick); SymbolInfoTick(NULL, Tick) -> SymbolInfoTickInside(Tick); SymbolInfoTick(::Symbol(), Tick) -> SymbolInfoTickInside(Tick); 在所有其他情况下,不进行替换。 Artyom Trishkin 2021.03.01 12:35 #875 fxsaber:加速是在编译时进行的,而不是在运行时。编译器会进行这种替换。在所有其他情况下,不进行替换。 好吧。这就是我所说的--你的代码不会对非当前字符的常规函数进行加速。也不会加快当前的字符。 而我的不会。而且它从来没有。我对这一点也不抱幻想。但在调用普通函数时,如果我的函数被传入NULL或"",我总是使用Symbol()或NULL。这就调用了常规函数的快速代码--从缓存中获取当前符号的数据。 如果我的函数调用使用Symbol() 或_Symbol - 如果它与当前的符号重合,是否不在标准函数内检查?它真的会用当前符号的全范围检查来执行代码吗?我不相信... fxsaber 2021.03.01 12:37 #876 Artyom Trishkin:好吧。这就是我所说的--你的代码不会对非当前字符的常规函数进行加速。也不会加快当前的字符。 也许有人可以向你解释得更清楚。这对我来说并不奏效。 Artyom Trishkin 2021.03.01 12:45 #877 fxsaber:也许有人可以向你解释得更清楚。我没有得到它。 你在用什么巫术来加快常规功能? 当你把当前字符的值传递给staff函数时,你是用替换的方法使它使用缓存中的当前字符的数据。这不会加快正常的功能,而是使用它的速度来处理当前的字符。 你不可能对你无法获得的东西进行加速。你正在使用标准的技术来正确调用函数。但我不确定,如果在处理欧元兑美元时,Symbol被字符串指定为 "EURUSD",即使用当前的符号,那么工作人员函数不会检查字符串 "EURUSD "是否等于Symbol(),不会使用缓存的数据,而是开始全速检查符号。 那么,正则函数的加速度在哪里?如果它存在,那就更有趣和有用了。 fxsaber 2021.03.01 12:49 #878 fxsaber:在MT4中也是这样吗?而在MT5-Tester中,情况如何? CopyTicks的情况也是如此吗? Artyom Trishkin 2021.03.01 12:53 #879 fxsaber:也许有人可以向你解释得更清楚。我没有得到它。 更有可能的是,你没有理解我的问题。我已经重复了好几次(而且这个问题不是关于 "加快常规功能")。 fxsaber 2021.03.01 13:03 #880 Slava:如果指定了一个普通的字符串参数,而不是Symbol()、_Symbol或NULL,那么就会进行全面检查,也会查询属性。 不知道为什么,这个解释没有说,如果字符串参数与当前符号相同,那么就不会对完整的程序进行检查。 1...8182838485868788899091929394 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一个就够了。
此外,我还检查了""。我自己在调用当前字符的方法时总是使用NULL。
你的代码不会给出加速。
我发现很难解释明显的事情。在这段代码中,有可能加快GetMarketWatchTick的速度。
你认为即使_Symbol作为Symbol参数被传递,一个字符串也会被传递给SymbolInfoTick()吗?
我不认为标准函数内部没有检查字符串与当前符号是否相等,如果当前符号的缓存在手,这种显式参数就开始 "全速 "检查。
加速是在编译时进行的,而不是在运行时。
编译器会进行这种替换。
在所有其他情况下,不进行替换。
加速是在编译时进行的,而不是在运行时。
编译器会进行这种替换。
在所有其他情况下,不进行替换。
好吧。这就是我所说的--你的代码不会对非当前字符的常规函数进行加速。也不会加快当前的字符。
而我的不会。而且它从来没有。我对这一点也不抱幻想。但在调用普通函数时,如果我的函数被传入NULL或"",我总是使用Symbol()或NULL。这就调用了常规函数的快速代码--从缓存中获取当前符号的数据。
如果我的函数调用使用Symbol() 或_Symbol - 如果它与当前的符号重合,是否不在标准函数内检查?它真的会用当前符号的全范围检查来执行代码吗?我不相信...
好吧。这就是我所说的--你的代码不会对非当前字符的常规函数进行加速。也不会加快当前的字符。
也许有人可以向你解释得更清楚。这对我来说并不奏效。
也许有人可以向你解释得更清楚。我没有得到它。
你在用什么巫术来加快常规功能?
当你把当前字符的值传递给staff函数时,你是用替换的方法使它使用缓存中的当前字符的数据。这不会加快正常的功能,而是使用它的速度来处理当前的字符。
你不可能对你无法获得的东西进行加速。你正在使用标准的技术来正确调用函数。但我不确定,如果在处理欧元兑美元时,Symbol被字符串指定为 "EURUSD",即使用当前的符号,那么工作人员函数不会检查字符串 "EURUSD "是否等于Symbol(),不会使用缓存的数据,而是开始全速检查符号。
那么,正则函数的加速度在哪里?如果它存在,那就更有趣和有用了。
在MT4中也是这样吗?而在MT5-Tester中,情况如何?
CopyTicks的情况也是如此吗?
也许有人可以向你解释得更清楚。我没有得到它。
更有可能的是,你没有理解我的问题。我已经重复了好几次(而且这个问题不是关于 "加快常规功能")。
如果指定了一个普通的字符串参数,而不是Symbol()、_Symbol或NULL,那么就会进行全面检查,也会查询属性。
不知道为什么,这个解释没有说,如果字符串参数与当前符号相同,那么就不会对完整的程序进行检查。