德米特里,通过CHARTEVENT_CLICK(图表事件) 而不是循环来实现可能会更容易些...
以下是同步一种货币图表的示例
//------------------------------------------------------------------ OnChartEvent void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam) { if (id==CHARTEVENT_CLICK) { long cid=ChartFirst(); long fbar=ChartGetInteger(ChartID(), CHART_FIRST_VISIBLE_BAR); datetime tm[], tm1[]; int rez=CopyTime(Symbol(), Period(), 0, fbar, tm); if (rez<fbar) return; while (cid!=-1) { ChartSetInteger(cid, CHART_AUTOSCROLL, false); ChartSetInteger(cid, CHART_SHIFT, false); if (cid!=ChartID() && ChartSymbol(cid)==Symbol()) { rez=CopyTime(ChartSymbol(cid), ChartPeriod(cid), TimeCurrent(), tm[0], tm1); if (rez<0) break; ChartNavigate(cid, CHART_END, rez-ChartGetInteger(cid, CHART_WIDTH_IN_BARS)+2); ChartRedraw(cid); } cid=ChartNext(cid); } } }
就是这样!
迪米特里,通过 CHARTEVENT_CLICK(图表事件点击)而不是循环来实现可能会更容易些...
以下是同步一种货币图表的示例
就是这样!
并非一切都那么简单。您的功能将柱形图同步到了图表的左侧边缘,这对于历史的视觉研究并不十分方便。您还应该禁用图表偏移,这也不太方便(不过,这是个品味问题)。开发人员应该增加从右边获取和设置缩进的功能,或者按时间进行导航,因为很多函数都是通用的,可以传递条形图编号或时间。此外,该事件只针对脚本工作的图表进行处理。
----------------------------------------------------------------------------------------------------------------
图表事件
OnChartEvent() 是 ChartEvent 事件组的处理程序:
...
...
该函数只能在 EA 中调用,且必须具有 void 类型和 4 个参数:
----------------------------------------------------------------------------------------------------------------
事件处理 仅在智能交易系统中有效。一个图表上只能有一个智能交易系统,您不应该用实际上无用的辅助工具代替智能交易系统。我坚信,与交易执行无直接关系的辅助工具不应以智能交易系统的形式出现,极少数必要的例外情况除外。
图表事件
OnChartEvent() 是 ChartEvent 事件组的处理程序:
...
...
该函数只能在 Expert Advisors 中调用,必须为 void 类型,有 4 个参数:
----------------------------------------------------------------------------------------------------------------
事件处理仅在智能交易系统中有效。一个图表上只能有一个智能交易系统,您不应该用实际上无用的辅助工具代替智能交易系统。我深信,与交易执行无直接关系的辅助工具不应以智能交易系统的形式出现,极少数必要的例外情况除外。
现在情况不再是这样了,请关注公告 -https://www.mql5.com/ru/forum/23/page4:
MetaTrader 5 客户端第 245 版
- 终端:修正了在资产中(在 "Exposure "选项卡中)计算自由保证金资金的错误。
- 终端:修复了 "前景上的图表 "图表属性的操作。
- 终端:修正并重新设计了图表的打印预览窗口。
- 终端:修复了使用临时全局变量时的一个错误。
- 终端:合并 "标准 "和 "图表 "工具栏。
- MQL5:关于崩溃和论坛信息的更正
- MQL5: 更改了 Expert Advisors 和脚本的 Copy* 功能的操作原则 - 现在功能将等待下载和构建请求的数据。请求数据的等待时间不会超过 30 秒。在不久的将来,MQL5 帮助中将提供更详细的说明。
- MQL5:增加了自定义指标事件处理的 可能性,类似于专家顾问。近期将在 MQL5 帮助中提供更详细的说明。
.
CHART_FIRST_VISIBLE_BAR 似乎有问题。
如果将 ChartNavigate() 设置为一个明显大于可以查看图表的数字,那么
ChartGetInteger(ChartID(),CHART_FIRST_VISIBLE_BAR) 会大于 Bars(ChartSymbol(ChartID()),ChartPeriod(ChartID())).
脚本 2.mq5 中的示例。运行脚本,稍等。
sChartsSynchroScroll:
此脚本可同步翻卷客户终端内所有打开的图表。
作者: Dmitry Fedoseev