记一次打造自动交易接口的尝试

   学习量化那么久,都是在学如何开发策略,但在自动交易接口这块一直没有深入的接触,没有真正的感受到自动交易的乐子,导致了策略学习缺乏动力,上周末决定跨过自动交易这道坎,从网上学习得知,股票自动交易接口有几种实现方式:1、用按键精灵之类的软件,直接pass,2、用pywinauto或easytrader等python模块来操纵交易软件自动交易,这个易于实现,但掣肘太多,我平时用的是linux系统,到时候挂机的系统也想用Linux系统的(现在还不清楚这两个模块能不能在Linux下操作exe程序,交易软件有对系统的检测),这个选项备用,3、用第三方支持量化的软件,但安全性有待考评,4、直接问券商要接口,但人家说没有,也不合规,5、直接模仿交易软件的数据包跟服务器对接,这样子可以不受系统限制,交易也灵活,稳定性应该也更好。最终决定选择该方案。
   开始分析交易软件,发现xiadan.exe可单独运行(可查询和下单),还有个xiadan.ini配置文件,该配置文件里面有连接服务器的Ip地址,安装wireshark,把ip.src和ip.dst都设为服务器ip地址,抓取数据包发现用的都是TCP协议,没有http协议,而且三次握手后发送的数据是加密的,服务器返回的数据也是加密的,再看同一文件夹内有rsa_public_key.der公钥文件,我想是不是自己生成一对密钥(用openssl,原密钥是1kb的,生成的密钥也是1kb的。),然后把自己生成的公钥替换掉原有公钥,再用生成的私钥解密该软件发送的数据包就可以看到数据了(交换的密钥),但然并卵,最后我把这个rsa_public_key.der文件删除了,xiadan.exe仍然可以正常运行,敢情他就没用到这个文件。
   应该也没有那么简单,我把xiadan.exe这个程序单独拿出来放到另一个文件夹里运行,按系统提示缺哪个模块就复制哪个模块,总共用到lua5.1.dll、htmlayout.dll、sqlite30.dll、hssl.dll、hcrypt.dll、hcoord.dll、htoken.dll这几个库,虽然能运行不报错,但显示不出验证码,说明还没能正常连接到服务器,至少还依赖于其他库,但先不管那么多,先用ildasm来反编译hssl.dll看看先,结果提示没有有效的CLR头,无法反编译,看来又是一个坑,用exescope查看了一下,里面确实挺多密钥相关的函数,但该软件反编译不出来。本来对编译和反编译就不了解,到这里被挡住了。
    暂时没有时间和精力研究这一块了,现在最重要的是先把整个量化模块写出来,自动交易接口就先用pywinauto对付着吧,等以后有时间了再回头学习研究,先记下来以后有迹可循,对这方面有研究的伙伴也请指点一二。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容