文章 "继续迈进优化(第一部分):操控优化报告" - 页 2

 
这篇文章很有意思。一切都描述得很清楚。我正在学习 C# 编程。有可能用 C# 写一个机器人吗?怎样才能让它进行定期交易?非常感谢!
 
Irina Dymura:
这篇文章很有意思。一切都描述得很清楚。我正在学习 C# 编程。有可能用 C# 写一个机器人吗?怎样才能让它在 Termenal 中交易?非常感谢!

一切皆有可能,但最好用 MQL5 来编写。不过,无论是出于教学目的还是其他需要,您都可以尝试一下。有几种选择,其中最简单、最理想的是在项目 dll(动态库)中用 C# 编写所有逻辑。然后声明一个公有类,其中包含一些公有静态方法(它们将在 MQL5 中作为 C 函数导出)。该类应包含一个方法,用于初始化机器人、销毁机器人并在每个 tick 时调用(类似于 OnInit、OnDeinit、OnTick)。然后在 MQL5 中创建机器人,从创建的 dll 中导出上述静态函数,编译后将得到以下对接:
1.MQL5 在 OnInit 中调用 dll 的初始化方法。该 dll 将机器人类初始化为一个静态变量。

2. MQL5 OnTick 调用 dll 的 OnTick 方法,并接收卖出/买入/不做的信号。如果需要进入交易,我们使用 MQL5 中编写的代码进入。

3. MQL5 的 OnDeinit 会删除机器人,我们调用 dll 的 OnDeinit 方法,然后做一些事情。 在 C# 中,您不需要删除类,Garbige Collector 就可以做到这一点,内存方面的所有事情实际上都是自动化的。

也就是说,计算在 C# 端,而交易在 MQL5 端。

终端也有一些类似的 API,其中 C# 代码通过管道或其他连接直接与 MQL5 交互。我甚至在 github 上看到过这样一个项目,但在我看来,通过 dll 编写一切更容易。

在上一系列关于优化管理的文章中,我展示了如何使用 dll 将 WPF GUI 与 C# 连接起来。您也可以使用同样的方法将机器人移植到 C# 中。在我的文章之前,他们也写过关于图形用户界面的文章,但只涉及 WinForms 和 MQL5,我采用了这一机制的一部分,我不记得那篇文章的链接了,但它也相当有用。我想我在本文 的某处提到过它。

另外,在本系列文章的第 3 篇中,介绍了如何从 dll 向 MQL5 输出一些静态函数。

Управление оптимизацией (Часть I): Создание графического интерфейса
Управление оптимизацией (Часть I): Создание графического интерфейса
  • www.mql5.com
Вопрос альтернативного запуска терминала MetaTrader уже поднимался в статье Владимира Карпутова, а так же на сайте MetaTrader — существует страница, описывающая порядок работы и альтернативного способа запуска терминала. Оба перечисленных источника легли в основу данной статьи, однако ни в одном из них нет описания как создать удобный и...
 
你好!
那么,在使用这个程序之前,我是否必须使用Visual Studio 进行转换?
 
Guilherme Mendonca:
您好! 那么,在使用这个程序之前,我是否必须使用 Visual Studio 进行转换?

您好。这是已经发布的 5 篇文章中的第一篇。第 4 部分是完整的程序。是的,你必须用Visual Studio 编译一些代码。如果说的是当前文章中的代码,那么是的,它必须在 Visual Studio 中编译。

 
https://www.mql5.com/zh/articles/7059