论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:2414回复:0
瞬间的光辉
注册时间2007-12-29
MT5 / MQL5新功能新函数首次大曝光
楼主发表于:2009-11-05 11:45只看该作者倒序浏览
1楼 电梯直达
电梯直达
我只能进行一下简短的描述。 http://bbs.520fx.com/images/default/attachimg.gif http://bbs.520fx.com/attachments/month_0910/0910140240136a247761976450.gif 下载
(67.46 KB) 2009-10-14 02:40 MetaTrader 5 和 MQL5的高水准让大多数人感兴趣。 MQL5中根本的改变是面向对象编程的出现。我不会在面向对象编程方面走得更深,那只是给资深程序员提供了更多的可能性。对于那些喜欢MQL4并且不懂得面向对象编程方法的人来说,在MQL5里仍然可以用MQL4的方式编程,而不使用面向对象功能。区别只是如果你要使用这个功能,就必须重新学习。 让我们看一个简单的例子:Ask和Bid变量没有了。为了取得卖出价,需要调用以下函数: [list=1][*][*]SymbolInfoDouble(Symbol(),SYMBOL_BID);[/list] 复制代码 不需要频繁使用Low[0] 或 iLow ( Symbol(), PERIOD_D1, 0 ),但你可以很容易重建他们,新函数把历史数据逐个读入内存,从某一K线到另一K线,或从一个选定的时间到另一个选定的时间。通过预读数据,整个可见的变化范围都被读入内存。不管你是否需要,它已经被读入内存了;比如你需要读入一分钟的数据,那么从1999年(如果存在有效历史数据的话)到此时此刻的一分钟数据都会被读入内存。 下面的例子只读入必要范围的数据。极大的节省了时间和内存。 [list=1][*]MqlRates rates_arrayG;[*]Int Bar=30; // 从当前K线开始只读入30个K线的数据[*]iCopBar=CopyRates(Symbol(),PERIOD_M1,0,Bar,rates_arrayG);[/list] 复制代码 这个功能既节省时间又节省内存。 这样的功能性变化并不吓人,我们只需要花点时间学习一下函数指针。 我等待已久MQL的一些有用的创新:  OnTimer() – 处理时间事件的函数(可以使EA的工作不再单纯依赖tick数据的触发);  OnTrade()-处理交易事件函数-交易仓位的开立、关闭或数量的变化。  OnChartEvent() – 处理来自鼠标和键盘的消息。 让我们仔细研究一下这些功能: 要调用OnTimer()函数,需在OnInit()函数(EA初始化事件处理器)里初始化计时器。 例如: [list=1][*][*]//+------------------------------------------------------------------+[*]//| |[*]//+------------------------------------------------------------------+[*]int OnInit()[*] {[*] EventSetTimer(1); //每一钞钟将会提交给 OnTimer()函数[*] }[*]//+------------------------------------------------------------------+[*]//| |[*]//+------------------------------------------------------------------+[*]void OnDeinit()[*] {[*] EventKillTimer(); // 退出时必须调用取消时间基准[*] }[*]//+------------------------------------------------------------------+[*]//| |[*]//+------------------------------------------------------------------+[*]void OnTimer()[*] {[*] MqlDateTime str1;[*] TimeGMT(str1); // 新函数取得 GMT 时间[*] Comment(str1.hour[*] ,str1.min[*] ,str1.sec[*] ,str1.day[*] ,str1.mon[*] ,str1.year[*] ,str1.day_of_year[*] ,OrdersTotal()[*] ,PositionsTotal()[*] );[*] }[/list] 复制代码 因此,控制不只象早先那样能够在收到tick数据时得到,还可以从时钟控制器上得到,这样可以编写实时的易处理程序,有了这个功能,更复杂的系统可以创建。 我喜欢OnTrade()函数,这个函数在下列交易事件被触发时调用:订单放置、止损或止盈被激活、改变止损或止盈数值、放置/删除一个待办定单。 现在监视事件与交易操作之间的关系更容易了。现在不用在每个tick发生或K线产生时循环检查定单状态了。这样的循环检查在MQL4中被使用,这极大地削弱了程序的性能。因此,在优化过程中特别重要。 让我们仔细研究一下OnChartEvent()函数。这个函数在以下几个事件发生时调用。我没有逐个测试,但这个目录给人印象深刻:  CHARTEVENT_KEYDOWN — 键盘按下事件;  CHARTEVENT_OBJECT_CLICK —在一个图表上绘制的物件被鼠标点击事件;  CHARTEVENT_OBJECT_DRAG —在一个图表上绘制的物件被鼠标移动事件;;  CHARTEVENT_OBJECT_ENDEDIT — 文本编辑结束事件;  CHARTEVENT_CUSTOM+n — 定制事件的识别;  CHARTEVENT_CUSTOM_LAST —定制的最后一个事件的识别. 高水平管理交易和图表的能力-这是开发者事先承诺过的 新的图表物件、按钮、进入域出现了。图表管理变得非同寻常,甚至可以插入来自于文件的图片-这个选项给那些喜欢特别设计的人提供了很多可能性。这不是Photoshop,这是MQL5 和 MetaTrader 5的结果。通过这些功能,你可以创建自己的按钮或添加进入域,例如,一个关闭所有打开订单的按钮或预先设定好止损止盈的快速买入和卖出按钮。 http://bbs.520fx.com/images/default/attachimg.gif http://bbs.520fx.com/attachments/month_0910/091014024024f9b426976a22ec.gif 下载
(60.19 KB) 2009-10-14 02:40 有一个另人不愉快的事实:那就是指标里不能创建物件,这是为了使指标执行得更快。好消息是他们知道了这一点,可能会让一个图表上可以执行多个EA。这样我们可以创建一个带有物件的“EA指标”,这个EA不交易,象指标一样操作。现在,问题是这样解决的:在一个图表上运行一个交易EA,这个EA在可以在第二个图表上创建物件,二者可以互换。 我试着把我的一个MQL4突破指标转换成MQL5的,用了好几个小时,大部份时间用在学习函数和调试上了。不过MQL5的程序代码已经变得很短了。 至于终端方面,让我印象最深的是数据周期的数目。在我看来,已经过多了。但是,大量的时间周期对一些交易者可能有用。现在创建任意时间周期只需要一步。所有的数据都是以一分钟周期存储的,因此转换成任何不同的周期都没有问题-这是一个重要的技术解决方案。 在历史数据目录里,现在没有不同时间周期的文件了。 http://bbs.520fx.com/images/default/attachimg.gif http://bbs.520fx.com/attachments/month_0910/09101402402a6dc28c08f3c41b.gif 下载
(5.48 KB) 2009-10-14 02:40 另一个另人愉快的新功能是现在我们可以清除日志文件了。 http://bbs.520fx.com/images/default/attachimg.gif http://bbs.520fx.com/attachments/month_0910/0910140240b0ac203f63411b43.gif 下载
(17.71 KB) 2009-10-14 02:40 这只是MetaTrader 5简短的评价。在这么短的时间内我无法描述系统全部的新功能。2009年9月9日开始测试,这是一个象征性的日子,我确信它将是一个幸运数字。自从我得到MetaTrader 5 终端 和 MQL5的测试版,几天过去了,还没能试遍它的所有功能,但我已经印象非常深刻了。 来自METAQUOTES的魔术师们创造了一个不可思议的产品。我是一个有25年经验的开发者,我看到了很多项目的开始并一定能够完成。 献上最好的祝福 Yuriy Zaytsev Skype: yurazyuraz 翻译者:bcsunwww 本贴来自www.mt5.net.cn
MetaQuotes 官方网站英文原文地址:http://articles.mql4.com/854
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告

本站免责声明:

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

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

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

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

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

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