人生的相遇有很多,从单向,双向注意到轻度,重度,深度卷入。人生的相别也有很多,从藐视,冷淡,疏远到陌路不相识。
2004年夏日的午后,我去看望朋友,他开的是外汇保证金公司,目睹屏幕上有一款我没有见过的交易软件。我问什么软件。他答mt4。我习惯性的打开帮助文档。目睹了那个可以自动化交易的mql4,有些惊喜,从此便开始了我的迈达克之旅。
mql4的语言内容并没有很多。从1.语法,注释,标识符,保留字,2,报告类型。到19.work with events,共在笔记本上抄了5张。其中两张是函数(数组到文件)部分,然后就是收集ea,试探它们,改写它们,而且把ea在纸上再写一次,眼界开阔些。
伴随自己对外汇市场认知的增长,和mt4的性质(btob软件)。以及mql4的语法特点(面向过程),我需要一个面向对象的知识库,一个模糊粗糙的推理机。mql4只能供应造成式规则,确定的推理机制。加之我外汇的接连爆仓,我于2006年放弃了运用mql4,但还关注着迈达克。
2007年,Wealth-Lab Developer也从pascal改到c#,RightEdge也推出了连接sqlsever的c#,仍有OpenQuant,QuantDeveloper,NinjaTrader有均为采取的c#,还对神经网络交易感兴趣,但是NeuroSolutions不能编程,Wealth-Lab Developer那个前向神经网络太简单不适用。
于是迈达克提出了面对对象的mql5迈达克官网上当下最早的资料是2009年11月2号公布的,07、08年那些他们准备开发mql5的新闻当下一个也找不足了。我还记得猜他们运用什么语言,开发者后面书架上的些《c++技术内幕》的书,仍有些语法采取的读者意见调查。目睹mql5当下很亲切,见证了它语法的变迁,从无指针,到当下模板的加入。但依旧期望它把class的继承发生改成多继承。
mql5的语法没有多继承,我认为这是mql5的最大败笔。报告类型比mql4丰富了一部分,普通函数比mql4多了一倍,相同的名称没有更改。最重要的数组没有任何更改,函数差不多和mql4雷同。
mql5有16个库文件。有几个特别重要策略模块,交易,指标。数学。标准库(数学统计)用于处理几率理论各种分布的函数(基1本上是把R的函数重载了,速度时r的3-7倍)。(模糊理论)实行Mamdani和Sugeno模糊推理系统的程序库。ALGLIB 报告分析(集群,决策树,线性回归,神经网络),处理微分方程式,傅里叶变换,数值积分,优化困难,统计分析等等。
谈下ea,我当下也不清楚为何迈达克要把它起名叫Expert Advisor,叫Expert System不更好吗?
mql5的ea构成部分。
1.知识库(mql5传统的ea是造成式规则,神经网络ea是权值矩阵)
2.报告存储方式(mql5是用面对对象方式)
3.推理机制(一般是ea是规则的与或确定性推理,模糊逻辑是模糊运算,神经网络是矩阵相乘)
4.知识获取方式(你可以用主观的规则,也可以用机器学习的知识(mql5的帮助文档里大多是用R机器学习))
mql5里边的神经网络应用(可以把报告送到( NeuroPro,NeuroSolutions)神经网络里运算,也可过通讯接口(Excel,sqlserver,matlab,delphi),最流行的方式是用r和python学习,再用c++写。
同步操作平均时间(9.59 毫秒),异步操作平均时间 (0.09 毫秒)市场深度更新速度(42.7 次每秒)
mql5的内存占用空间一个ea大约40兆,假使你的ea是多周期,多目标(行情追踪,基本分析分析,季节性行情,差价法,套利,波动),跨市场(股,期,债,汇)的,空间复杂度也会暴发上涨。
mql5里边有很多通用ea方法和ea向导,大家可以一步一步按着那些例题写ea。mql5的通用交易系统思想是从CExpertSignal类造成交易信号入场。从CExpertTrailing造成追踪出场。用CExpertMoney类执行资金管理。
我的系统交易思想是建立一个报告类管理报告。从CexpertSignal抽取报告造成信号。一个Ctrade类的派生类综合(COrderInfo,CDealInfo,CPositionInfo),然后用CexpertMoney类。中间的子模块依据团队的能力增长和降低。
10年的相知,从参与mql5 ea比赛,到搜索mql5的有关资料我从mql5学到了很多思维,系统、人工智能、管理方面的知识。很期望将来能与这个老朋友合作愉快。
本文作者:www,资深外汇交易者
外汇心理学专家,mql研究专家