本文章只说技术
本文章为原创文章,禁止转载。该文章只是技术交流,由此带来的任何问题与文章作者无关,如有疑问联系QQ3400262870。
思路:
MT4是由迈达克研发的一款交易软件,该软件可以对接很多种交易数据,今天我们聊聊如何将数据商的数据对接到系统。
这个数据源其实跟插件很相似,只是文件名后缀不一样。根本也是HOOK相关函数来达到目的。
数据源的来源可以有几种方式:
1.可以用插件,写一个DLL插件,通过插件来给交易系统提供数据源。(可以采用)
2.通过服务端可以设置的插件来提供数据源。(重点)
3.通过ManagerApi提供数据源。(不用)
4.DDE数据(可用,官方也提供了一个工具,测试发现会丢数据,如果有需要可以自己写一个DDE来中转数据,最终将数据中转到 数据源插件就好,自己写的DDE效果会更好,有时间可以写个DDE的博客。)
服务端:
官方针对数据源插件的描述。
其实这个数据源的核心很简单,由于数据的传输速度要求很高,一秒钟可能几个报价数据传输,如果采用传统的http的方式是不能达到要求的,所以这里建议采用Socket 或者 WebSocket都可以。 该插件相当于一个数据接收的客户端,只需要实现相应的接口进行数据书写即可。
数据来源:
数据源的来源有很多,国内国外也有专门的这种数据提供商。例如 微盛,Lmax,等等。由于每家数据公司提供数据的方式不一样,有的可能是JSON,有的是XML,有的是Fix,当然也有DDE,所以呢我们有了自己的数据源插件后还要给数据源插件提供一个数据中转的服务,简单说就是 MT4插件连接到自己的数据服务器,自己的数据服务器来对接各种数据厂商提供的数据。
数据服务器:
数据服务器相对简单,看你擅长什么语言了,本人用JAVA ServerSocket 做一个数据中转服务器。这样就形成了
MT4(C++数据源插件)==> JAVA ServerSocket 数据源中转服务器 ==>对接各种厂商数据源
结束语:
MT4 的 DATA FEED不仅仅可以传输数据,还可以传输新闻(News)。方法呢类似,可以对接jin10数据,华尔街数据等等。
贴一张新闻的图片。