本文记录了使用easytrader实现程序化交易的过程。
easytrader实盘支持的券商包括:
- 海通客户端(海通网上交易系统独立委托)
- 华泰客户端(网上交易系统(专业版Ⅱ))
- 国金客户端(全能行证券交易终端PC版)
- 其他券商通用同花顺客户端(需要手动登陆)
本文以海通客户端为例进行介绍。
- easytrader安装
pip install easytrader
-
下载安装e海通财PC独立交易版
-
启动客户端
import easytrader
user = easytrader.use('htzq_client') # 海通客户端
user.prepare(user='498XXXXXXX', password='XXXXXX', comm_password='XXXXXX',
exe_path='C:\\e海通财独立交易\\AlternateTradeSys5.18.73\\xiadan.exe')
第1行引入easytrader,第2行设置使用的客户端,第3、4行启动登陆客户端,参数user为证券账号,password与comm_password分别为交易密码和通讯密码,一般为一样的,exe_path为海通客户端xiadan.exe所在完整路径名称。
此时运行程序,就会依次出现下面的界面,完成自动登陆。
4. 相关方法
- 获取资金情况
print(user.balance)
'''
{'资金余额': XXXX, '可用金额': XXXX, '可取金额': XXXX, '总资产': XXXX}
'''
- 获取持仓
print(user.position)
'''
[{'证券代码': 'XXXX', '证券名称': 'XXXX', '股票余额': XXXX, '可用余额': XXXX, '冻结数量': 0, '盈亏': XXXX, '成本价': XXXX, '盈亏比例(%)': XXXX, '市价': XXXX, '市值': XXXX, '交易市场': '上海A股', '股东帐户': 'XXXX', '汇率': 1.0, '成本价港币': XXXX, '买入成本价港币': XXXX, '买入在途数量': 0, '卖出在途数量': 0, 'Unnamed: 17': ''}, {'证券代码': 'XXXX', '证券名称': 'XXXX', '股票余额': XXXX, '可用余额':
XXXX, '冻结数量': 0, '盈亏': XXXX, '成本价': XXXX, '盈亏比例(%)': XXXX, '市价': XXXX, '市值': XXXX, '交易市场': '深圳A股', '股东帐户': 'XXXX', '汇率': 1.0, '成本价港币': XXXX, '买入成本价港币': XXXX, '买入在途数量': 0, '卖出在途数量': 0, 'Unnamed: 17': ''}]
'''
- 买入
ret = user.buy('300002', price=XXXX, amount=100)
print(ret)
'''
{'entrust_no': 'XXX'}
'''
- 卖出
ret = user.sell('300002', price=XXXX, amount=100)
print(ret)
'''
{'entrust_no': 'XXX'}
'''
- 一键打新
user.auto_ipo()
- 撤单
ret = user.cancel_entrust(ret['entrust_no']) # 参数为buy/sell 获取的 entrust_no
print(ret)
'''
{'message': '您的撤单委托已成功提交,合同编号:XXX。'}
'''
- 查询当日成交
print(user.today_trades)
'''
[{'买卖标志': '买入',
'交易市场': '深A',
'委托序号': '12345',
'成交价格': 0.626,
'成交数量': 100,
'成交日期': '20170313',
'成交时间': '09:50:30',
'成交金额': 62.60,
'股东代码': 'xxx',
'证券代码': 'XXXX',
'证券名称': 'XXXX'}]
'''
- 查询当日委托
print(user.today_entrusts)
'''
[{'买卖标志': '买入',
'交易市场': '深A',
'委托价格': 0.627,
'委托序号': '111111',
'委托数量': 100,
'委托日期': '20170313',
'委托时间': '09:50:30',
'成交数量': 100,
'撤单数量': 0,
'状态说明': '已成',
'股东代码': 'xxxxx',
'证券代码': 'XXXX',
'证券名称': 'XXXX'},
{'买卖标志': '买入',
'交易市场': '深A',
'委托价格': 0.6,
'委托序号': '1111',
'委托数量': 100,
'委托日期': '20170313',
'委托时间': '09:40:30',
'成交数量': 0,
'撤单数量': 100,
'状态说明': '已撤',
'股东代码': 'xxx',
'证券代码': 'XXXX',
'证券名称': 'XXXX'}]
'''
下篇文章将记录使用easyquotation获取实时数据,进行程序化交易的过程。
博客内容只用于交流学习,不构成投资建议,盈亏自负!
个人博客:http://coderx.com.cn/(优先更新)
项目最新代码:https://gitee.com/sl/quant_from_scratch
欢迎大家转发、留言。有微信群用于学习交流,感兴趣的读者请扫码加微信!
如果认为博客对您有帮助,可以扫码进行捐赠,感谢!
微信二维码 | 微信捐赠二维码 |
---|---|
![]() | ![]() |