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

 

你好,瓦西里,大家好。我使用的 GuiController 使用Visual Studio C# 创建的表单。


我的想法是用 SQLite3 数据库中的数据填充 ComboBox 的字段。


我已经安装了整个 System.Data.SQLite 软件包,但在使用 GuiController 时却无法正常工作。


有人能解释一下原因吗?


谢谢

 

我对这篇文章非常感兴趣。终于可以打开一个真正的窗口,拥有你想要的一切。整个示例的运行限制为只有给定的文件才有效。此外,"enum GuiEventType "也存在问题,如果您不自行添加该 "enum",MetaTrader5 根本无法编译该示例。在编译之前,编辑器只能从 DLL 中获知事件。

如果最终能有真正的界面选项就更好了。但不幸的是,这只是一个演示,这让我非常羡慕。

对我来说,第一个选项应该是显示屏,因为 System-Out 非常老式且难以辨认。但遗憾的是,该演示只适用于编译版本。只要我用 Visual myself 编译 DLL,程序启动时就会出现 .NET 错误。无论选择的是 3.x 还是 5.NET。我猜测我们的作者有一个特殊的 MetaTrader,在那里这种东西可以工作--真遗憾。

 

您好

我想知道是否有一个事件可以让 EA 在表单关闭时从图表中移除。

我需要更改库吗?

有人能 我吗?

 

我在上述 TradingForm 的基础上创建了一个 C# WinForm 类。我已经添加了一些功能,它们运行得非常好。

实际上,我正试图通过 Nuget 添加额外的表单元素,但当在代码中引用和使用这些库时,表单并没有显示出来。

那么是否有可能这样做,或者是否有其他方法来使用引用的库呢?

预先感谢您的提示 :-)

 
Mano #:
我们能否将此 .Net 应用程序附加到图表中?
你能做到吗?我真的需要它
 

您好您能告诉我吗?我做错了什么?当我打开智能交易系统时,表格没有出现。日志中没有错误。



 
Andrey Sokolov #:

您好您能告诉我吗?我做错了什么?当我打开智能交易系统时,表格没有出现。日志中没有错误。



带表单的库和应用程序是为哪个版本的 .NET 构建的?MT4 和 MT5 不支持 .NET Core 3(我没有检查过更年轻的版本)、.NET 5 和 .NET6,无论是库还是表单应用程序都不支持。
当然我可能错了,但我也没有在这些版本上运行表单。我自己在 .NET Framework 4.8 下构建时就能启动它。

另外,如果您想导入 MT4,您需要稍微修改一下库代码,因为通过引用传递参数会有问题。

 

不起作用:

从资源库下载了 GuiController。安装了Visual Studio 2022,创建了一个带按钮的表单,在 MetaTrader 5 中运行时出现错误:

2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: Call destination created an exception.---> System.BadImageFormatException: The module was expected to contain an assembly manifest.(HRESULT exception:0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.Assembly.LoadFile(String path)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in MtGuiController.GuiController.GetGuiController(String assembly_path, String form_name)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in MtGuiController.GuiController.ShowForm(String assembly_path, String form_name)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) --- 结束内部异常堆栈跟踪 ---
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) .Net 运行时错误


clrver 命令的结果:

PS C:{Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Microsoft (R) .NET CLR 版本工具版本 4.8.3928.0

版权所有 (c) 微软公司,保留所有权利。

机器上安装的版本:

v2.0.50727

v4.0.30319


错误可能与什么有关?

 
Nextor Visual Studio 2022,创建了一个带按钮的表单,在 MetaTrader 5 中运行时出现错误:
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: Call destination created an exception.---> System.BadImageFormatException: The module was expected to contain an assembly manifest.(HRESULT exception:0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)


命令 clrver 的结果:

PS C:\Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Microsoft (R) .NET CLR 版本工具版本 4.8.3928.0

版权所有 (c) 微软公司,保留所有权利。

机器上安装的版本:

v2.0.50727

v4.0.30319

错误与什么有关?

GuiController 已过时,需要重新编译。

 

自 2018 年 10 月起,MQL5 原生支持与 Net Framwork 库集成

下午好。能告诉我在哪里可以读到关于 C# 支持的官方信息吗?我在文档中没有找到,有关于连接 VS、使用 MT 作为编译器、与 Python 协同工作的信息,但我没有看到关于 Sharp 的任何信息。如果能提供官方文档的链接,让我熟悉所有功能,我将不胜感激。