论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:2036回复:4
boolapi
注册时间2014-03-23
[MT4相关]旧版 MQL4 程序转新版的常见错误以及如何避免
楼主发表于:2014-05-17 02:46只看该作者倒序浏览
1楼 电梯直达
电梯直达
本帖最后由 boolapi 于 2014-5-17 11:29 编辑 这几个月常有网上的朋友私下请托解决旧版的指标和 EA 在 MT4 build 600 之后环境编译不过的问题. 通常解决编译问题不大, 但接下来要能保证功能还完全正常, 就需完全读懂旧的指标和 EA 代码, 这就需要花些心力, 如果不是调用外部无法调试的他人客制编写 dll 的基本上花些时间都还能解决. 不过解读反组译那种随即编码参数的例外, 那种要读通花的时间代价太大了, 除非问题是马上能看到的. 在修改编译的过程, 遇到的不外乎是以下问题, 日后遇到问题的朋友也可以试着自己解决: 1. 与 dll 的字串调用要改为 unicode 形式, 因为新版 MT4 已经改为全 Unicode 环境. 如果是调用微软系统自带的 win32 api 的 dll, 如 user32.dll 或 wininet.dll, 基本上函数名要调用尾巴带 W 的版本, 之前旧指标或 EA 都是调用 A 版本, 也就是 ANSI 版. 2. 与新版 MQL4 的新定义函数名称冲突到, 这个查下 MQL4 官网文档网站即可: http://docs.mql4.com/cn/, 个人习惯用谷哥那个函数名加MQL4 即可快速找到这个 MQL4 函数的定义. 3. 在旧版提取指标数据如: AlligatorJawsBuffer=iMA(0,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); 有许多的旧指标或EA在第一个参数默默认当前商品名称是放0, 这个地方应该是放当前商品名称的"字串", 放数据0就成问题, 新版要求放入 NULL 或 Symbol(), 其实最好的习惯是放 Symbol() 和 Period(). AlligatorJawsBuffer=iMA(Symbol(),Period(),13,8,MODE_SMMA,PRICE_MEDIAN,i); 4. Rates 数据格式的改变, 新版新增 Mqlrates 数据格式, 理论上应该要对旧版相容, 但实际要看那个指标或EA 如何调用. 其他细节对 MT4 编程有兴趣的朋友可以参考这篇 MQL4 官方文章, 但第一条的设 strict, 也就是严格要求照新版来编译, 这最好不要设, 不然会更难除错. 就算个人在用新版设计新指标或 EA 时, 基本上也是把这行 strict 拿掉. http://articles.mql4.com/cn/1161 另外在四月卅日发布的最新 build 646 把困扰许久的 MetaEditor 编辑中文会粘在一起的问题解决, 对于要应付许多旧指标或 EA 代码里夹有中文的编辑真是个好消息. 另外这版的 release note 也提到对 Gmail yahoo 等服务商的支持, 这应该是加入对 SSL 邮件服务器的支持, 过去使用 MT4 email 发送必须使用也提供无 SSL 接入的服务商如 GMX 或 139, 个人还没试, 因为已经用 GMX 或 139 用稳定了, 有兴趣的朋友可以自行测试. Build 646 的 release note: (中文版解说很不全, 只能看英文版解说了, 看来是修掉不少小问题), 如果你的 MT4 没有帮你自动更新到, 值得手动下载覆盖更新. http://forum.mql4.com/62849 相反的, 用新版 MQL4 模版作的指标或 EA 带有新版的一些基本公用函数如 OnTick, OnCalculate, OnStart 等等带有 On 开头的, 在旧版的 MT4 是无法编译的, 现在还使用旧版 MT4 无法更新基本上是平台商没有与 MT4 正式有合同造成的.
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
boolapi
注册时间2014-03-23
楼主发表于:2014-05-17 03:26只看该作者
2楼
管理员朋友, 上面的帖子是讨论 MT4/MQL4 编程, 附加的几个网址是 MT4/MQL4 官网进一步的解说 (因为原文相当的长), 就如同讨论微软视窗编程会引用微软 MSDN 网页解说一样, 可否考虑恢复那几个非商业性的网址?
老正
注册时间2003-09-21
365热心助人奖
发表于:2014-05-22 03:03只看该作者
3楼
boolapi 发表于 2014-5-17 11:26
static/image/common/back.gif 管理员朋友, 上面的帖子是讨论 MT4/MQL4 编程, 附加的几个网址是 MT4/MQL4 官网进一步的解说 (因为原文相当 ...
已经恢复了
zmlyai
注册时间2017-10-03
yanzhao
注册时间2017-10-15

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]