文章 "基于 .Net 框架和 C# 为 EA 交易和指标开发图形界面" - 页 12

 
Nikolai Karetnikov:

下午好!)

彼得,你说的 "是 "和 "高 "是什么意思?在什么地方讨论过这个问题?

下午好!)
是的,讨论过,而且还不少。结果发现,当以 25 毫秒的定时器频率从 mql 向 Sharpe 表传输数据时,不知出于什么原因,它们大约每秒更新一次。我不知道是作者还是其他人设法解决了这个问题,但我认为瓦西里没有继续发表这一系列文章是因为他没有解决这个问题。

附:(顺便说一句,他们认为在 Vasily 的文章发表后,就没有人需要我的标记语言了,但我的表格工作正常,而且连接更方便,可以上传到市场,因为不需要 DLL)。:)
 
Реter Konow:
种类)
是的,已经进行了一些讨论,而且讨论的内容还不少。原来,当以 25 毫秒的定时器频率从 mql 向 sharps 表传输数据时,不知什么原因,它们大约每秒更新一次。我不知道是作者还是其他人设法解决了这个问题,但我猜想瓦西里没有继续发表这一系列文章是因为他没有解决这个问题。

附:(顺便说一下,他们认为在 Vasily 的文章发表后,就没有人需要我的标记语言了,但我的表格工作得很好,而且连接更方便,可以上传到市场,因为不需要 DLL)。:)

我明白了 )))

看来你是对的,要么是我们失去了瓦西里,要么是他对这个话题失去了兴趣)。

 

略有改进的 TradePanel 专家顾问版本

在表单的页眉处标注工具名称 [1],而不是在当前报价 [2] 按钮上标注卖出和买入,表单本身 "已经[3] 并 "粘 "在屏幕的边框上。粘住 - 第三方软件https://www.nurgo-software.com/products/aquasnap。

如果有人能在 .sln 本身中添加磁化功能,那将会非常好。

启动 EA 时,它会询问 TradePanel.dll 位于何处,因此您不必在代码中指定它


Window docking
Window docking
  • www.nurgo-software.com
Split your desktop in one easy gesture Drag and drop your windows to the sides or corners of the screen, and they'll automatically be resized to fit one half or one quarter of the screen. This feature is just like the built-in Aero Snap function of Windows 10 , but with more possibilities! This is especially useful on either a 4K monitor or...
附加的文件:
TradePanel.zip  74 kb
 
Nikolai Karetnikov:

拉菲尔,你找到问题所在了吗?

我用和你一样的方法解决了问题,在 mql 中添加了一个枚举

 
您好 VASILIY SOKOLOV

首先,非常感谢您提供样品并分享您的想法。

我已经下载并使用得很好。

但我有一个问题,为什么在 DLL 中打开 winform 必须使用 "MtGuiController.dll"?

能不能只导入"TradePanel.dll "而不使用 "MtGuiController.dll"?

有谁知道该怎么做吗?

 

您好!

感谢您的建议!

我创建了一个表单,并使用了一个 TabelLayoutPanel。但是,如果我现在点击 TabelLayoutPanel 中的按钮,却没有任何反应。

谁能帮帮我?

注:同样的按钮在没有 TabelLayoutPanel 的情况下也能正常工作。

 

该控制器非常出色,您可以从中获得很多好点子,但 MT5 有一个大问题:

mq5 EA 中包含的每个 *.dll 都无法用于其他访问,控制器也无法将数据转发给其他 dll。

这可能是由于 C# 代码是直接编译的,因此无法完成各种操作。

此外,无法管理多个表单,因为我必须在两个表单上或只在第一个表单上设置每个接收数据的控件。

要解决这个问题,唯一的办法就是 使用标签控件,然后在其中创建所需的各种页面、交易、消息、历史记录等。

或者您必须使用 C++,您可以导入这些 dll,但必须导入各个函数。

 
Arturo Minor:

您可以使用每个事件类型 的数字表示法:

事件类型 ID
例外 0
点击元素 1
文本更改 2
滚动变化 3

下面是一个使用 SendEvent 函数的示例(代码来自 TardePanel EA):

您可以更改事件 TextChange 的表示法,使其 ID 变为 2,并对所有需要的函数执行此操作。


感谢您提供的解决方法。不过,对原始问题的回答仍然很有趣:为什么 EA 无法访问枚举?枚举被声明为公共的。为什么对其他人有效?(还是不行?)


提前感谢您的帮助。

 
sachnyc:

有人能找出为什么会出现以下错误吗?

MQL 编译器指出 :对于下面的任何枚举,"未声明标识符"。

我也遇到了同样的错误。


经过几次测试


要使用与 MtGuiController.dll 文件中定义的枚举相关联的常量,必须在任何常量前使用 MtGuiController 名称空间。

例如,您必须写 MtGuiController.TextChange,而不是 TextChange。

 
Pete:

我是 MQL5 的新手,从这篇文章中学到了很多!非常感谢!


我有一个问题。在过去的两天里,我一直在苦苦思索下面这个问题。


我甚至在另一台电脑上也成功完成了几个步骤,但每次当我尝试编译代码时,都会收到错误信息。


MQL 编译器指出 :下面任何枚举的 "未声明标识符"。


如果我将这些枚举从 MQL5 中 "注释 "掉,它就会相应地工作,这很有趣,因为这意味着代码可以工作,但无法读取枚举,这是我的猜测吗?

如果有人能帮助我,我将不胜感激 :)


谢谢、


经过几次测试


要使用与 MtGuiController.dll 文件中定义的枚举相关联的常量,必须在任何常量前使用 MtGuiController 名称空间。

例如,您必须写 MtGuiController.TextChange,而不是 TextChange。