文章 "基于 .Net 框架和 C# 为 EA 交易和指标开发图形界面" - 页 2 123456789...15 新评论 Vasiliy Sokolov 2019.02.12 10:23 #11 fxsaber:不幸的是,对于像我这样的书呆子来说,这一切都是一片黑暗的森林。你的文章展示了 github 的一个很酷的应用。也许这只是其功能的 1%,但很有用。从给出的链接中,我还不明白它对 MQL5 有什么帮助。它可能是程序员的必备工具,但也有像我这样远离编程的人。如果有一篇关于 MQL5 的文章,那将会非常有用。版本控制系统(任何系统,不仅仅是 github)都是非常不简单的东西。你无法在五分钟内解释它是什么以及为什么需要它。但 "复制链接并获取项目 的最新版本 "功能是此类系统的特色之一,而且确实非常酷。 fxsaber 2019.02.12 10:24 #12 Vasiliy Sokolov:4) 你可以通过不同的方式对其进行定制。您只需指定表单名称和表单所在的程序集。也就是说,现在你可以运行一个、两个或五个表单。没有任何限制。例如,我们启动两个相同的智能交易系统,但使用不同的窗体。它们不会冲突吗? 如果我理解正确,您建议为每个智能交易系统编写不同的 GuiMT.exe。是这样吗? Vasiliy Sokolov 2019.02.12 10:27 #13 Igor Makanu:这篇文章写得很好,但不知为什么,我觉得它不适合初学者阅读。我想我无法再简单地解释了。老实说,我已经尽力了。我甚至按照工人们的要求,详细描述了工作室的安装过程。新手用户需要做三件事:绘制他需要的表单(在 Visual Studio 中准确绘制表单)在他的 Expert Advisor 中创建一个事件处理 代码(假定用户至少熟悉 MQL 的基本操作)//通过 GuiController 将表单与 Expert Advisor 相连(指定正确路径、指定导入等)。 如果很困难,那就像人们常说的那样,你已经尽了一切努力。 Vasiliy Sokolov 2019.02.12 10:29 #14 fxsaber:例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?是的。我需要考虑一下.... Vasiliy Sokolov 2019.02.12 10:36 #15 Igor Makanu:您好:用户可以使用 VS2017 工具创建一个带按钮的表单,无需第三方 dll(GuiController.dll),只需点击 2 次:创建项目 - Net 类库,然后创建项目 - 添加 Windows 表单。遗憾的是,如果他不熟悉 C#,他就做不到。您提供的代码有点 "简单",只有几行:创建一个线程,为其分配一个委托,然后运行它。在程序的其他部分,你订阅了必要的事件....。- 一切都很 "简单"... 我的主要想法是,用户可以绘制一个新项目,而无需为其添加处理程序代码,这一点是不可避免的。 Vasiliy Sokolov 2019.02.12 10:42 #16 fxsaber:例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?简而言之,是的,这样的配置会发生冲突。为了避免这种情况,您可以重载 ShowForm 方法: ShowForm(ulong magic, string assembly, string form_name); 这样做的目的是,magic 将包含一个反映 <form-expert> 类型关系的唯一同步编号。总之,一切都是可以解决和扩展的。 Igor Makanu 2019.02.12 10:49 #17 Vasiliy Sokolov:遗憾的是,如果您不熟悉 C#,您将无法做到这一点。你引用的代码很 "简单",只有几行:创建一个线程,给它分配一个委托,然后运行它。在程序的其他部分,您已经订阅了必要的事件....- 一切都很 "简单"...我的主要想法是,用户可以绘制一个新项目,而无需添加处理程序代码,这一点是不可避免的。您可能是对的,用户更容易在 VS2017 中将图形元素 绘制到表单中,然后在 VS 中运行他的作品进行检查,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。 我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的调用,因此我首先在 MT5 下制作了一个 .dll,然后将其集成到 MT4 中。 您的方法可能更实用,稍后我将熟悉一下 github 上的项目,非常感谢! Vasiliy Sokolov 2019.02.12 10:56 #18 Igor Makanu:您可能是对的,对于用户来说,在 VS2017 中将图形元素绘制到表单中更容易,然后在 VS 中运行他的作品进行测试,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。你说得没错!这就是系统由三个部分组成的原因。这就是 "分而治之 "的原理。 Igor Makanu: 我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的编译,因此我首先在 MT5 下制作了 .dll,然后将其集成到 MT4 中。 你还是有专业水平的。当然,MT4 的情况有些不同。 Igor Makanu: 您的方法可能更实用,我稍后会熟悉一下 github 上的项目,非常感谢! 感谢您的反馈:)))) Vasiliy Sokolov 2019.02.12 10:57 #19 我们都在等彼得。让我们看看他对我提出的解决方案的 "专家评估":) Stanislav Korotky 2019.02.12 14:54 #20 是的,这是一篇好文章,但我不确定编辑们是否读过它;-)。"此外 "是拼在一起的,但文中其他地方都是分开的。这引起了我的注意,因为与其他文章相比,我读得比较仔细。 事实上,这一方面似乎不错。但另一方面--为了可视化表单编辑器而调用所有与 Studio 相关的东西有点麻烦。如果已经安装了 Studio,那就没问题了。 我会在 MQL 中与设计器一起完成所有工作(我有一些想法,但还没拿到手)。我认为还有一个中间方案--使用 Studio,但不使用 DLL--在 MQL 中设计 WPF表单,读取 XAML。 123456789...15 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不幸的是,对于像我这样的书呆子来说,这一切都是一片黑暗的森林。你的文章展示了 github 的一个很酷的应用。也许这只是其功能的 1%,但很有用。
从给出的链接中,我还不明白它对 MQL5 有什么帮助。它可能是程序员的必备工具,但也有像我这样远离编程的人。
如果有一篇关于 MQL5 的文章,那将会非常有用。
版本控制系统(任何系统,不仅仅是 github)都是非常不简单的东西。你无法在五分钟内解释它是什么以及为什么需要它。但 "复制链接并获取项目 的最新版本 "功能是此类系统的特色之一,而且确实非常酷。
4) 你可以通过不同的方式对其进行定制。您只需指定表单名称和表单所在的程序集。也就是说,现在你可以运行一个、两个或五个表单。没有任何限制。
例如,我们启动两个相同的智能交易系统,但使用不同的窗体。它们不会冲突吗?
如果我理解正确,您建议为每个智能交易系统编写不同的 GuiMT.exe。是这样吗?
这篇文章写得很好,但不知为什么,我觉得它不适合初学者阅读。
我想我无法再简单地解释了。老实说,我已经尽力了。我甚至按照工人们的要求,详细描述了工作室的安装过程。
新手用户需要做三件事:
- 绘制他需要的表单(在 Visual Studio 中准确绘制表单)
- 在他的 Expert Advisor 中创建一个事件处理 代码(假定用户至少熟悉 MQL 的基本操作)//
- 通过 GuiController 将表单与 Expert Advisor 相连(指定正确路径、指定导入等)。
如果很困难,那就像人们常说的那样,你已经尽了一切努力。例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?
如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?
是的。我需要考虑一下....
您好:用户可以使用 VS2017 工具创建一个带按钮的表单,无需第三方 dll(GuiController.dll),只需点击 2 次:创建项目 - Net 类库,然后创建项目 - 添加 Windows 表单。
遗憾的是,如果他不熟悉 C#,他就做不到。您提供的代码有点 "简单",只有几行:创建一个线程,为其分配一个委托,然后运行它。在程序的其他部分,你订阅了必要的事件....。- 一切都很 "简单"...
我的主要想法是,用户可以绘制一个新项目,而无需为其添加处理程序代码,这一点是不可避免的。
例如,让我们运行两个完全相同但形式不同的 EA。它们不会冲突吗?
如果我理解正确,您建议为每个 EA 编写不同的 GuiMT.exe。是这样吗?
简而言之,是的,这样的配置会发生冲突。为了避免这种情况,您可以重载 ShowForm 方法:
这样做的目的是,magic 将包含一个反映 <form-expert> 类型关系的唯一同步编号。总之,一切都是可以解决和扩展的。
遗憾的是,如果您不熟悉 C#,您将无法做到这一点。你引用的代码很 "简单",只有几行:创建一个线程,给它分配一个委托,然后运行它。在程序的其他部分,您已经订阅了必要的事件....- 一切都很 "简单"...
我的主要想法是,用户可以绘制一个新项目,而无需添加处理程序代码,这一点是不可避免的。
您可能是对的,用户更容易在 VS2017 中将图形元素 绘制到表单中,然后在 VS 中运行他的作品进行检查,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。
我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的调用,因此我首先在 MT5 下制作了一个 .dll,然后将其集成到 MT4 中。
您的方法可能更实用,稍后我将熟悉一下 github 上的项目,非常感谢!
您可能是对的,对于用户来说,在 VS2017 中将图形元素绘制到表单中更容易,然后在 VS 中运行他的作品进行测试,确保 "一切正常 "后,他就可以继续在 .Net 和 MT5 上创建程序的交互。
你说得没错!这就是系统由三个部分组成的原因。这就是 "分而治之 "的原理。
我的目标略有不同--在 MT4 下运行 .Net,但 MT4 很难一次性实现正确的编译,因此我首先在 MT5 下制作了 .dll,然后将其集成到 MT4 中。
你还是有专业水平的。当然,MT4 的情况有些不同。
您的方法可能更实用,我稍后会熟悉一下 github 上的项目,非常感谢!
感谢您的反馈:))))
是的,这是一篇好文章,但我不确定编辑们是否读过它;-)。"此外 "是拼在一起的,但文中其他地方都是分开的。这引起了我的注意,因为与其他文章相比,我读得比较仔细。
事实上,这一方面似乎不错。但另一方面--为了可视化表单编辑器而调用所有与 Studio 相关的东西有点麻烦。如果已经安装了 Studio,那就没问题了。
我会在 MQL 中与设计器一起完成所有工作(我有一些想法,但还没拿到手)。我认为还有一个中间方案--使用 Studio,但不使用 DLL--在 MQL 中设计 WPF表单,读取 XAML。