概在半个多月前,一个朋友联系我,让我帮忙实现一个程序自动下单交易的功能。按照以往对待用户的习惯,很愉快的就答应了,也抽时间研究了一下,起初并没有太多精力和时间去开发,直到迎来了祖国妈妈的生日,本来也不太想出去给国家添堵,正好成全了写代码之美。
利用国庆假期的头几天,很顺利地完成了开发和测试并集成到了tushare里。现在,给大家汇报一下成果,首先展示在tushare中如何使用实盘交易接口。
如何在tushare中完成股票实盘交易
大家通过tushare获取数据已经非常熟悉了,那么又怎么使用实盘交易功能的接口呢?其实也非常的简单,且看几个关键接口的使用方法:1、跟取数据一样,先要导入tushare包2、设置券商和账户信息(目前只支持中信建投,后续陆续支持其他券商,有兴趣的朋友可以提交代码)新增和修改账户都用set_broker这个方法,同一个券商目前只支持一个账号。如果要删除帐户信息,请使用remove_broker()函数。3、查看已经设置好的券商和账号信息由于tushare是纯开源项目,程序运行在本地,所以可以放心账户的安全性问题。4、初始化交易接口及登录在初始化交易接口TradeAPI对象的时候,需要设置券商代号,比如“zxjt”代表“中信建投”,'htzq'代表“华泰证券”,用于确定使用哪个券商通道。5、获取账户基础数据
(以下由于用了朋友的实盘账户,显示出来的数据做了处理,敬请见谅。)这里返回的数据是Series对象,单一数据的获取采用类似json的方法,比如要获取账户可用余额,可使用baseinfo['fundavl'] ,证券总市值可用baseinfo['marketvalue']。6、获取持仓列表7、买卖股票股票(证券)买卖可以从股份或者金额两位维度操作,具体请参考以上代码注释部分。拆单等算法交易目前需要自己写代码实现,以后有时间了会考虑作为一个独立的模块加进来。8、获取委托单列表通过获取委托单列表的数据,才能进行撤单操作,部分数据会作为参数传递给撤单函数。9、撤单多个证券撤单的时候,ordersno和orderdate都是以逗号分隔,这两个参数的数据来自委托单接口。10、查看成交列表11、实时行情监控只有监控股票实时的量价变动情况,才可能触发下单操作,所以别忘了tushare的实时数据接口,这里再提示一下。
ts.get_realtime_quotes('000581')多个股票请用数组或者pandas的数据结构:#数组ts.get_realtime_quotes(['600848','000980','000981'])#pandasts.get_realtime_quotes(df['code'].tail(10))还有指数的实时数据:#上证指数
ts.get_realtime_quotes('sh')
#上证指数 深圳成指 沪深300指数 上证50 中小板 创业板
ts.get_realtime_quotes(['sh','sz','hs300','sz50','zxb','cyb'])
#混搭
ts.get_realtime_quotes(['sh','600848'])实时数据的内容为Level1行情:0:name,股票名称
1:open,今日开盘价
2:pre_close,昨日收盘价
3:price,当前价格
4:high,今日最高价
5:low,今日最低价
6:bid,竞买价,即“买一”报价
7:ask,竞卖价,即“卖一”报价
8:volume,成交量
9:amount,成交金额(元 CNY)
10:b1_v,委买一(笔数 )
11:b1_p,委买一(价格 )
12:b2_v,“买二”
13:b2_p,“买二”
14:b3_v,“买三”
15:b3_p,“买三”
16:b4_v,“买四”
17:b4_p,“买四”
18:b5_v,“买五”
19:b5_p,“买五”
20:a1_v,委卖一(笔数)
21:a1_p,委卖一(价格)
...
30:date,日期;
31:time,时间;
更多的内容,请访问tushare的官网:
关于实盘交易各类接口的输入输出参数详细注释,请在函数后面加问号查看,比如查看持仓列表的返回值含义注释,可使用 csc.position? ,效果如下:
看完了实盘接口的使用过程,是不是觉得依然很简单?从数据的获取到下单操作,在tushare里无缝的结合在了一起。下面看看是怎么实现这些接口的。