初始化过程中的ChartNavigate - 页 6 12345678 新评论 Dina Paches 2018.06.28 20:24 #51 Alexey Viktorov:我在这个帖子中:https://www.mql5.com/ru/forum/260815/page4#comment_7890492,详细说明了在什么条件下可以再现这个问题。根据你的断言,这能够重现。我在这里 所写的内容 也就是说,对条件稍加修改就会导致问题的稳定再现。 你不知为何没有注意到这一点 Dina Paches 2018.06.28 20:32 #52 Alexey Viktorov:P./S.: 在你的代码中用Print代替Comment,不仅是一个更温和的程序。在OnInit()中的打印结果 更容易比较,复制并附在这里 Ihor Herasko 2018.06.28 20:47 #53 Alexey Viktorov:我建议更新,并不是希望一切都能归位,而是为了使构建的内容相同。 伊戈尔,你是在完整版的指标上做实验还是在实验版的指标上做实验? 那里和那里都有。但我仍然不能确定问题是什么:它是否是一个错误。我需要找到足够的可重复的条件。 Ihor Herasko 2018.06.28 20:50 #54 Alexey Viktorov:如何做到这一点? 根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里... 第二,我打开了EURMXN符号。不看终端,你能知道它是什么吗?)))这很容易。 带有该指标的模板被保存为default.tpl。图表符号被打开,这在以前从未被打开过。因此,指标先启动,然后再加载数据。我已经在一个包里得到了全部的活动。 Dina Paches 2018.06.28 22:14 #55 Ihor Herasko: 那里和那里都有。但我仍然不能肯定地说,这是否是一个错误。我们需要找到足够的可重复性条件。你的措辞有点令人遗憾。我所引用 的是可重复的条件。 另一件事是,是的,可能我在第一和 第二块 描述的不是 一个错误,而是终端重新启动时 数据加载的特殊性。 而在1870年的建设中,与我在1861年得到的重播有区别。 信息的组合(成功和错误4111)有了些许变化。例如,如果早些时候有这样一个稳定的繁殖。 test 2018 06 26 (GBPUSD,M5) Alert: Успешно test 2018 06 26 (GBPUSD,H1) Alert: Ошибка №4111 现在,用同样的代码,错误信息似乎更明显了。 test 2018 06 26 (EURNZD,M5) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,H1) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,M5) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,H1) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,M5) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,H1) Alert: Ошибка №4111 test 2018 06 26 (EURNZD,M5) Alert: Успешно test 2018 06 26 (EURNZD,H1) Alert: Ошибка №4111 而我那个帖子中的 第三块,在1870年已经无法重现了。 也不能在19世纪70年代重现这里所描述的情况:https://www.mql5.com/ru/forum/260815/page5#comment_7901728 最后--也许这在某种程度上取决于操作系统(作为一种猜测)。例如,Vladimir的这段代码对我来说很好用,没有任何问题 Rashid Umarov 2018.09.24 17:14 #56 Ihor Herasko:我遇到了一个关于ChartNavigate函数 的问题。做错了什么,还是功能真的有问题。如果你经常使用它,请回信。 所以,问题的关键是:ChartNavigate并没有转移图表的位置 当启动终端时 如果你在OnInit()中调用这个函数。特别是我读过几次文件。没有任何地方说该函数在初始化时不能被调用。 编码 指标 用于播放。 玩的步骤。 关掉图表自动播放。将指标附在图表上。ChartNavigate将通过移动图表到所需位置来触发。卸载终端。加载终端。显示没有偏移量的图表,ChartNavigate将无法工作。好的,如果该函数会出现错误。但它并没有。所有的调用都是成功的,但就是在终端重新加载时,图表没有移位。试试指标的三种变体,看看每种变体的结果 1.ChartNavigate在其他图形命令的末尾 //+------------------------------------------------------------------+ //| TryToSetChartSettings_Indicator.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- отключим автопрокрутку ChartSetInteger(0,CHART_AUTOSCROLL,false); //--- установим отступ правого края графика ChartSetInteger(0,CHART_SHIFT,true); //--- отобразим в виде свечей ChartSetInteger(0,CHART_MODE,CHART_CANDLES); //--- установить режим отображения тиковых объемов ChartSetInteger(0,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK); //--- Прокрутим от правого края графика на 1000 баров влево ChartNavigate(0,CHART_END,-1000); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ 2.ChartNavigate one - 对图表没有其他命令 //+------------------------------------------------------------------+ //| TryToSetChartSettings_Indicator.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { /* //--- отключим автопрокрутку ChartSetInteger(0,CHART_AUTOSCROLL,false); //--- установим отступ правого края графика ChartSetInteger(0,CHART_SHIFT,true); //--- отобразим в виде свечей ChartSetInteger(0,CHART_MODE,CHART_CANDLES); //--- установить режим отображения тиковых объемов ChartSetInteger(0,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK); */ //--- Прокрутим от правого края графика на 1000 баров влево ChartNavigate(0,CHART_END,-1000); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ 3.ChartNavigate在其他图表命令之前 //+------------------------------------------------------------------+ //| TryToSetChartSettings_Indicator.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Прокрутим от правого края графика на 1000 баров влево ChartNavigate(0,CHART_END,-1000); //--- отключим автопрокрутку ChartSetInteger(0,CHART_AUTOSCROLL,false); //--- установим отступ правого края графика ChartSetInteger(0,CHART_SHIFT,true); //--- отобразим в виде свечей ChartSetInteger(0,CHART_MODE,CHART_CANDLES); //--- установить режим отображения тиковых объемов ChartSetInteger(0,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ Ihor Herasko 2018.09.25 09:42 #57 Rashid Umarov:并尝试指标的三种变体,看看每种变体的结果 1.ChartNavigate在其他图表命令的末尾 附在启用自动滚动的M1图表上。自动滚动关闭,图表向左移动了1000条。在没有断开指标与图表的连接的情况下,重新装入终端。图中显示的是当前的蜡烛,没有向左移动1000条。自动滚动功能仍然不可用。我连续重复了第2步7次。其中3次向1000根蜡烛的左边过渡是完整的,4次--过渡不完整。当我还没有完善的时候,出现了 "等待刷新 "的命令。因此,可以得出结论,终端在加载历史记录时强行将图表滚动到最新的报价。由于它发生在OnInit()之后,我们得到了一个意外的结果。 2.单独的ChartNavigate--对图表没有其他命令 由于自动滚动功能在这个版本中没有自动关闭,我手动关闭了它,并连接了指标。图表已经向左移动了1000条。重新启动终端,但没有将指标从图表上断开。在7个案例中,有2个案例进行了滚动操作。其中一个发生在三个阶段:显示预期历史、显示当前蜡烛和显示预期历史。看起来好像OnInit()被执行了两次:一次是在历史记录被加载之前,第二次是在加载之后。3.ChartNavigate在其他图表命令之前。 我已经启用了自动滚动功能,并附上了指标。图表抽搐了一下,回到了当前的蜡烛上。可以预见的是,在1000条移动命令之后,自动滚动功能被禁用。重新启动终端,但没有断开指标与图表的连接(图表显示当前的蜡烛)。在所有7种情况下,图表都显示了当前的蜡烛,滚动甚至没有闪动。如果我们在图表上 没有任何指标 的情况下重启终端,关闭自动滚动并显示在历史深处的某个地方,那么在每次重启时,我们得到的显示是终端被关闭的地方。事实证明,在执行导航命令的某个地方,有一个移动到当前的蜡烛。 Rashid Umarov 2018.09.25 13:56 #58 Ihor Herasko: 附在M1图表上,自动滚动开启。自动滚动功能被关闭,图表向左移动了1000条。在没有断开指标与图表的连接的情况下,重新装入终端。图中显示的是当前的蜡烛,没有向左移动1000条。自动滚动功能仍然不可用。我连续重复了第2步7次。其中3次向1000根蜡烛的左边过渡是完整的,4次--过渡不完整。当我还没有完善的时候,出现了 "等待刷新 "的命令。因此,可以得出结论,终端在加载历史数据时,强行将图表滚动到最新的报价。由于它发生在OnInit()之后,我们得到了一个意外的结果。我总是忘记你的信息/建议是倒过来读的。这就像一个古老的笑话。 1917年,10月。一位女士, Decembrist的孙女,正坐在自己在涅夫斯基的房子里。听到街道上的噪音,她要求看门人查明,这到底是怎么回事。- 年轻的女士,革命就在那里!- 看门人回来了。-哦,多好啊!- 我的祖父梦想着一场革命! 去看看革命者想要什么吧,我亲爱的朋友!"。- 他们不想要有钱人,女士。"看门人回来时说。- 奇怪,"女士若有所思地说,"但我祖父希望没有穷人!"。 我以为你要在重启终端之前改变时间表的属性。 Ihor Herasko 2018.09.25 20:26 #59 Rashid Umarov:我总是忘记,你的信息/建议会被倒过来读。 你是什么意思?你写道,你需要测试三个指标的操作。由于该主题是关于重新加载终端,然后使用ChartNavigate,这些是所做的测试。我以为你要在重启终端之前改变图表属性。如果问题是ChartNavigate在终端启动时并不总是工作,为什么?这正是问题所在。 A100 2018.09.25 22:15 #60 Ihor Herasko: 问题是,ChartNavigate并不总是在终端启动时 触发?这正是问题所在。还有,当我改变我的个人资料时。此外,如果ChartNavigate( chart_id, CHART_BEGIN, shift )得到例如CHART_FIRST_VISIBLE_BAR,那么结果将如同ChartNavigate已经工作。如果专家顾问被删除,那么下次启动专家顾问时(相同或不同),在这个图表中获得CHART_FIRST_VISIBLE_BAR的结果将看起来像CHARTNavigate失败。 结果是:在与CHART_FIRST_VISIBLE_BAR 结合时,ChartNavigate的操作已经极其不一致了。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我在这个帖子中:https://www.mql5.com/ru/forum/260815/page4#comment_7890492,详细说明了在什么条件下可以再现这个问题。根据你的断言,这能够重现。我在这里 所写的内容
也就是说,对条件稍加修改就会导致问题的稳定再现。
你不知为何没有注意到这一点
P./S.: 在你的代码中用Print代替Comment,不仅是一个更温和的程序。在OnInit()中的打印结果 更容易比较,复制并附在这里
我建议更新,并不是希望一切都能归位,而是为了使构建的内容相同。
伊戈尔,你是在完整版的指标上做实验还是在实验版的指标上做实验?
那里和那里都有。但我仍然不能确定问题是什么:它是否是一个错误。我需要找到足够的可重复的条件。
如何做到这一点?
根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里...
第二,我打开了EURMXN符号。不看终端,你能知道它是什么吗?)))
这很容易。
那里和那里都有。但我仍然不能肯定地说,这是否是一个错误。我们需要找到足够的可重复性条件。
你的措辞有点令人遗憾。我所引用 的是可重复的条件。
另一件事是,是的,可能我在第一和 第二块 描述的不是 一个错误,而是终端重新启动时 数据加载的特殊性。
而在1870年的建设中,与我在1861年得到的重播有区别。
信息的组合(成功和错误4111)有了些许变化。例如,如果早些时候有这样一个稳定的繁殖。
现在,用同样的代码,错误信息似乎更明显了。
而我那个帖子中的 第三块,在1870年已经无法重现了。
也不能在19世纪70年代重现这里所描述的情况:https://www.mql5.com/ru/forum/260815/page5#comment_7901728 最后--也许这在某种程度上取决于操作系统(作为一种猜测)。例如,Vladimir的这段代码对我来说很好用,没有任何问题
我遇到了一个关于ChartNavigate函数 的问题。做错了什么,还是功能真的有问题。如果你经常使用它,请回信。
所以,问题的关键是:ChartNavigate并没有转移图表的位置 当启动终端时 如果你在OnInit()中调用这个函数。特别是我读过几次文件。没有任何地方说该函数在初始化时不能被调用。
编码 指标 用于播放。
玩的步骤。
试试指标的三种变体,看看每种变体的结果
1.ChartNavigate在其他图形命令的末尾
2.ChartNavigate one - 对图表没有其他命令
3.ChartNavigate在其他图表命令之前
并尝试指标的三种变体,看看每种变体的结果
1.ChartNavigate在其他图表命令的末尾
2.单独的ChartNavigate--对图表没有其他命令
3.ChartNavigate在其他图表命令之前。
我总是忘记你的信息/建议是倒过来读的。这就像一个古老的笑话。
1917年,10月。一位女士,
Decembrist的孙女,正坐在自己在涅夫斯基的房子里。听到街道上的噪音,她要求看门人查明
,这到底是怎么回事。
- 年轻的女士,革命就在那里!- 看门人回来了。
-哦,多好啊!- 我的祖父梦想着一场革命!
去看看革命者想要什么吧,我亲爱的朋友!"。
- 他们不想要有钱人,女士。"看门人回来时说。
- 奇怪,"女士若有所思地说,"但我祖父希望没有穷人!"。
我总是忘记,你的信息/建议会被倒过来读。
你是什么意思?你写道,你需要测试三个指标的操作。由于该主题是关于重新加载终端,然后使用ChartNavigate,这些是所做的测试。
如果问题是ChartNavigate在终端启动时并不总是工作,为什么?这正是问题所在。
问题是,ChartNavigate并不总是在终端启动时 触发?这正是问题所在。
还有,当我改变我的个人资料时。此外,如果ChartNavigate( chart_id, CHART_BEGIN, shift )得到例如CHART_FIRST_VISIBLE_BAR,那么结果将如同ChartNavigate已经工作。如果专家顾问被删除,那么下次启动专家顾问时(相同或不同),在这个图表中获得CHART_FIRST_VISIBLE_BAR的结果将看起来像CHARTNavigate失败。
结果是:在与CHART_FIRST_VISIBLE_BAR 结合时,ChartNavigate的操作已经极其不一致了。