很早之前就知道easytrader这个开源项目,之前误以为这个项目长时间没维护了, 另外固有的想法就是支持同花顺UI模拟操作下单。
最近无意翻到这个项目,发现这个项目远比我之前想象的支持得多。
它本身支持 通用的同花顺客户端模拟操作, 我的固有印象。
它还支持券商的 miniqmt 官方量化接口, 语法还很简单。为啥没早发现呢,自己在之前学习的时候还吭哧吭哧的自己去封装。
miniqmt 功能依赖 xtquant 库,因为这个库比较大(100 MB+),所以需要单独安装
pip install easytrader[miniqmt]
import easytrader
user = easytrader.use('miniqmt')
需要通过 connect 方法连接到 QMT 客户端。
注意:登录 QMT 客户端时必须勾选极简模式/独立交易模式,否则无法连接
user.connect(
miniqmt_path=r"D:\国金证券QMT交易端\userdata_mini", # QMT 客户端下的 miniqmt 安装路径
stock_account="你的资金账号", # 资金账号
trader_callback=None, # 默认使用 `easytrader.miniqmt.DefaultXtQuantTraderCallback`
)
user.balance
# return
# qmt 官网文档 https://dict.thinktrader.net/nativeApi/xttrader.html?id=7zqjlm#%E8%B5%84%E4%BA%A7xtasset
[{
'total_asset': 1000000.0, # 总资产
'market_value': 400000.0, # 持仓市值
'cash': 600000.0, # 可用资金
'frozen_cash': 0.0, # 冻结资金
'account_type': 2, # 账户类型
'account_id': '你的资金账号'# 账户ID
}]
user.position
# return
# qmt 官网文档 https://dict.thinktrader.net/nativeApi/xttrader.html?id=7zqjlm#%E6%8C%81%E4%BB%93xtposition
[{'security': '162411',
'stock_code': '162411.SZ',
'volume': 100,
'can_use_volume': 100,
'open_price': 0.618,
'market_value': 63.8,
'frozen_volume': 0,
'on_road_volume': 0,
'yesterday_volume': 100,
'avg_price': 0.618,
'direction': 48,
'account_type': 2,
'account_id': '1111111111'}]
user.buy('600036', price=35.5, amount=100)
# return
{'entrust_no': 123456}
限价卖出¶
user.sell('600036', price=36.0, amount=100)
# return
{'entrust_no': 123456}
user.market_buy('600036', amount=100, ttype='对手方最优价格委托')
# return
{'entrust_no': 123456}
封装得很优雅, 还是多了解细节,不要以固有思维去理解。
另外项目还支持 聚宽跟单、雪球跟单。 我在最开始投资的时候,发现雪球的股票社区氛围还挺浓的。 当时关注了一些大佬的雪球投资组合, 后面写一个 雪球跟单 同步miniqmt下单的例子。
项目链接地址:https://github.com/shidenggui/easytrader
如果我的分享对你投资有所帮助,不吝啬给个点赞关注呗。 这个号主要分享AI量化技术相关, 当天的灵感相关记录,相对比较杂。