文章 "跨平台智能交易程序: 概论"

 

新文章 跨平台智能交易程序: 概论已发布:

本文详细介绍了一种可以更快捷开发跨平台 EA 的方法。其所倡导的方法是将两个版本共享的功能整合到一个单独的类, 并将不兼容的功能分割到派生类。

请注意, 前面显示的两个源文件是相同的。它不可能有单一源文件可以跨平台兼容。这在于源文件是如何被编译的:

  • 编译一个 MQ4 源文件的结果将生成一个 EX4 文件
  • 编译一个 MQ5 源文件的结果将生成一个 EX5 文件。

不太可能有单一源文件可以在两个平台上工作。不过, 两个源文件引用单一的头文件是有可能的, 如下图描绘的那样:

源和头文件

作者:Enrico Lambino

 

这篇文章很棒:读起来很轻松,所有观点都很清晰,甚至还出现了你自己的观点...

 
想法(跨平台)是正确的。但这里建议创建某种元语言,并用它来编写跨平台智能顾问。在此解决方案中,元语言似乎是多余的,因为您可以用 MQL4 编写所有内容。Expert Advisors 不仅可以在 MT4 上运行,还可以在 MT5 上运行。kodobase 中就有这样的解决方案。特别是,使用该解决方案,只需添加一个 encludnik 即可在 MT5 中启动旧的 MQ4 代码。总的来说,创建元语言似乎不那么通用,甚至是多余的。不过,如果能继续 就这一主题撰写系列 文章,那将会非常有趣。希望 sysov 劳动不会出现。

至于导言本身。StringConcatenate 的示例让我大跌眼镜。很难理解在 MT4/5 中使用该函数的人。不仅繁琐,而且不清晰。在这两个平台中,字符串连接一直都是通过 + 运算符实现的。因此,对字符串使用 StringConcatenate 就相当于使用 "NumberSummary "函数求数字之和。简而言之,这是荒谬的。

如果我没理解错的话,这是对文章的翻译。这就是为什么你应该写信给原作者联系。英文版?
 
https://www.mql5.com/ru/code/16006
MT4Orders
MT4Orders
  • 投票: 11
  • 2016.08.05
  • fxsaber
  • www.mql5.com
Параллельное использование ордерных систем MetaTrader 4 и MetaTrader 5.
 
fxsaber:
想法(跨平台)是正确的。但这里建议创建某种元语言,并用它来编写跨平台智能顾问。在此解决方案中,元语言似乎是多余的,因为您可以在 MQL4 中编写所有内容。而且不仅可以在 MT4 上运行 EA,还可以在 MT5 上运行。
如果我理解正确的话,这是一篇翻译文章。因此,要联系作者,显然需要写信给原文。英文版?
是的
 
MetaQuotes Software Corp.:

已发表文章跨平台交易顾问:简介

作者:恩里科-兰比诺

请问,这到底是干什么用的?
 
Yuriy Asaulenko:
对不起,这有什么意义?
这样你就不用进行任何移植了。
 
只有基于跨平台交易引擎才能创建跨平台智能 交易系统,其中交易 API 和数据访问将由 OO 版本取代,其内部实现将由 #ifdef __MQL5__宏定义。综上所述,作者的文章至少是幼稚的。当然,作者发现 #ifdef __MQL5__ 宏是件好事,但仅靠它是不够的。您需要编写一个在每一步都使用 #ifdef 的引擎,而这要复杂得多。