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

 
fxsaber:

不幸的是,对于像我这样的书呆子来说,这一切都是一片黑暗的森林。你的文章展示了 github 的一个很酷的应用。也许这只是其功能的 1%,但很有用。

从给出的链接中,我还不明白它对 MQL5 有什么帮助。它可能是程序员的必备工具,但也有像我这样远离编程的人。

如果有一篇关于 MQL5 的文章,那将会非常有用。

版本控制系统(任何系统,不仅仅是 github)都是非常不简单的东西。你无法在五分钟内解释它是什么以及为什么需要它。但 "复制链接并获取项目 的最新版本 "功能是此类系统的特色之一,而且确实非常酷。

 
Vasiliy Sokolov:

4) 你可以通过不同的方式对其进行定制。您只需指定表单名称和表单所在的程序集。也就是说,现在你可以运行一个、两个或五个表单。没有任何限制。

例如,我们启动两个相同的智能交易系统,但使用不同的窗体。它们不会冲突吗?

如果我理解正确,您建议为每个智能交易系统编写不同的 GuiMT.exe。是这样吗?

 
Igor Makanu:

这篇文章写得很好,但不知为什么,我觉得它不适合初学者阅读。

我想我无法再简单地解释了。老实说,我已经尽力了。我甚至按照工人们的要求,详细描述了工作室的安装过程。

新手用户需要做三件事:

  1. 绘制他需要的表单(在 Visual Studio 中准确绘制表单)
  2. 在他的 Expert Advisor 中创建一个事件处理 代码(假定用户至少熟悉 MQL 的基本操作)//
  3. 通过 GuiController 将表单与 Expert Advisor 相连(指定正确路径、指定导入等)。

如果很困难,那就像人们常说的那样,你已经尽了一切努力。
 
fxsaber:

例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?

如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?

是的。我需要考虑一下....

 
Igor Makanu:

您好:用户可以使用 VS2017 工具创建一个带按钮的表单,无需第三方 dll(GuiController.dll),只需点击 2 次:创建项目 - Net 类库,然后创建项目 - 添加 Windows 表单。

遗憾的是,如果他不熟悉 C#,他就做不到。您提供的代码有点 "简单",只有几行:创建一个线程,为其分配一个委托,然后运行它。在程序的其他部分,你订阅了必要的事件....。- 一切都很 "简单"...

我的主要想法是,用户可以绘制一个新项目,而无需为其添加处理程序代码,这一点是不可避免的。

 
fxsaber:

例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?

如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?

简而言之,是的,这样的配置会发生冲突。为了避免这种情况,您可以重载 ShowForm 方法:

ShowForm(ulong magic, string assembly, string form_name);

这样做的目的是,magic 将包含一个反映 <form-expert> 类型关系的唯一同步编号。总之,一切都是可以解决和扩展的。

 
Vasiliy Sokolov:

遗憾的是,如果您不熟悉 C#,您将无法做到这一点。你引用的代码很 "简单",只有几行:创建一个线程,给它分配一个委托,然后运行它。在程序的其他部分,您已经订阅了必要的事件....- 一切都很 "简单"...

我的主要想法是,用户可以绘制一个新项目,而无需添加处理程序代码,这一点是不可避免的。

您可能是对的,用户更容易在 VS2017 中将图形元素 绘制到表单中,然后在 VS 中运行他的作品进行检查,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。

我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的调用,因此我首先在 MT5 下制作了一个 .dll,然后将其集成到 MT4 中。

您的方法可能更实用,稍后我将熟悉一下 github 上的项目,非常感谢!

 
Igor Makanu:

您可能是对的,对于用户来说,在 VS2017 中将图形元素绘制到表单中更容易,然后在 VS 中运行他的作品进行测试,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。

你说得没错!这就是系统由三个部分组成的原因。这就是 "分而治之 "的原理。

Igor Makanu:

我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的编译,因此我首先在 MT5 下制作了 .dll,然后将其集成到 MT4 中。

你还是有专业水平的。当然,MT4 的情况有些不同。

Igor Makanu:

您的方法可能更实用,我稍后会熟悉一下 github 上的项目,非常感谢!

感谢您的反馈:))))

 
我们都在等彼得。让我们看看他对我提出的解决方案的 "专家评估":)
 

是的,这是一篇好文章,但我不确定编辑们是否读过它;-)。"此外 "是拼在一起的,但文中其他地方都是分开的。这引起了我的注意,因为与其他文章相比,我读得比较仔细。

事实上,这一方面似乎不错。但另一方面--为了可视化表单编辑器而调用所有与 Studio 相关的东西有点麻烦。如果已经安装了 Studio,那就没问题了。

我会在 MQL 中与设计器一起完成所有工作(我有一些想法,但还没拿到手)。我认为还有一个中间方案--使用 Studio,但不使用 DLL--在 MQL 中设计 WPF表单,读取 XAML。