翻译的困难 :)

 

我想告诉你我是如何在一个晚上将我的项目从MQL4转换到5的。我只想告诉你我的做法,结果是非常简单的)。

所以,昨天下午累了,躺了半个小时,早上一点半就醒了。我想我打鼾了,现在该怎么办,我永远也睡不着了。

我一直在考虑将我的黄牛项目从MT4切换到MT5的对冲功能,我已经使用机器人网站的对冲演示很长时间了,但没有时间真正使用它。主要目标是使用真正的机器人刻度线进行测试。我还想在云中运行优化器,那里的速度真的很好。

现在我在Matlab中运行模型,但这是一个简化的版本,而且越来越难使代码和模型的变化同步。比方说,模型一直落后于真正的MQL4代码。

********** 迁移过程 *****

因此,我的项目由一个.mq4文件和一堆.mqh的类组成。我已经把所有的东西都移到了5,把.mq4改名为.mq5,把班级保持原样。开始编译,当然是100500个错误。好的,我们不怕麻烦,看重错误。其中大部分都与MarketInfo有关,它们几乎到处都有。好吧,我是一只懒猫,我不允许用手去清理它 ))我在Visual Studio中已经有一个MQL4/5项目。

顺便说一下,我看了我在YouTube上精心保存的2011年的旧视频。我已经学会了如何配置2010年工作室以接受MQL文件作为加号文件。没有什么变化,你现在可以使用它。

2011年的视频,我可以在MQL4上说脏话,现在情况不同了,语言很正常 ))我只是懒得重读,但过去的一些回音可能会溜过去。

https://www.youtube.com/watch?v=oQs4qqwhqzg

所以,我已经把所有的东西都上传到了studio,它的好处是,搜索和替换可以在整个项目中一次完成,而不是一次一个文件。我已经用MQL5的类似物替换了所有MarketInfo。在进行了一些小的修正之后,所有的错误,正如预期的那样,都留在了COrderManager类中。这是我的类,管理订单,建立和修改网格和其他东西。

我肯定花了大约3个小时来重新设计它。使用了Trade标准库类,但我不得不从中生出一个婴儿,因为缺少一些功能。

------------------------

结论。所有这些关于一个可怜的程序员转换到5的难度的呻吟都是胡说八道!在过渡期间,我煮了一个大土豆加肉,去走夜路,喜欢走夜路,和Bruce W.看了一点电影,在我不能去的地方做了一些改进。现在很有可能进行重启,我最近想起了一个旧的承诺,而这个话题前几天又出现了。

是的,COrderManager类在使用标准库时减轻了很多重量

Настройка Visual Studio 2010 для редактирования MQL файлов
Настройка Visual Studio 2010 для редактирования MQL файлов
  • 2011.07.01
  • www.youtube.com
Как известно, редактор Metatrader 4 далек от совершенства. Часто удобно редактировать большие проекты в VS2010. На этом видео я показываю процесс настройки.
 
Andrey F. Zelinsky:

你如何理解 "走夜路 "之后的 "改善那些地方"?

你是晚上去散步了还是去散步了?

我已经很久没有坐在办公室里了,我经常在晚上去散步 )我改进了项目 中的一些地方,这些地方我早就想改了,但反正我也懒得去做。我已经为这样的事件做好了准备,转换并重新做了很多事情。

安德烈,"散步 "和 "喝酒 "是两码事))。

 

阿列克谢,有一个问题要问你。

翻译以程序化风格编写的项目有多长和多难?为什么是程序性的?- 我已经习惯了,我有一个适用于所有场合的模板,在其中写上3-5行条件,任何猫头鹰在半小时内就可以完成所有的调试。

下一步。

是否可以重写位置开放函数,以与quad中相同的方式应用它,只是多年来习惯了它们的名称和用法,不需要插入任何库中。

和一个条件块,以打开并创建一个图表。

更多的图形,在五个上写了一次,所以有一些东西通过.OPA时间和价格的选择第一点和第二点完成。在第四个中,ObjectSetInteger(0,nm,OBJPROP_TIME1, t1)和ObjectSetInteger(0,nm,OBJPROP_TIME2, t2),但在第五个中,这样的结构不起作用(

预先感谢您的回答!

 
Alexey Volchanskiy:

...

结论。所有这些关于一个可怜的程序员转到A级有多难的呻吟都是胡说八道! ...

不要把上帝的礼物和鸡蛋混为一谈。如果一个EA在处理多个订单并转化为净值,这是一个不真实的任务。
 

我认为不移植代码会更容易。从头开始写是比较容易的。这样一来,它的质量会更高。

 
Dmitry Fedoseev:
不要把上帝的礼物和鸡蛋混为一谈。如果一个EA在处理多个订单并转向净值化,这是一个不现实的任务。

当然,我在第一篇文章中写道:"我早就想把我的黄牛项目 从MT4转移到MT5,并进行对冲,我已经从Robo开始进行对冲 演示,但我一直没有时间。"你一定错过了这些细节。

这就是为什么我没有在只有净值的时候转到MT5。现在,在树篱的帮助下,我慢慢地爬了过来。

该帖子是关于过渡期的纯技术方面的。

 
Anton Zverev:

我认为不移植代码会更容易。从头开始写是比较容易的。那样的话,质量会更高。

为什么?语言是一样的,访问时间序列的函数是不同的,还有一些其他的,这在VS中通过替换整个项目 来解决,就像我写的那样。这是快速和不复杂的。交易部分有一些困难,除了订单处理,我还不得不把仓位处理引入到类中。但原则上这也不是什么大问题。

再一次,以防万一--我是说对冲。

 
Vitaly Muzichenko:

阿列克谢,有一个问题要问你。

翻译以程序化风格编写的项目有多长和多难?为什么是程序性的?- 我已经习惯了,我有一个适用于所有场合的模板,在其中写上3-5行条件,任何猫头鹰在半小时内就可以完成所有的调试。

下一步。

是否可以重写位置开放函数,以与quad中相同的方式应用它,只是多年来习惯了它们的名称和用法,不需要插入任何库中。

和一个条件块,以打开并创建一个图表。

更多的图形,写了一次五,所以东西是通过.OPA有时间和价格的选择第一点和第二点做的。在第四个中,ObjectSetInteger(0,nm,OBJPROP_TIME1, t1)和ObjectSetInteger(0,nm,OBJPROP_TIME2, t2),但在第五个中,这样的结构不起作用(

预先感谢您的回答!

Vitaly,你可以把一切都留在程序化风格中,没有人强迫你使用OOP。标准库 对我来说就是很清楚,我已经从它那里创建了自己的类,我已经增强了一些东西。而且我已经在OOP上做了所有的事情。

我将按相反的顺序回答))

1.我重新做了带图形的脚本,有一些差异,但非常轻微。基本上,我必须明确指定窗口和子窗口,这在4中是没有必要的。

2.至于开仓,如果使用CTrade类,它几乎有直接类似于MQL4的功能

3.我想这不会花很长时间。

如果你指的是自由职业者,你可以很快适应它。基本上你必须习惯订单、交易和头寸是不同的东西,在对冲方面也是如此。

 
Anton Zverev:

我认为不移植代码会更容易。从头开始写是比较容易的。这样一来,它的质量会更高。

有时,辞去工作、妻子和完整的生活,从头开始是有用的。我已经做过很多次了。一切都变得更好,质量更高)。
 
Alexey Volchanskiy:
有时,辞去工作、妻子和满足的生活,从头开始,可能会有帮助。我已经做过很多次了。它变得越来越好了 )))
))
 
我现在要被扑倒了--我可以感觉到。你应该用OOP风格来写,你会很高兴的。
然后像这样的举动将是一个轻松的夜行