FXCG中文官网为全球投资者在金融市场的提供交易服务!

MT4行情交易API接口开发手记

MT4教程 2022-01-29 02:11146未知admin

  MT4行情交易API接口开发手记之前拓荒的外汇量化营业体例,行情和营业接口都是通过正在MT4平台下编写EA来告竣,的确手腕是:

  1、用C++编写一个动态库文献,正在内部告竣行情和营业数据挪用接口,将报价数据和K线数据写入数据库中,并从数据库中获取外汇量化体例发出的营业指令。

  2、正在MT4中编写EA文献,正在MT4上不间断运转,从MT4平台及时获取报价和K线数据,并挪用动态库写入数据库中,于此同时,不停从数据库中获取营业指令,再挪用MT4的营业指令杀青营业。

  采用此种手腕的好处即是兼容性强,只须翻开MT4软件运转EA,就可能杀青行情和营业接口的获取,也不消管是哪个外汇平台,尽管MT4软件升级了也能赓续用。偏差即是务必翻开一个MT4软件特意获取行情和报价数据,同时每个营业的账户也必定要运转一个MT4软件,好比有10个外汇账户,就务必运转10个MT4软件。营业账户不众的话,运转速率和各方面庞标也尚可接收,周末都不消重启或紧闭,基础上告竣7X24小时不间断运转。

  一晃本身的量化体例就运转了几年了,中央也不停举办各式优化,但跟着营业账户的不停增进,对软硬件的检验就越来越高了,一台浅显的任职器,同时运转10众个账户就感应有点费劲了,到底MT4自己即是一个大型的行情和营业软件,要占用不少软硬件资源,还要加上数据库任职器,现正在感应3、4台任职器都不敷用了,汇集带宽也入手紧张,依然到了非改弗成的时间了。

  对付MT4行情和营业的API接口,本身平昔都有耳闻,传闻这种API接口,可能直接维系MT4行情和营业任职器,况且可能不消管是哪家外汇平台,只须该平台增援MT4软件即可操纵。现正在市道上许众跟单体例和跟单平台,即是通过该API接口来告竣跟单任职的,但感应这种API接口该当不是MT4软件拓荒商推出的,属于第三方软件,乃至有恐怕即是通过对MT4软件举办逆向明白提取出来的东西,一朝MT4软件升级了,就有恐怕导致API接口失效。记得以前网上就有通晓信的行情和营业接口,可能获取邦内A股行情并告竣营业,本身当时还付费买了一套回来并操纵了一段时光,传闻也是逆向明白通晓信体例得来的,但用了一段时光后,跟着通晓信软件和券商后台体例的升级,就无法操纵了。

  昨年初的时间,本身就获取了一套MT4行情和营业接口及相干挪用原料,但平昔未去深刻研讨,由于该接口就仅仅是一个DLL文献,须要正在Window 的平台下用C#拓荒和挪用,本身对C#并不熟练,这种托管DLL用其它的拓荒说话也欠好挪用,最紧要是当时的重心和元气心灵都放正在量化体例和缠论计谋的拓荒和优化上,对这种无足轻重非要弗成的东西实正在无暇统筹。但念着从此跟着账户的不停增进,这种API挪用接口断定要用到,到底同时翻开几十个MT4软件来告竣营业接口太费资源了!本身也曾念到花点钱请别人拓荒,但念着要和本身的量化体例深度调和正在沿道,疏导和拓荒起来也挺费事,再加上本身自己即是圭外员身世,仍是适宜的时间本身拓荒吧!从那时起,闲暇时光本身翻看一下C#的编程书本,领悟一下C#的说话和用法,先为从此的操纵打点基本。

  上周,将本身几个要杀青的拓荒就业按紧急性和垂危性陈设出来各式比力后,结果决策将MT4API接口的拓荒提上日程了,说干就干,正在电脑上安置好VS2019后,这个礼拜就忙着搞拓荒了。扫数接口的需乞降流程原来本身依然很是了然,独一亏欠的地方是对VS2019和C#还不熟练,但拓荒说话都是相通的,不懂不会的地方就查查书,或者百度及CSDN上探求一下就好了。

  花了两天时光,杀青了大致的软件界面,并告竣了行情和营业接口的单纯挪用,告成返回了念要的各项数据,拓荒就业挺顺手,各项功用正缓缓告竣。本身是用实正在的营业账户来测试的,念着如许频仍的测试,不停登录和退出,途中还会有不少失足和造孽挪用,会不会惹起外汇平台的警备,若是把本身的账户封禁掉,那可就费事大了,于是立时申请了个模仿账户来测试,结果悲剧了,接口居然无法登录了,返回Old Version,看来平台的模仿账户后台任职器依然升级了,不再增援这个接口,而实正在账户的后台任职器,恐怕探讨到兼容性的原故,还没有举办更新,或者还兼容这个接口版本,于是还能操纵。记得昨年底有一段时光,传说许众跟单体例或跟单平台都无法操纵了,就由于MT4软件商强制升级了一次,有的MT4后台任职器依然不再增援这个接口了。念着如许下去也不是想法,于是又入手念想法去找这个接口的最新版本,皇天不负有心人,仅半天时光就找到了一个新的API接口版本,可是这个接口有一点点控制。正在这里不得不鄙夷一下C#,像C#,JAVA这种拓荒说话拓荒出来的托管代码,真的很容易被反编译,实在就和真正的源码看起来没有什么不同,于是很速就被我把控制消弭了。

  正好这两个礼拜新冠疫情紧张,有的小区还被封了,羽毛球馆也不让打球了,于是扫数礼拜险些没有出门过,就窝正在家里辛吃力苦搞拓荒了,老骥伏枥,像我这种老圭外员了,念不到拓荒功效还挺高,到了即日周五,就把整套接口杀青了。现正在回念过来,难点上除了自己对C#举办各式熟练外,奈何优化速率和算法也花了不少时光,这里就通过缓冲区来告竣数据的存储和通报,又有各式众线程的运转来告竣了。起初筑造一个行情获取后台线程,通过API接口及时读取行情数据不停放入行情缓冲区中,再筑造一个行情写库后台线程,读取行情缓冲区数据并写入数据库中。每个营业账户也通过筑造特意的后台线个营业账户占用一个孤单的后台线个孤单的后台线程,正在采纳指令也举办了优化,每个营业线程并不直接从数据库中读取本身的营业指令,如许会很是占用数据库资源,而是筑造一个特意的营业指令读取线程,从数据库中读取指令后,再转发到各个营业线软件正在断线断网后,会自愿举办重连,这个很是紧急,本身也特意创筑了一个保护线程监测各个营业账户,若是有账户断线了就自愿重连。创筑了两个模仿账户举办测试,后果真的很是好,速率很是速,毫秒级开单镇静仓,比原先通过MT4的EA来告竣开单镇静仓要速得众了。欢畅之余,下周再优化和测试一下,下个月该当就可能本质布置和运转了,况且这套接口和原先的EA挪用接口是兼容的,两套接口可能随时举办切换,相当于双重保障了。空话不众说,附上软件截图。

  原来新版本接口和旧版本接口正在挪用手腕上依然更改了不少,还好可能从这个网站里获取最新原料助助。

FXCG中文官网 Copyright @ 2011-2018FXCG中文官网 All Rights Reserved. 版权所有 备案号:FXCG中文官网

联系QQ: 邮箱地址: