mql5如何实现仅在所操作品种的新柱线建立时调用一个函数 - 页 2 12 新评论 Ziheng Zhuang 2018.02.07 12:44 #11 xkyup: 您好,我发现在我的电脑上这个函数无法实现该功能。 于是我便试着每次输出等了好几分钟,结果他一直输出的都是100000100000,也就是说两个数值一直都是100000 这个问题搞清楚了,不是MT5的bug。 Bars()这个函数返回的是图表上的K线根数,如果你的图表设置最大10,000个K线 那么当实际达到了10,000个K线以后,即使有新的K线出现,但是总的K线根数保持为10,000,Bars()的返回值就是这个最大值了。 这就是为什么你看到的一直是10,000 设置图表上最大K线个数,MT5的菜单: Tools -> Options--->Chart 设置 Max bars in chart 为 Unlimited,则不存在问题Bars()返回值出现不变的问题。 但是设置为unlimited 则会有个副作用,就是图表K线数太多了,每次启动时,指标计算量大。 因此最好根据实际设置为10,000即可。 由此可见,最好还是用时间来判断是否有新的K线。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ datetime Time(ENUM_TIMEFRAMES tf=0) { datetime t[1]; if(CopyTime(Symbol(),tf,0,1,t)==1) return(t[0]); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsNewBar2(ENUM_TIMEFRAMES tf=0) { static datetime cnt=0; if(cnt!=Time(tf)) { cnt=Time(tf); return(true); } return(false); } //+------------------------------------------------------------------+ xkyup 2018.02.08 09:25 #12 Ziheng Zhuang: 这个问题搞清楚了,不是MT5的bug。 Bars()这个函数返回的是图表上的K线根数,如果你的图表设置最大10,000个K线 那么当实际达到了10,000个K线以后,即使有新的K线出现,但是总的K线根数保持为10,000,Bars()的返回值就是这个最大值了。 这就是为什么你看到的一直是10,000 设置图表上最大K线个数,MT5的菜单: Tools -> Options--->Chart 设置 Max bars in chart 为 Unlimited,则不存在问题Bars()返回值出现不变的问题。 但是设置为unlimited 则会有个副作用,就是图表K线数太多了,每次启动时,指标计算量大。 因此最好根据实际设置为10,000即可。 由此可见,最好还是用时间来判断是否有新的K线。 听了您的话,算是搞明白了这个问题,谢谢 12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
您好,我发现在我的电脑上这个函数无法实现该功能。
于是我便试着每次输出等了好几分钟,结果他一直输出的都是100000100000,也就是说两个数值一直都是100000
这个问题搞清楚了,不是MT5的bug。
Bars()这个函数返回的是图表上的K线根数,如果你的图表设置最大10,000个K线
那么当实际达到了10,000个K线以后,即使有新的K线出现,但是总的K线根数保持为10,000,Bars()的返回值就是这个最大值了。
这就是为什么你看到的一直是10,000
设置图表上最大K线个数,MT5的菜单: Tools -> Options--->Chart
设置 Max bars in chart 为 Unlimited,则不存在问题Bars()返回值出现不变的问题。
但是设置为unlimited 则会有个副作用,就是图表K线数太多了,每次启动时,指标计算量大。
因此最好根据实际设置为10,000即可。
由此可见,最好还是用时间来判断是否有新的K线。
这个问题搞清楚了,不是MT5的bug。
Bars()这个函数返回的是图表上的K线根数,如果你的图表设置最大10,000个K线
那么当实际达到了10,000个K线以后,即使有新的K线出现,但是总的K线根数保持为10,000,Bars()的返回值就是这个最大值了。
这就是为什么你看到的一直是10,000
设置图表上最大K线个数,MT5的菜单: Tools -> Options--->Chart
设置 Max bars in chart 为 Unlimited,则不存在问题Bars()返回值出现不变的问题。
但是设置为unlimited 则会有个副作用,就是图表K线数太多了,每次启动时,指标计算量大。
因此最好根据实际设置为10,000即可。
由此可见,最好还是用时间来判断是否有新的K线。
听了您的话,算是搞明白了这个问题,谢谢