文章 "MQL5 细则手册:指标子窗口控件 - 按钮" - 页 8

 
C-4:
MT5 具有图表属性异步更新功能。也就是说,我们设置了某个属性并不意味着终端会立即读取该属性。使用ChartRedraw() 函数 可让终端重新读取所有属性。您还可以使用 ChartGet...ObjectGet 函数,在这种情况下属性也会被重新读取。
我没有在任何地方找到这些信息。我遇到了它,找到了解决方案,现在我知道了。
 
komposter:
我没有在任何地方看到过这些信息。偶然发现了它,找到了解决办法,现在我就知道了。

这是什么?在 "图表操作...... "一节的开头:

图表操作功能。所有图表操作仅适用于智能交易系统和脚本。

设置图表属性的函数实际上用于发送更改图表的命令。 如果这些函数被成功执行,命令将被纳入图表的常规事件队列。更改图表是在处理给定图表的事件队列时完成的。

因此,在调用这些函数后,不要指望图表会立即进行可视化更新。 在一般情况下,图表更新是由终端通过变化事件(新报价到达、图表窗口大小变化等)自动执行的。要强制更新图表外观,请使用ChartRedraw() 命令重绘图表。

 
komposter:
我没有在任何地方看到过这些信息。偶然发现了它,找到了解决办法,现在我就知道了。
当然,因为这些信息在任何地方都找不到(事实证明是有的,见上文:))。我自己也被这个问题折磨得够呛,直到我求助于服务台。他们告诉我,图表上对象属性的变化是 异步发生的。从你的例子来看,这与图表本身的属性有关。
 
Rosh:

具体是什么?这里是 "有图表的业务"部分的开头:

我没说没有,我只是没遇到(或者忘了)。谢谢。

我建议在更改图表属性(如鼠标事件跟踪标志)时生成 CHART_CHANGE 事件,您觉得如何?也许你可以这么做?

 
C-4:
当然,因为这些信息在任何地方都找不到(事实证明是有的,见上文:))。我自己也被这个问题折磨得够呛,直到我求助于服务台。他们告诉我,图表上对象属性的变化是 异步发生的。从你的例子来看,这与图表本身的属性有关。

更多信息请参阅 "图表对象"部分:

一组用于处理与任何指定图表相关的图形对象的函数。

指定图形对象属性的函数,以及在图表上创建ObjectCreate() 和移动ObjectMove() 对象的操作,实际上都是用于向图表发送命令。 如果这些函数被成功执行,该命令将被纳入图表的事件总队列。图形对象属性的可视化更改是在处理给定图表的事件队列时进行的。

因此,在调用这些函数后,不应期望立即对图形对象进行可视化更新。 一般情况下,图表上图形对象的更新是由终端根据变化事件自动执行的,如新报价的到来、图表窗口大小的变化等。 要强制更新图形对象,请使用ChartRedraw() 命令重绘图表。

 
Rosh:

更多内容请参见 "图形对象"部分:

对象很清楚,也很熟悉,但我期望图形属性有一些不同。

我不应该重复我的建议吗?或者我应该把它放到服务台?

 
对作者的精彩文章深表感谢。
 
MetaQuotes Software Corp.:

新文章 MQL5 细则手册:指标子窗口控件 - 按钮已发布:

作者:Anatoli Kazharsk

 非常好的教程,真希望你能多发表一点这方面内容,非常感谢! 

 

阿纳托利

感谢您为 MQL5 社区做出的贡献。 您的示例让我在开发自己的代码时向前迈进了几个月。 再次,非常感谢。

我需要将此 "指标 "用于打开多单、打开空单、全部平仓和设置追踪止损按钮。 我的问题是,我需要与我的 EA 进行交互,以便我可以

1) 在 EA 中使用这些功能,以及

2)当 pSAR、CCI、MACD 或其他指标触发时,通过闪烁 "打开多头 "按钮获得 EA 建议。

我的问题是如何才能使 EA 与指标按钮通信,并使指标按钮与 EA 接口?

在此先表示感谢、

CipherPips

 
CipherPips:

谢谢!

我想这是你更喜欢的版本:图形界面 I:库结构的准备(第 1 章)

请继续阅读本系列,其中有许多详细示例。