量化入门:qmt获取可转债基本信息和行情数据

738 阅读2分钟

💻专业版获取可转债数据

今天将展示如何使用Python和QMT来获取可转债的实时数据和财务数据。

🔬 获取可转债基本信息

迅投的券商版和基础版都不支持可转债行情,投研专业版才支持,一年大概5000元。免费的券商版可参考QMT量化入门 投研专业版才有权限调用download_cb_data()方法:

# coding:gbk
# @author      : 木头左
# @date        : 2024/06/03 22:18:26
# @description : 
from xtquant import xtdata
import random
bond_code = ''
# 下载转债信息
xtdata.download_cb_data()
# 获取转债信息
res= xtdata.get_cb_info(bond_code)
print(res)

如果无权限,则会报错RuntimeError:

📊 下载可转债基本信息

如果没开通投研专业版,也没关系,可以从集思录下载。需要安装akshare,并登录集思录。f12后可以看到自己的cookie。

# 安装QMT库
# pip install akshare
 import akshare as ak 
    bond_df = ak.bond_cb_jsl(cookie="") 
    bond_df.to_csv('可转债20240601.csv', index=False, encoding='utf-8-sig')  

这里需要下载akracer-0.0.13 akshare-1.13.96 html5lib-1.1 jsonpath-0.82.2 py-mini-racer-0.6.0 xlrd-2.0.1等,大概几十M,可能出错: 可以指定阿里或清华的源:

pip install akshare --index-url https://mirrors.aliyun.com/pypi/simple/

可以看到已经下载的csv: 注意这里的cookie,如果未登录只能获取到30条,目前正常应该是有500多支可转债。

📊 获取可转债行情数据

虽然券商版本没开放可转债信息查询接口,但是行情数据仍然是开放的。

    xtdata.download_history_data2(stock_list=[bond_code], period='1d',start_time="20240601")
    res = xtdata.get_market_data(field_list=['time','open','high','low','close','volume','amount'],
                                    stock_list=[bond_code],period='1d',count=10,dividend_type='none', fill_data=True)
    quote_df1=pd.DataFrame(columns=['time','open','high','low','close','volume','amount'])
    print(res)

调用download_history_data2函数下载历史数据:

  • stock_list=[bond_code]:指定要下载数据的列表,这里只包含一个元素,即bond_codebond_code代表可转债的代码。

  • period='1d':指定数据的时间周期,这里是'1d',表示日数据。

  • start_time="20240601":指定下载数据的起始时间,格式为'YYYYMMDD',这里指定的是2024年6月1日。 调用get_market_data函数,获取市场数据:

  • field_list=['time','open','high','low','close','volume','amount']:指定要获取的市场数据字段列表,包括时间、开盘价、最高价、最低价、收盘价、成交量和成交金额。

  • stock_list=[bond_code]:与第一行代码相同,指定要获取数据的债券代码。

  • period='1d':同样指定数据的时间周期为日数据。

  • count=10:指定要获取的数据条数,这里是10条。

  • dividend_type='none':指定股息处理方式,'none'表示不考虑股息调整。

  • fill_data=True:指定是否填充缺失的数据,True表示会尝试填充。 结果如下:

如果这篇文章能够对您量化之路有所帮助,希望您点赞、分享和关注哦!👍🔄👀