东方财富网功能挖掘:模拟交易API构建

程序化交易,需要用代码控制买卖交易,而不是手工操作,一是时间操作时间不允许,二是人性贪婪,手工操作缺乏纪律性。赚了还想再多赚点,亏了又想等反弹,诸如此类,经常错失良机,懊恼不已。

最近一直在东方财富网上挖掘数据,发现东方财富网上的特色数据和其他同类型的网站比较起来,还是比较不错的。为此也一直在分析东方财富网各个板块的webAPI,封装成自己能用的api。采集数据,保存数据,分析数据,搞得不亦乐乎。

今天说说投资组合这一块,说白了就是模拟交易,在看了模拟交易规则后,个人觉得很实用,在建立自己的交易策略,回测后,可以在这上面进行实盘模拟。而且还可以设置多个组合,对比各个策略的优劣。


东方财富网功能挖掘:模拟交易API构建_第1张图片
投资组合首页

网站本身的组合详情、历史收益率、操作记录等功能直观,简洁大方,也不需要浪费脑细胞来做数据图表的可视化。总体来说应该是比较省事的(交易规则,收益统计等等别人都帮你做好了,当然省事了……)


东方财富网功能挖掘:模拟交易API构建_第2张图片
历史收益率走势图

要做模拟交易,有几个基本功能要实现。

一、买卖交易(买卖订单)及撤单

二、持仓查询/撤单查询

三、成交查询

四、实时盘口数据查询

这几个基本功能网站都有。用开发者工具跟一跟,还是很好找出对应的网址和参数的。这里还需要一些定制功能,比如:批量买入卖出,扫单买入卖出,清仓卖出等。

这里以持仓查询为例,简单演示网站的 url 和 参数 提取的过程。

推荐使用chrome浏览器,功能强大。

首先打开浏览器的开发者工具(F12),地址栏输入 http://group.eastmoney.com/position.html?p=0 重新加载网页。在XHR中发现 MypositionHandler.ashx 可能是持仓查询的URL,点开查看Preview,可以查看返回的数据的内容。发现正是持仓查询内容。对比网页和返回数据,很容易分析出对应的名称(你别看我说的很轻松,这个查找的过程充满艰辛与无奈,有的网站故意跟你躲猫猫,故意隐藏真实url……,不过熟练就好)

这里再啰嗦下,这个查找的过程需要自己摸索,一般在XHR和JS中查找,实在没辙了,再到Doc中去分析源码。


东方财富网功能挖掘:模拟交易API构建_第3张图片
分析页面

确定是此页无疑后,在点开Headers查看请求头信息和发送参数列表。


东方财富网功能挖掘:模拟交易API构建_第4张图片
请求头和参数

找到后把内容复制出来,在网站api调试工具中测试下,看看是不是能得到正确结果。这里推荐chrome浏览器中的CrapApi扩展程序,可以很方便的修改请求头及参数及发送方式,可以批量导入请求头信息,参数信息,实在是太方便了。经测试发现返回数据和之前一样。


东方财富网功能挖掘:模拟交易API构建_第5张图片
测试返回数据

在Python中使用requests模块就可以实现功能了。

这里贴一段代码。(代码贴出来格式变了,这里用图片来展示)


东方财富网功能挖掘:模拟交易API构建_第6张图片
实现代码

最后再说一下cookie的事。网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据。在请求头和参数页面,我们可以看到cookie是一段加密的数据,包含了用户的信息。在requests中可以直接在header字典中包含,也可以在post/get函数中cookies参数中以字典形式赋值。但是这个cookie是有有效期的,过期了还需重新获取。这里我采用的是读取本地浏览器cookie文件的方式,通过浏览器自动更新的cookie来保证我的程序中的cookie信息不过期。

展示一下最终实现的功能。


东方财富网功能挖掘:模拟交易API构建_第7张图片
功能函数说明

通过这些函数,就可以实现程序化控制,来实现自动模拟买卖交易了。


如果你觉得这篇文章有用,记得点赞。

如果你需要源码(虽然写的很渣),记得打赏一下,数额随意,以表鼓励。

上图中有我的邮箱地址,需要源码可以联系我。

PS:东财网的模拟交易改版了,更新了模拟交易的API,so,原来的API有些不能用了。我也没更新维护这份代码。各位索要源码的朋友敬请谅解。


东方财富网功能挖掘:模拟交易API构建_第8张图片
改版后请求参数变化很大

近日好些网友希望我维护模拟交易代码,由于网站模拟交易改版较大,我尽量抽时间完成web20版的模拟交易API。近期奉上。

忙乎了一晚上,终于把模拟交易API重新维护了一遍。维护日期 2018-03-15 23:48:24

需要的我会重新发一遍到邮箱。

东方财富网功能挖掘:模拟交易API构建_第9张图片
图片发自App

你可能感兴趣的:(东方财富网功能挖掘:模拟交易API构建)