MT5和速度在行动 - 页 87 1...808182838485868788899091929394 新评论 Artyom Trishkin 2021.03.01 11:53 #861 fxsaber:更快。 它做同样的事情--返回函数值。但它也事先做了检查。 在函数本身中,也有对符号名称传递值的检查,从它--"如果是一个简单的字符串参数,而不是Symbol()、_Symbol或NULL,那么就检查完整的程序和更多的属性请求",或者使用缓存中的当前符号的值,而无需额外检查。 为什么你再做一次,还声称能加快数据的检索速度?我不明白这种推理的逻辑。 顺便说一下,我总是在我的函数中这样做,但我不认为这在某种程度上加快了数据检索的速度,而是因为在我的函数中对传递的符号名称值进行了检查而减慢了速度。 fxsaber 2021.03.01 11:54 #862 Artyom Trishkin:为什么你又要做这些事,却声称它能加快数据的速度? 你自己引用了这个解释。 fxsaber 2021.03.01 11:55 #863 Slava:Symbol(), _Symbol条目等同于NULL(其中允许用NULL代替符号名称)。 在MT4中也是这样吗?而在MT5测试器中呢? fxsaber 2021.03.01 11:56 #864 Artyom Trishkin:顺便说一下,我总是在我的函数中这样做 请给我看看。 Artyom Trishkin 2021.03.01 11:56 #865 fxsaber:你自己引用了这个解释。 没错--这都是在常规函数中完成的。为什么在外面也要重复呢? fxsaber 2021.03.01 11:58 #866 Artyom Trishkin:没错--这都是在常规函数中完成的。为什么在外面也要重复呢? 那么你就没有理解这个解释。这两个电话的速度是不同的。 void OnTick() { static const string Symb = _Symbol; MqlTick Tick; SymbolInfoTick(_Symbol, Tick); SymbolInfoTick(Symb, Tick); } Artyom Trishkin 2021.03.01 11:58 #867 fxsaber:请给我看看。 所有的功能和方法都是和我一起完成的? 他们有太多的人了。 fxsaber 2021.03.01 12:01 #868 Artyom Trishkin:我这样做的所有功能和方法? 一个就够了。 Artyom Trishkin 2021.03.01 12:11 #869 fxsaber:那么你就没有理解这个解释。这两个电话的速度是不同的。 我似乎已经明白了这一切。当然,这是不一样的。那么你是如何加速的呢?在一种情况下,你将一个不是当前符号的值传递给函数--如果它是not_Symbol。 在这里,在你将上述数值传递给函数的情况下,函数不进行检查,而是从缓存中获取当前符号的数值。 在其他情况下,它查询指定符号的数据,检查 "完整程序 "+其在市场概览中的存在。你的 "快速 "函数在向非本地符号请求数据时并没有摆脱这些检查。那么,加速度在哪里呢? bool SymbolInfoTickFast( const string &Symb, MqlTick &Tick ) { return((Symb == _Symbol) ? SymbolInfoTick(_Symbol, Tick) : SymbolInfoTick(Symb, Tick)); } 在你的函数中,当调用if(SymbolInfoTickFast(Symbol(), tick_array))时只有两个选项{} 获取当前符号的数据--调用SymbolInfoTick,参数为_Symbol(快速)。 获取另一个符号数据--调用带有字符串参数的SymbolInfoTick(缓慢)。 还有一点,如果你(在你定义所有移动的东西的习惯中)为当前的符号创建了一个字符串变量,那么是的--你必须在这里做检查,用一个预定义的变量 取代你的宏替换,或者调用Symbol()。 fxsaber 2021.03.01 12:21 #870 Artyom Trishkin:你是如何加速的? 我很难解释明显的问题。 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); } 在这段代码中,可以加快GetMarketWatchTick的速度。 1...808182838485868788899091929394 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
更快。
它做同样的事情--返回函数值。但它也事先做了检查。
在函数本身中,也有对符号名称传递值的检查,从它--"如果是一个简单的字符串参数,而不是Symbol()、_Symbol或NULL,那么就检查完整的程序和更多的属性请求",或者使用缓存中的当前符号的值,而无需额外检查。
为什么你再做一次,还声称能加快数据的检索速度?我不明白这种推理的逻辑。
顺便说一下,我总是在我的函数中这样做,但我不认为这在某种程度上加快了数据检索的速度,而是因为在我的函数中对传递的符号名称值进行了检查而减慢了速度。
为什么你又要做这些事,却声称它能加快数据的速度?
你自己引用了这个解释。
Symbol(), _Symbol条目等同于NULL(其中允许用NULL代替符号名称)。
在MT4中也是这样吗?而在MT5测试器中呢?
顺便说一下,我总是在我的函数中这样做
请给我看看。
你自己引用了这个解释。
没错--这都是在常规函数中完成的。为什么在外面也要重复呢?
没错--这都是在常规函数中完成的。为什么在外面也要重复呢?
那么你就没有理解这个解释。这两个电话的速度是不同的。
请给我看看。
所有的功能和方法都是和我一起完成的?
他们有太多的人了。
我这样做的所有功能和方法?
一个就够了。
那么你就没有理解这个解释。这两个电话的速度是不同的。
我似乎已经明白了这一切。当然,这是不一样的。那么你是如何加速的呢?在一种情况下,你将一个不是当前符号的值传递给函数--如果它是not_Symbol。
在这里,在你将上述数值传递给函数的情况下,函数不进行检查,而是从缓存中获取当前符号的数值。
在其他情况下,它查询指定符号的数据,检查 "完整程序 "+其在市场概览中的存在。你的 "快速 "函数在向非本地符号请求数据时并没有摆脱这些检查。那么,加速度在哪里呢?
在你的函数中,当调用if(SymbolInfoTickFast(Symbol(), tick_array))时只有两个选项{}
还有一点,如果你(在你定义所有移动的东西的习惯中)为当前的符号创建了一个字符串变量,那么是的--你必须在这里做检查,用一个预定义的变量 取代你的宏替换,或者调用Symbol()。
你是如何加速的?