初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1034 1...102710281029103010311032103310341035103610371038103910401041...1503 新评论 Alexey Viktorov 2019.04.28 07:23 #10331 The_Sheikh:你好,谁能清楚地解释一下什么是MQL5中的 "Plots"? 它们 与缓冲区没有关系,但indicator_plots 属性创建了一个类似缓冲区的绘图对象属性 列表。当使用MQL4工具时,很明显是对特定绘图对象的引用,现在有一个新的预处理器属性indicator_plots,定义了不清楚的数量。在MQL4中,要显示的缓冲区的数量是用 #property indicator_buffers 1在OnInit()函数 中,你可以添加几个用于计算的缓冲区 IndicatorBuffers(3);而在MQL5中,同样的事情被写在两个指令中 #property indicator_buffers 3 #property indicator_plots 1 这意味着总共有3个缓冲区,而图表上将显示1个缓冲区。另外两个将用于计算。而在MQL5中,其中一个额外的可以用于颜色显示。 The_Sheikh 2019.04.28 07:51 #10332 fxsaber:如果你在MT4和MT5中运行这个指标,可能更容易理解。在转换到MT5时,我不得不使用绘图。 因为应该只画两个缓冲区。已经接近真相了。但在这种情况下,如果第二和第六个缓冲区应该被画出来呢?难道没有办法吗?阿列克谢-维克多罗夫。我们可以在OnInit()函数 中添加几个用于计算的缓冲区 顺便问一下,在MQL5中是否有这个函数的替代品? fxsaber 2019.04.28 07:54 #10333 The_Sheikh:这更接近于事实。但在这种情况下,如果要抽出第二和第六条呢?什么都没有?我不知道。 Igor Zakharov 2019.04.28 07:56 #10334 The_Sheikh:这更接近于事实。但在这种情况下,如果要抽出第二和第六个,怎么办?不会吧?1) "第二和第六" - 你决定如何分配数字;) 2) INDICATOR_CALCULATIONS和DRAW_NONE与INDICATOR_DATA和非DRAW_NONE(任何其他)对任何序列号都有效。 Alexey Viktorov 2019.04.28 08:00 #10335 The_Sheikh:这更接近于事实。但在这种情况下,如果要抽出第二和第六条呢?不会吧?你只需设置缓冲区类型,哪一个将被显示,哪一个将包含颜色,哪一个只包含辅助值。 指数_DATA 绘图数据 指示器_颜色_索引 渲染的颜色 指标_计算 用于中间计算 的额外缓冲区 Alexey Viktorov 2019.04.28 08:05 #10336 The_Sheikh:顺便问一下,在MQL5中是否有这个函数的替代品?在mql5中不需要这样一个函数。我给了你一个如何写的例子。与mql4的区别仅在于顺序和拼写。 The_Sheikh 2019.04.28 08:07 #10337 谢谢大家的回应 The_Sheikh 2019.04.30 14:30 #10338 假设图表上的最大条数被设定为10000。然后在脚本和指标中,Bars()函数返回设置中指定的数字+出现的新烛台数量。 那么,图表中显示的蜡烛图的数量将不会被限制在10000个? 我怎样才能在MQL中准确知道终端设置 中指定的数字? 如果条数达到最大的int类型,那么烛台的数量和数组元素的位置会发生什么变化? Igor Makanu 2019.04.30 14:46 #10339 The_Sheikh:在MQL中,我如何知道在终端设置 中究竟设置了多少条? TerminalInfoInteger(TERMINAL_MAXBARS)) The_Sheikh:如果条数达到int类型的最大值,那么烛台的数量会发生什么变化?条数会增加,即会超过TERMINAL_MAXBARS 的值。 然后,通过一些未知的算法,终端 "重置了额外的条数"--当图表中的实际条数将在const int rates_total中,它将在iBars()https://www.mql5.com/ru/docs/series/ibars 即,如上图所示 - TERMINAL_MAXBARS是来自终端窗口的数据,而iBars()是图表上条形的实际值。 The_Sheikh:并与数组-时间序列的元素的位置?如果我们谈论的是指标缓冲区,终端为它们分配了内存,与指标缓冲区相关的数组的大小总是等于rate_total元素。 测试用的指标。 int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- static datetime t=0; if(t!=time[rates_total-1]) { Print("rates_total = ",rates_total, ", TERMINAL_MAXBARS = ",TerminalInfoInteger(TERMINAL_MAXBARS)); t=time[rates_total-1]; } //--- return value of prev_calculated for next call return(rates_total); }指标日志。 2019.04.30 19:10:12.247 rates (EURUSD,M1) rates_total = 50000, TERMINAL_MAXBARS = 500002019.04.30 19:10:29.699 rates (EURUSD,M1) rates_total = 50001, TERMINAL_MAXBARS = 500002019.04.30 19:11:29.392 rates (EURUSD,M1) rates_total = 50002, TERMINAL_MAXBARS = 500002019.04.30 19:12:30.125 rates (EURUSD,M1) rates_total = 50003, TERMINAL_MAXBARS = 50000 Документация по MQL5: Доступ к таймсериям и индикаторам / iBars www.mql5.com Количество баров в истории по соответствующему символу и периоду, но не более чем задано в настройках платформы параметром "Макс. баров в окне" ("Max bars in chart") Roman Sharanov 2019.04.30 15:33 #10340 我想熟悉在EasyAndFastGUI上开发MQL5的界面。 2015年的"图形界面"文章有10部分(或什么? 我有个问题,它们都是一致的,还是说读旧的没有意义? 1...102710281029103010311032103310341035103610371038103910401041...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,谁能清楚地解释一下什么是MQL5中的 "Plots"? 它们 与缓冲区没有关系,但indicator_plots 属性创建了一个类似缓冲区的绘图对象属性 列表。当使用MQL4工具时,很明显是对特定绘图对象的引用,现在有一个新的预处理器属性indicator_plots,定义了不清楚的数量。
在MQL4中,要显示的缓冲区的数量是用
在OnInit()函数 中,你可以添加几个用于计算的缓冲区
IndicatorBuffers(3);
而在MQL5中,同样的事情被写在两个指令中
这意味着总共有3个缓冲区,而图表上将显示1个缓冲区。另外两个将用于计算。而在MQL5中,其中一个额外的可以用于颜色显示。
如果你在MT4和MT5中运行这个指标,可能更容易理解。在转换到MT5时,我不得不使用绘图。
已经接近真相了。但在这种情况下,如果第二和第六个缓冲区应该被画出来呢?难道没有办法吗?
我们可以在OnInit()函数 中添加几个用于计算的缓冲区
顺便问一下,在MQL5中是否有这个函数的替代品?
这更接近于事实。但在这种情况下,如果要抽出第二和第六条呢?什么都没有?
我不知道。
这更接近于事实。但在这种情况下,如果要抽出第二和第六个,怎么办?不会吧?
1) "第二和第六" - 你决定如何分配数字;)
2) INDICATOR_CALCULATIONS和DRAW_NONE与INDICATOR_DATA和非DRAW_NONE(任何其他)对任何序列号都有效。
这更接近于事实。但在这种情况下,如果要抽出第二和第六条呢?不会吧?
你只需设置缓冲区类型,哪一个将被显示,哪一个将包含颜色,哪一个只包含辅助值。
指数_DATA
绘图数据
指示器_颜色_索引
渲染的颜色
指标_计算
用于中间计算 的额外缓冲区
顺便问一下,在MQL5中是否有这个函数的替代品?
在mql5中不需要这样一个函数。我给了你一个如何写的例子。与mql4的区别仅在于顺序和拼写。
假设图表上的最大条数被设定为10000。然后在脚本和指标中,Bars()函数返回设置中指定的数字+出现的新烛台数量。
那么,图表中显示的蜡烛图的数量将不会被限制在10000个?
我怎样才能在MQL中准确知道终端设置 中指定的数字?
如果条数达到最大的int类型,那么烛台的数量和数组元素的位置会发生什么变化?
在MQL中,我如何知道在终端设置 中究竟设置了多少条?
如果条数达到int类型的最大值,那么烛台的数量会发生什么变化?
条数会增加,即会超过TERMINAL_MAXBARS 的值。
然后,通过一些未知的算法,终端 "重置了额外的条数"--当图表中的实际条数将在const int rates_total中,它将在iBars()https://www.mql5.com/ru/docs/series/ibars
即,如上图所示 - TERMINAL_MAXBARS是来自终端窗口的数据,而iBars()是图表上条形的实际值。
并与数组-时间序列的元素的位置?
如果我们谈论的是指标缓冲区,终端为它们分配了内存,与指标缓冲区相关的数组的大小总是等于rate_total元素。
测试用的指标。
指标日志。
2019.04.30 19:10:12.247 rates (EURUSD,M1) rates_total = 50000, TERMINAL_MAXBARS = 50000
2019.04.30 19:10:29.699 rates (EURUSD,M1) rates_total = 50001, TERMINAL_MAXBARS = 50000
2019.04.30 19:11:29.392 rates (EURUSD,M1) rates_total = 50002, TERMINAL_MAXBARS = 50000
2019.04.30 19:12:30.125 rates (EURUSD,M1) rates_total = 50003, TERMINAL_MAXBARS = 50000
我想熟悉在EasyAndFastGUI上开发MQL5的界面。
2015年的"图形界面"文章有10部分(或什么?
我有个问题,它们都是一致的,还是说读旧的没有意义?