初始化过程中的ChartNavigate - 页 5 12345678 新评论 Alexey Viktorov 2018.06.26 10:18 #41 Ihor Herasko: 不,我没有。因为这正是问题所在。让我告诉你更多关于这一切的情况。交易者使用图表就像使用测试器一样。该指标在所谓的当前时间右侧隐藏了真实图表的一部分(事实上,这个时间是在历史上的某个地方)。按F12显示在线图表中的下一个蜡烛,等等。因此,就是在重新启动附有指标的 终端时,它也不会将图表位置返回到交易者完成研究的地方。结果他/她收到一个空图表,因为终端将图表重置为最后一个真实的蜡烛。而且,尽管码头是在一个完全不同的地方卸货。一个有趣的观察。我自己检查了一下--唉,没有什么变化。不过,在重装上,我还是得到了最新的价格。 我建议我们 "同步手表"。我在Build 1861上测试这一切。你的构造是什么?也许你应该在前面加上这样几句话 ChartSetInteger(0, CHART_AUTOSCROLL, false); ChartSetInteger(0, CHART_SHIFT, false); ChartNavigate(0, CHART_END, 0); 然后再转移它? 或者干脆不把它转移到任何地方。它的工作也没有问题。 ChartNavigate(0, CHART_CURRENT_POS, 0)在哪个栏位我关闭了终端,在哪个栏位又打开了。 然而,这个变体也会在非活动窗口上保留图表。唉。即使没有这段代码,图表也能保持原位。 Ihor Herasko 2018.06.26 11:12 #42 Alexey Viktorov:也许在前面加上这样几行 然后再转移它? 是的,完整版拥有这一切。如果你在不重启终端的情况下工作,一切都很好。但重启会导致这样的问题。而即使是拐杖式的解决方案也不一定有用。我将进一步调查。 Alexey Viktorov 2018.06.26 11:19 #43 Ihor Herasko: 是的,完整版拥有这一切。如果你在不重启终端的情况下工作,一切都很好。但重启后就会出现这样的问题。而即使是拐杖式的解决方案也不一定有用。我将进一步调查。 但我也做过重启终端的实验。问题可能是什么?我得到了下载的更新,但我暂时取消了更新。也许你也应该更新一下? Ihor Herasko 2018.06.26 19:46 #44 Alexey Viktorov: 但我也试验过重新启动终端。可能是什么问题?我得到了下载的更新,但到目前为止,我已经取消了更新。也许你也应该更新一下?升级为1865年建造。问题仍然存在。 此外,事实证明,即使在图表上完全加载数据并使用ChartNavigate() 后,图表也会在需要的地方显示一段时间,但随着新刻度线的出现,它仍然会回到最后一个条形图。自动滚动按钮被禁用,没有使用其他指标。 如果你手动移动图表,就不会发生类似的情况。我现在很茫然。我将在明天有新的眼光时进行调查,看看我是否在什么地方做错了。 Vladimir Karputov 2018.06.27 04:00 #45 MetaTrader 5 x64 build 1870 started (MetaQuotes Software Corp.) Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i3-3120 M @ 2.50 GHz, Memory: 4720 / 8077 Mb, Disk: 301 / 464 Gb, GMT+2 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075 脚本。只有在CHART_CURRENT_POS 下才是稳定的。在CHART_BEGIN和正 "Shift "的情况下,以及在CHART_END和负 "Shift "的情况下,图表要么不移动,要么跳到(自行滚动)最新的价格:感觉自动滚动按钮被启用。 //+------------------------------------------------------------------+ //| Test_1.mq5 | //| Copyright © 2018, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2018, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" #property script_show_inputs //--- input parameters input ENUM_CHART_POSITION InpPosition = CHART_CURRENT_POS; // Chart Position input int InpShift = -1; // Shift //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- ResetLastError(); //--- получим номер самого первого видимого на графике бара (нумерация как в таймсерии) int chart_first_visible_bar=ChartFirstVisibleBar(); if(chart_first_visible_bar==-1) return; //--- string comm="До: Первый бар на графике имеет номер "+IntegerToString(chart_first_visible_bar); //--- выведем комментарий Print(comm); if(ChartNavigate(ChartID(),InpPosition,InpShift)) Print("ChartNavigate ",EnumToString(InpPosition),",",InpShift," успешно"); else Print("Ошибка №",GetLastError(),", ",EnumToString(InpPosition)); //--- получим номер самого первого видимого на графике бара (нумерация как в таймсерии) chart_first_visible_bar=ChartFirstVisibleBar(); if(chart_first_visible_bar==-1) return; //--- comm="После: Первый бар на графике имеет номер "+IntegerToString(chart_first_visible_bar); //--- выведем комментарий Print(comm); } //+------------------------------------------------------------------------------+ //| Gets the index of the first visible bar on chart. | //| Indexing is performed like in timeseries: latest bars have smallest indices. | //+------------------------------------------------------------------------------+ int ChartFirstVisibleBar(const long chart_ID=0) { //--- prepare the variable to get the property value long result=-1; //--- reset the error value ResetLastError(); //--- receive the property value if(!ChartGetInteger(chart_ID,CHART_FIRST_VISIBLE_BAR,0,result)) { //--- display the error message in Experts journal Print(__FUNCTION__+", Error Code = ",GetLastError()); } //--- return the value of the chart property return((int)result); } //+------------------------------------------------------------------+ 1 附加的文件: Test_ChartNavigate_Script.mq5 6 kb Alexey Viktorov 2018.06.27 06:29 #46 Ihor Herasko:升级为1865年建造。问题仍然存在。 此外,事实证明,即使在图表上完全加载数据并使用ChartNavigate() 后,图表也会在需要的地方显示一段时间,但随着新刻度线的出现,它仍然会回到最后一个条形图。自动滚动按钮被禁用,没有使用其他指标。 如果你手动移动图表,就不会发生类似的情况。我现在很茫然。明天我将以清醒的头脑再次调查,也许我在什么地方搞砸了。我建议更新,不是希望一切都能归位,而是为了有相同的构建。 伊戈尔,你是用完整版的指标做实验还是用实验版的? 我刚刚用build 1865重新加载了终端,一切正常。我在写这个消息的时候,定期看一下图表,切换图表窗口...但是,尽管有传入的点位和切换,移位的图表仍然没有动静。 以下是整个代码 #property indicator_chart_window #property indicator_plots 0 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping ChartSetInteger(0, CHART_AUTOSCROLL, false); ChartSetInteger(0, CHART_SHIFT, false); ChartNavigate(0, CHART_END, 0); if(ChartNavigate(0, CHART_END, -100)) Comment("Успешно"); else Comment("Ошибка №", GetLastError()); //ChartRedraw(ChartID()); //--- 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); } //+------------------------------------------------------------------+ void OnDeinit(const int reason) { Comment(""); }/********************************************************************/ 出于某种原因,我不相信一个终端是这样工作的,另一个是那样工作的。 Artyom Trishkin 2018.06.27 07:09 #47 Alexey Viktorov:我建议更新,并不是希望一切都能归位,而是为了使构建的内容相同。 伊戈尔,你是用完整版的指标做实验还是用实验版的? 我刚刚用build 1865重新加载了终端,一切正常。我在写这个消息的时候,定期看一下图表,切换图表窗口...但是,尽管有传入的点位和切换,移位的图表仍然没有动静。 以下是整个代码 不知为何,我不相信一个终端是这样工作的,而另一个则不是。试着去看一个完全没有历史的符号 Alexey Viktorov 2018.06.27 07:16 #48 Artyom Trishkin:尝试寻找一个完全没有历史的符号如何做到这一点? 根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里了... 第二,我打开了EURMXN符号。不看终端,你能知道它是什么吗?))) Artyom Trishkin 2018.06.27 07:22 #49 Alexey Viktorov:如何做到这一点? 根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里... 第二是打开EURMXN符号。如果不看终端,你能知道它是什么吗?)))不,我不能... 我的意思是,可能加载历史数据会使图表向其末端移动。 试试这个:把指标放在一个分钟的时间框架上,关闭终端,一小时后再打开--终端开始加载缺失的分钟--图表会发生什么?它是否会转移? Alexey Viktorov 2018.06.27 08:17 #50 多么令人振奋的消息啊!!!。 我把H1、H4时期的图表打开,用它们来测试。现在开始在M1、M5、M30上做实验......。 切换到H1或H4,即使有一个新的小时,也没有问题。这是在昨天或今天早些时候测试的,或在昨天和今天都测试了......这不是重点,但我被小时的变化所吸引。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,我没有。因为这正是问题所在。让我告诉你更多关于这一切的情况。交易者使用图表就像使用测试器一样。该指标在所谓的当前时间右侧隐藏了真实图表的一部分(事实上,这个时间是在历史上的某个地方)。按F12显示在线图表中的下一个蜡烛,等等。因此,就是在重新启动附有指标的 终端时,它也不会将图表位置返回到交易者完成研究的地方。结果他/她收到一个空图表,因为终端将图表重置为最后一个真实的蜡烛。而且,尽管码头是在一个完全不同的地方卸货。
一个有趣的观察。我自己检查了一下--唉,没有什么变化。不过,在重装上,我还是得到了最新的价格。
我建议我们 "同步手表"。我在Build 1861上测试这一切。你的构造是什么?
也许你应该在前面加上这样几句话
然后再转移它?
或者干脆不把它转移到任何地方。它的工作也没有问题。
在哪个栏位我关闭了终端,在哪个栏位又打开了。
然而,这个变体也会在非活动窗口上保留图表。唉。即使没有这段代码,图表也能保持原位。
也许在前面加上这样几行
然后再转移它?
是的,完整版拥有这一切。如果你在不重启终端的情况下工作,一切都很好。但重启会导致这样的问题。而即使是拐杖式的解决方案也不一定有用。我将进一步调查。
是的,完整版拥有这一切。如果你在不重启终端的情况下工作,一切都很好。但重启后就会出现这样的问题。而即使是拐杖式的解决方案也不一定有用。我将进一步调查。
但我也试验过重新启动终端。可能是什么问题?我得到了下载的更新,但到目前为止,我已经取消了更新。也许你也应该更新一下?
升级为1865年建造。问题仍然存在。
此外,事实证明,即使在图表上完全加载数据并使用ChartNavigate() 后,图表也会在需要的地方显示一段时间,但随着新刻度线的出现,它仍然会回到最后一个条形图。自动滚动按钮被禁用,没有使用其他指标。
如果你手动移动图表,就不会发生类似的情况。我现在很茫然。我将在明天有新的眼光时进行调查,看看我是否在什么地方做错了。
脚本。只有在CHART_CURRENT_POS 下才是稳定的。在CHART_BEGIN和正 "Shift "的情况下,以及在CHART_END和负 "Shift "的情况下,图表要么不移动,要么跳到(自行滚动)最新的价格:感觉自动滚动按钮被启用。
1
升级为1865年建造。问题仍然存在。
此外,事实证明,即使在图表上完全加载数据并使用ChartNavigate() 后,图表也会在需要的地方显示一段时间,但随着新刻度线的出现,它仍然会回到最后一个条形图。自动滚动按钮被禁用,没有使用其他指标。
如果你手动移动图表,就不会发生类似的情况。我现在很茫然。明天我将以清醒的头脑再次调查,也许我在什么地方搞砸了。
我建议更新,不是希望一切都能归位,而是为了有相同的构建。
伊戈尔,你是用完整版的指标做实验还是用实验版的?
我刚刚用build 1865重新加载了终端,一切正常。我在写这个消息的时候,定期看一下图表,切换图表窗口...但是,尽管有传入的点位和切换,移位的图表仍然没有动静。
以下是整个代码
出于某种原因,我不相信一个终端是这样工作的,另一个是那样工作的。我建议更新,并不是希望一切都能归位,而是为了使构建的内容相同。
伊戈尔,你是用完整版的指标做实验还是用实验版的?
我刚刚用build 1865重新加载了终端,一切正常。我在写这个消息的时候,定期看一下图表,切换图表窗口...但是,尽管有传入的点位和切换,移位的图表仍然没有动静。
以下是整个代码
不知为何,我不相信一个终端是这样工作的,而另一个则不是。试着去看一个完全没有历史的符号
尝试寻找一个完全没有历史的符号
如何做到这一点?
根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里了...
第二,我打开了EURMXN符号。不看终端,你能知道它是什么吗?)))
如何做到这一点?
根据该主题第一帖的描述,它是一个指标,它挂在一个开放的图表上--这意味着历史记录已经被加载。对吗?挂上指标,关闭终端,启动终端,------历史能去哪里?如果它已经在那里...
第二是打开EURMXN符号。如果不看终端,你能知道它是什么吗?)))
不,我不能...
我的意思是,可能加载历史数据会使图表向其末端移动。
试试这个:把指标放在一个分钟的时间框架上,关闭终端,一小时后再打开--终端开始加载缺失的分钟--图表会发生什么?它是否会转移?
多么令人振奋的消息啊!!!。
我把H1、H4时期的图表打开,用它们来测试。现在开始在M1、M5、M30上做实验......。
切换到H1或H4,即使有一个新的小时,也没有问题。这是在昨天或今天早些时候测试的,或在昨天和今天都测试了......这不是重点,但我被小时的变化所吸引。