程序化交易(二):整合 web 接口

又失业了,空闲的时间整理了一下上次程序化交易初探的内容,写了一个现成的 easytrader 来处理佣金宝的交易,实现了一些基本功能。
后续有机会的话可能会扩展其他券商。
源代码GitHub地址

支持券商

* 佣金宝

需求

基于 Python3.4+

登录

实现还是用了 token,即以前提到的JSESSIONID,需要先手动登录获取 token
后台开了一个进程每30秒发送一次心跳维持token的有效性

用法

引入:

from easytrader import YJBTrader

设置账户:

user = YJBTrader()
user.token = 'ABC...CBA'

如何获取 token

获取资金状况:

user.balance
return
[{ 'asset_balance': '资产总值',
'current_balance': '当前余额',
'enable_balance': '可用金额',
'market_value': '证券市值',
'money_type': '币种',
'pre_interest': '预计利息'}]

获取持仓:

user.position
return
[{'cost_price': '摊薄成本价',
'current_amount': '当前数量',
'enable_amount': '可卖数量',
'income_balance': '摊薄浮动盈亏',
'keep_cost_price': '保本价',
'last_price': '最新价',
'market_value': '证券市值',
'position_str': '定位串',
'stock_code': '证券代码',
'stock_name': '证券名称'}]

获取今日委托单

user.entrust
return
[{'business_amount': '成交数量',
'business_price': '成交价格',
'entrust_amount': '委托数量',
'entrust_bs': '买卖方向',
'entrust_no': '委托编号',
'entrust_price': '委托价格',
'entrust_status': '委托状态',  # 废单 / 已报
'report_time': '申报时间',
'stock_code': '证券代码',
'stock_name': '证券名称'}]

买入:

user.buy('162411', price=0.55, amount=100)
return
[{'entrust_no': '委托编号',
'init_date': '发生日期',
'batch_no': '委托批号',
'report_no': '申报号',
'seat_no': '席位编号',
'entrust_time': '委托时间',
'entrust_price': '委托价格',
'entrust_amount': '委托数量',
'stock_code': '证券代码',
'entrust_bs': '买卖方向',
'entrust_type': '委托类别',
'entrust_status': '委托状态',
'fund_account': '资金帐号',
'error_no': '错误号',
'error_info': '错误原因'}]
```

卖出:

user.sell('162411', price=0.55, amount=100)

掉线:

如果掉线了,请求会返回
{'error_info': '登陆已经超时,请重新登陆!', 'error_no': '-1'}
这时只需要重新设置token就可以了
user.token='valid token'

结尾

这次的 easytrader 只是封装了以前发现的 API 接口,并没有经过严格的测试,大家有兴趣的可以加群 429011814
如果你觉得我的文章不错的话,(≧﹏ ≦)

发表时间 2015-12-07 15:44

赞同来自: jiangdaya wldcj

0

popomjc - 心迷法华转,心悟转法华

赞同来自:

谢谢,努力学习中
2015-12-07 15:48 0 条评论
0

haydengao - 指数增强 轮动党一切均可轮起来

赞同来自:

求整合银河证券,这货老掉线
2015-12-07 16:00 0 条评论
1

oodn_nboo

赞同来自: zkguest

请教下 哪里能找到您之前说的手机的api??
2015-12-07 16:24 0 条评论

该问题目前已经被锁定, 无法添加新回复