extern mode 风控选择=1 ;
extern bool 第一组货币交易=true ;
这两行代码是从一个MQL程序里摘出来的,它命名了一个枚举和一个布尔变量。能用中文命名变量的语言不少,但MQL的特别之处在于,
它能赚钱!
量化交易程序语言MQL
MQL全称叫MetaQuotesLanguage,是一种广泛应用在外汇交易领域的语言。
第一次接触它是在很多年前,那时候它还只有MQL4版本,现在已经更新到MQL5了。
在用MQL进行交易之前,我每天都要盯着交易软件,那时候吃也吃不好,睡也睡不好。
要知道外汇市场是5x24小时不停的,经常半夜就被一个平仓警告吵醒。
自从用上MQL,再也不用自己盯盘了,整个人睡也睡的好,吃饭也吃的更香了。
举一个简单的例子,炒股的人都听说过金叉死叉,
比如MACD短线穿长线,就是金叉,很多人会选择在这个时候买入。
但是在高频场景下,每天可能有大量的交易。
可能半夜两点出现了金叉,但睡过去了没买入,错过几千万。
又或者半夜崩盘,睡着了又没平仓,痛失几千万。
这种高频交易的场景再靠人力地去盯着K线就很累了。
一个不小心,脱发,黑眼圈,失眠,然后猝死。
最好就是有程序去代替人力进行交易。
对于习惯用指标判断进场时机的交易员来说,MQL也提供了很多方便的接口,
像MACD,布林带,RSI,MQL都有现成的接口,
用这些接口就可以把交易习惯量化成代码,比如下面这段通过判断指标是否达到了过卖条件来决定要不要下订单,
if (signal(symbol) == OVER_SELL && !isOrderExistBuy(symbol)
&& (!negative_profit || TimeCurrent() - lasttrade_timestamp >= interval_time)) {
if(isOrderExistSell(symbol) && getProfit(symbol) > 0) {
closeAll(symbol);
}
if (TRADE_TPSL) {
ticket = OrderSend(...
你会发现MQL跟我们常见的编程语言没什么不同的,语义,语法,逻辑判断,该有的都有。
如果深入了解MQL4的话,会发现它非常的像C语言。
只要你会C语言,上手MQL4就是一两天的事。习惯了C++的开发者也可以选择直接上手MQL5。
MQL5和MQL4的区别除了版本不同,MQL4从使用和阅读上来看更像C语言。
为了弥补面向对象的不足,MQL语言的开发者后来又开发了MQL5版本。在MQL5里可以用对象等C++的特性去编程,不过代价是从MQL4升级到MQL5的一些老代码需要做不少兼容性修改。
用MQL实现AI交易
AI量化交易确实可以通过MQL来实现,我们上一篇文章里说到的AI交易就是用MQL提供的接口实现的。
MQL提供了第三方dll调用的接口,给开发者们接入自己开发的库,包括深度模型推理引擎,像tensorflow。
它的接入方式跟我们在WIN平台上开发没什么区别,只要把在visual studio上开发好的dll放到MQL指定的目录下,然后通过头文件的方式引入dll所需要的头文件就可以。
比如我们定义了一个接口,
int fnExport(wchar_t* t);
在MQL上import一下就可以使用了。
#import "Project2.dll"
int fnExport(string str);
最后聊聊大家最关心的问题,
MQL能不能赚钱,能赚多少钱?
这个问题还得看交易员,MQL只是一种辅助手段,
它能做到每一毫秒都盯着市场,在合适的时候进场,在合适的时候出场,交易员做不到那么精确地控制。
但是,什么是“合适的时候”还是由开发者决定的。所以并不是说只要用MQL写就能赚钱。
由MQL编写的程序一般叫EA,全称Expert Advisor,也叫智能交易程序。在市场上有很多别人开发好的EA可以交易,对于新手来说,一般是通过购买EA授权等方式使用别人写好的EA。
EA价格不等,从免费到几千美金都有。
最后看看排名靠前的EA的价格和它们的盈利能力。
一年60%的收益,堪比印钞机。