迅投QMT实时调用集思录数据 自动交易教程
在QMT自带的文档里面,实在找不到任何的溢价率的数据,连转股价也没有,只有光秃秃的一个价格。所以在可转债多因子量化交易里面实在无法进行下去。
不过好在QMT支持第三方库,并且也可以连通外部数据,不像Ptrade那样封闭(Ptrade里面os这个内置库都被阉割了,更别说访问外部数据),所以笔者就写了一个实时访问集思录数据的接口,供QMT访问。
使用flask做接口是最简单,可是flask性能非常低下,故使用异步框架uvicorn +asgi。
返回了383个转债数据,只要集思录上有的,都可以获取到QMT里面。
在QMT里面的调用函数就8行:
其主要核心是之前的文章里面登录并获取集思录数据。然后套一个web接口调用即可。
而这里也把之前集思录密码加密部分改为自己使用AES加密,省去了JS执行的流程,简化了运行流程,提升了效率。
每次请求大约需要0.8~0.9秒左右。
运行方式:
先把依赖安装好, pip install -r requirements.txt
然后 python app.py
就在后台运行了,不要关闭。
然后用浏览器打开 http://127.0.0.1:8080 如果有数据就说明成功了。
QMT部分的代码:
调用上面本地的接口就可以获取数据了。
PS:提升速度TIP
第一次运行的时候 cache=False
会保存你的用户名密码加密数据,然后后续可以关闭上面的python程序,把上面代码的cache=False改为cache=True, 重新运行,这样速度会得到提升。因为不用每次都做AES计算了,因为每次对用户名密码做AES运算的结果第一次已经保存下来。
更多QMT教程,可以关注公众号与知识星球
不过好在QMT支持第三方库,并且也可以连通外部数据,不像Ptrade那样封闭(Ptrade里面os这个内置库都被阉割了,更别说访问外部数据),所以笔者就写了一个实时访问集思录数据的接口,供QMT访问。
使用flask做接口是最简单,可是flask性能非常低下,故使用异步框架uvicorn +asgi。
返回了383个转债数据,只要集思录上有的,都可以获取到QMT里面。
在QMT里面的调用函数就8行:
其主要核心是之前的文章里面登录并获取集思录数据。然后套一个web接口调用即可。
而这里也把之前集思录密码加密部分改为自己使用AES加密,省去了JS执行的流程,简化了运行流程,提升了效率。
每次请求大约需要0.8~0.9秒左右。
运行方式:
先把依赖安装好, pip install -r requirements.txt
然后 python app.py
就在后台运行了,不要关闭。
然后用浏览器打开 http://127.0.0.1:8080 如果有数据就说明成功了。
QMT部分的代码:
def get_jisilu_data():
try:
r = requests.get('http://127.0.0.1:8080/jisilu')
except Exception as e:
print(e)
return []
else:
return r.json()
调用上面本地的接口就可以获取数据了。
PS:提升速度TIP
第一次运行的时候 cache=False
会保存你的用户名密码加密数据,然后后续可以关闭上面的python程序,把上面代码的cache=False改为cache=True, 重新运行,这样速度会得到提升。因为不用每次都做AES计算了,因为每次对用户名密码做AES运算的结果第一次已经保存下来。
更多QMT教程,可以关注公众号与知识星球