MT5是一门非常容易学习的编程语言。网上有很多关于MT5的编程教程,实在是把简单的事情弄得太复杂了。 看完这篇文章,你也可以用MT5写出EA。当然,这里只是入门,剩下的自己轻车熟路,自己研究就行了。 学号MT5只需要学会使用MT5中的CTrade类,然后知道几个函数就可以了。 学会灵活使用CTrade类,就等于学会了MT5的60%。 比如要开一个买单 #include <Trade\Trade.mqh>CTrade trade;
//实例化一个对象为tradevoid OnTick() {
trade.Buy(0.01); //市价买入0.01手,买入品种为加载的货币对
trade.PositionClose(PositionGetTicket(0)); //平掉序号为0的头寸 }
说下怎么选择订单或者持仓。需要学会下面这几个重要的函数,PositionSelectByTicket()和OrderSelect(),PositionGetTicket(),OrderGetTicket(),SymbolInfoDouble(),AccountInfoDouble(),AccountInfoInteger(),Symbol()。 就可以开始编写EA了。 需要说明的是在MT5中Position是已经成交的头寸。而Order是未成交的挂单。这两者在MT5中是完全不同的。 千万不要用OrderSend()下单。千万不要重复造轮子,你能想到的大部分功能,MT5都有现成的方法可以直接调用。 如果你想完全面向对象编程,还可以看下CAccountInfo类(集成了与账户相关的属性和方法),CSymbolInfo类(集成了和交易品种相关的属性和方法),COrderInfo类(集成了处理挂单的属性和方法),CPositionInfo类(集成了处理持仓头寸相关的属性和方法)。只需要学会调用类的属性和方法就可以了,千万不要去深究类的实现过程,否则你可能搞上几年也未必能吃透。
比如用一句代码就可以平掉所有持仓头寸。
- #include <Trade\Trade.mqh>
- CTrade trade;
- void OnTick(){
- while (PositionsTotal()>0) trade.PositionClose(0);
- }
复制代码
|