首页学院交易策略EA智能交易文章详细

替代MetaEditor的第三方编辑器处理方案

外汇网2021-06-17 09:43:01 73
汇外网 - 全球专业的黄金外汇门户导航行情资讯网站

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]++^([!-

标签:

随机快审展示
加入快审,优先展示

加入VIP