设为首页 收藏本站 切换语言

按照这个学习路径走,半小时学会MT5编程

| 发表于 2023-1-7 13:50:21 | 显示全部楼层 |复制链接
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类(集成了处理持仓头寸相关的属性和方法)。只需要学会调用类的属性和方法就可以了,千万不要去深究类的实现过程,否则你可能搞上几年也未必能吃透。

比如用一句代码就可以平掉所有持仓头寸。
  1. #include <Trade\Trade.mqh>
  2. CTrade trade;
  3. void OnTick(){   
  4. while (PositionsTotal()>0) trade.PositionClose(0);
  5. }
复制代码

如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论4

yzh03106
DDD
| 发表于 2023-1-7 15:39:10 | 显示全部楼层
很不错,感谢分享!
举报

点赞 评论 使用道具

日拱一卒
DD
| 发表于 2023-1-7 19:45:32 | 显示全部楼层
收藏学习时用,谢谢。
举报

点赞 评论 使用道具

xinhua123
DDD
| 发表于 2023-1-8 04:07:22 | 显示全部楼层
谢谢楼主分享
举报

点赞 评论 使用道具

ken138888
B
| 发表于 2023-1-8 06:52:55 | 显示全部楼层
真的可以吗
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)