首 页
企业建站
公司注册
美国主机
香港主机
产品介绍
下载中心
论坛
招兵买马
  首页 > 网站公告
  网站公告
 MT5特性介绍:分析是交易的重要内容之一  (10/17 01:34)  
 MT5 / MQL5新功能新函数首次大曝光  (10/17 01:32)  
 MT5详细介绍  (10/17 01:31)  
 MT5的交易系统和MT4的交易系统有本质的区别  (10/17 01:29)  
 MT5推向市场与计划    (10/17 01:03)  



 

上传的图片
   20091016049374.gif [ 67.46 KB 626×500 ] (缩略时请点击查看原图)

  

MetaTrader 5 和 MQL5的高水准让大多数人感兴趣。
MQL5中根本的改变是面向对象编程的出现。我不会在面向对象编程方面走得更深,那只是给资深程序员提供了更多的可能性。对于那些喜欢MQL4并且不懂得面向对象编程方法的人来说,在MQL5里仍然可以用MQL4的方式编程,而不使用面向对象功能。区别只是如果你要使用这个功能,就必须重新学习。
让我们看一个简单的例子:Ask和Bid变量没有了。为了取得卖出价,需要调用以下函数:
复制代码SymbolInfoDouble(Symbol(),SYMBOL_BID);


不需要频繁使用Low[0] 或 iLow ( Symbol(), PERIOD_D1, 0 ),但你可以很容易重建他们,新函数把历史数据逐个读入内存,从某一K线到另一K线,或从一个选定的时间到另一个选定的时间。通过预读数据,整个可见的变化范围都被读入内存。不管你是否需要,它已经被读入内存了;比如你需要读入一分钟的数据,那么从1999年(如果存在有效历史数据的话)到此时此刻的一分钟数据都会被读入内存。
下面的例子只读入必要范围的数据。极大的节省了时间和内存。
复制代码
MqlRates rates_arrayG[];
Int Bar=30; // 从当前K线开始只读入30个K线的数据
iCopBar=CopyRates(Symbol(),PERIOD_M1,0,Bar,rates_arrayG);


这个功能既节省时间又节省内存。
这样的功能性变化并不吓人,我们只需要花点时间学习一下函数指针。
我等待已久MQL的一些有用的创新:
 OnTimer() – 处理时间事件的函数(可以使EA的工作不再单纯依赖tick数据的触发);
 OnTrade()-处理交易事件函数-交易仓位的开立、关闭或数量的变化。
 OnChartEvent() – 处理来自鼠标和键盘的消息。
让我们仔细研究一下这些功能:
要调用OnTimer()函数,需在OnInit()函数(EA初始化事件处理器)里初始化计时器。
例如:
复制代码
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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()
);


因此,控制不只象早先那样能够在收到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的结果。通过这些功能,你可以创建自己的按钮或添加进入域,例如,一个关闭所有打开订单的按钮或预先设定好止损止盈的快速买入和卖出按钮。

上传的图片
   200910160513874.gif [ 60.19 KB 750×440 ] (缩略时请点击查看原图)

  

有一个另人不愉快的事实:那就是指标里不能创建物件,这是为了使指标执行得更快。好消息是他们知道了这一点,可能会让一个图表上可以执行多个EA。这样我们可以创建一个带有物件的“EA指标”,这个EA不交易,象指标一样操作。现在,问题是这样解决的:在一个图表上运行一个交易EA,这个EA在可以在第二个图表上创建物件,二者可以互换。
我试着把我的一个MQL4突破指标转换成MQL5的,用了好几个小时,大部份时间用在学习函数和调试上了。不过MQL5的程序代码已经变得很短了。
至于终端方面,让我印象最深的是数据周期的数目。在我看来,已经过多了。但是,大量的时间周期对一些交易者可能有用。现在创建任意时间周期只需要一步。所有的数据都是以一分钟周期存储的,因此转换成任何不同的周期都没有问题-这是一个重要的技术解决方案。
在历史数据目录里,现在没有不同时间周期的文件了。

上传的图片
   200910160521274.gif [ 5.48 KB 449×141 ] (缩略时请点击查看原图)

  

另一个另人愉快的新功能是现在我们可以清除日志文件了。

上传的图片
   20091016053574.gif [ 17.71 KB 426×457 ] (缩略时请点击查看原图)

  

这只是MetaTrader 5简短的评价,功能太多,写得不够全面。
公司注册 | 网上开店 | 新闻系统 | 商务信息 | 论坛系统 | 服务中心 | 会员专区 | 在线帮助 | 客户支持 | 网络电话 | 银行开户 |

 我们的团队由具有很高技术水平的专业人员组成。我们正等着为你解决问题。我们提供一天24小时、一周7天、一年365天的全天候服务。有任何问题请联系我们。

公司地址:湖南省长沙市五一大道碧云天大厦九楼C座

邮箱/MSN:mtquoes@hotmail.com     业务QQ:345684   电话:13272444222