首页 > EA > EA入门

【EA学习】替代MetaEditor的第三方编辑器解决方案

小明学外汇EA入门 2019-09-08 12:55:55 交流微信号:FX263cn EA学习   EA编程   EA课程

mt4升级后,采用了mt5的编辑器,当你的中文注释越来越多的时候,输入会越来越慢,老半天还不显示字符。鉴于此,我们很有必要选用第三方编辑器来解决问题了。用第三方编辑器我们必须解决三个问题,一是编译,二是关键字输入提示,三是代码高亮显示。
 
我选择UEStudio12,这个软件在业内广受好评,而且有稳定的破解版可用,我们只为了解决mql4编码问题,所以不必考虑这个IDE升级,也没必要让它升级。
 
一、编译ex4
 
运行UE,高级->工具配置:
 

 
按照图中的内容填写。MQL4编译器可以在官站下载,下载后的mql.exe(32位编译器下载,64位编译器下载)拷贝到UEStudio安装目录,命令行填写:mql.exe /mql4 "%f%r" ,工作目录选择这个安装目录。点击确定。在主菜单高级中就出现了一个新的工具。
 

 
编辑好.mq4文件后,点击这个工具,就会在.mq4路径下生成一个.ex4文件了。编译信息会在UE下方显示:
 

 
如果有错误,会提示错误编号以及源码所在的行列。
 
我不是很肯定用这个编译器编译出来的ex4是否会出错,建议最终还是到MetaEditor中编译成型。
 
顺便说一下帮助文件的安装,在mt4中打开数据文件夹,在\MetaQuotes\Terminal\Help里面将mql4.chm拷贝到UE安装文件夹,双击即可使用。
 
二、关键字输入提示与高亮显示
 
UEStudio安装文件夹中有一个\wordfiles,这里面是存放关键字的配置文件,我新建了一个laoyeemql4.uew,用记事本输入了所有的mql4的常量、关键字、命令符,做好了自定义函数匹配语句,以及高亮显示语句。
 

 
这样的效果与MetaEditor是不是一样呢?
 
三、附上laoyeemql4.uew源码
 
/L1"mql4 laoyee" MQL4_LANG Line Comment = // Block Comment On = Escape Char = \ String Chars = "' File Extensions = mq4
/TGBegin "Function"
/TGFindStr = "%^([a-z_][a-z_0-9^[^]*]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./()!]++)[~;]"
/TGEnd
 
//基本颜色与字体
/Colors = 0,8421504,8421376,8421376,255,
/Colors Back = 16777215,16777215,16777215,16777215,16777215,
/Colors Auto Back = 1,1,1,1,1,
/Font Style = 0,0,0,0,0,
 
//括号匹配
/Open Brace Strings =  "{" "(" "["
/Close Brace Strings = "}" ")" "]"
/Open Fold Strings = "{"
/Close Fold Strings = "}"
//自定义函数筛选
/TGBegin "Function"
//return type on separate line from function name and args
/TGFindStr = "%^([a-z_][a-z_0-9^[^]*]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./()!]++)[~;]"
//C++ class member functions, class::name args
/TGFindStr = "[ ^t]++^([a-z_][a-z_0-9]++::[a-z_^~][a-z_0-9]++^)[ ^t^p]++([^p*&:, ^t^[^]/*^-'=:&a-z_0-9./(!]++)[~;]"
//type name args
/TGFindStr = "%[a-z_][a-z_0-9^[^]:&]++[ ^t*]+[*&]++^([a-z_][a-z_0-9]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./(!]++)[~;]"
//type type name args
/TGFindStr = "%[a-z_][:a-z_0-9*&$^[^]*]++[ ^t]+[a-z_][:a-z_0-9*&$^[^]]++[ ^t*]+[*&]++^([a-z_][a-z_0-9]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./(!]++)[~;]"
//type type type name args
/TGFindStr = "%[a-z_][:a-z_0-9^[^]*&]++[ ^t]+[a-z_][:a-z_0-9*&^[^]]++[ ^t]+[a-z_][:a-z_0-9*&^[^]]++[ ^t]+[*&]++^([a-z_][a-z_0-9]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./(!]++)[~;]"
//Functions with preceding spaces/tabs(causes false positives)
/TGFindStr = "%[ ^t]++[a-z_][a-z_0-9^[^]:&]++[ ^t*]+[*&]++^([a-z_][a-z_0-9]++^)[ ^t]++([^p*&:, ^t^[^]a-z_0-9./(!]++){++$"
/TGBegin "Parameter"
/TGFindStr = "[ ^t^p]++^([~,]+^)"
/TGFindBStart = "("
/TGFindBEnd = ")"
/TGEnd
/TGBegin "Variable"
//type name;
/TGFindStr = "%[ ^t]++^([a-z0-9_]+[ ^t^*]+[a-z0-9^[^]_]+^);"
/TGFindBStart = "{"
/TGFindBEnd = "}"
//type name = init;
/TGFindStr = "%[ ^t]++^([a-z0-9_]+[ ^t^*]+[a-z0-9^[^]_]+^)[ ^t]++=*;"
/TGFindBStart = "{"
/TGFindBEnd = "}"
/TGEnd
/TGEnd
/Delimiters = ~!@%^&*()-+=|\/{}[]:;"'<> , .?
/Member String = "^([a-z0-9_:.]+^)[ ^t^*&]+$S[ ^t^[^]a-z0-9_]++[(-);,]"
/Variable String = "%[ ^t]++^([!-
 
 


全球外汇中文网Fx263.com  ,阅读更多请登录www.Fx263.com

【版权声明】

本文仅代表作者观点,不代表本站立场。Fx263.com对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证,且不构成任何投资建议,请读者仅作参考,并自行承担全部风险与责任。Fx263.com作为信息内容发布平台,页面展示内容的目的在于传播更多信息,不代表Fx263.com立场;本站会员及自媒体人所发的稿件所载明的信息与本网无关,如文章涉及版权,请联系本站处理。

【风险提示】

请通过正规渠道参与外汇保证金交易。目前通过网络平台提供、参与外汇保证金交易均属非法。请提高意识,谨防损失!外汇、贵金属和差价合约(OTC场外交易)是杠杆产品,存在较高的风险,可能会导致亏损您的投资本金,请理性投资。

 

Fx263.com - 全球财经中文网

官方交流微信号:FX263cn注明来意

重要声明 | 本站内容不适用于中国大陆地区访客。

Powered By Fx263.com - 版权所有

大中华地区全球财经中文网

本站内容仅供参考盈亏自负

FX263网 - 全球财经中文网