欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > [QMT量化交易小白入门]-四、如何筛选优质可转债,并进行下单操作

[QMT量化交易小白入门]-四、如何筛选优质可转债,并进行下单操作

2024/11/30 3:21:48 来源:https://blog.csdn.net/luansj/article/details/143996131  浏览:    关键词:[QMT量化交易小白入门]-四、如何筛选优质可转债,并进行下单操作

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。
QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

文章目录

      • 相关阅读
      • 一、数据准备与预处理
      • 二、数据处理与排序
      • 三、行情数据获取与下单操作
      • 四、总结与建议

相关阅读

小白也能做量化:零门槛QMT、Ptrade免费送
量化交易入门:如何在QMT中配置Python环境,安装第三方依赖包
量化交易策略:多因子选股结合布林带择时


本文将通过Python代码演示如何筛选优质可转债,并进行下单操作,希望能为广大投资者提供一些有价值的参考。

一、数据准备与预处理

需要获取可转债的基本信息数据。这些数据通常包括转债名称、现价、涨跌幅、正股代码、正股名称、正股价、正股涨跌、正股PB、转股价、转股价值、转股溢价率、债券评级、回售触发价、强赎触发价、转债占比、到期时间、剩余年限、剩余规模等。

假设已经下载了最新的可转债数据文件bond_202407.csv,接下来将使用Pandas库来读取和处理这些数据。

import pandas as pd
from datetime import datetime# 读取CSV文件
df = pd.read_csv("./bond_{}.csv".format(datetime.now().strftime('%Y%m')), converters={'正股代码': str, '代码': str})
# df = pd.read_csv("./bond_202407.csv", converters={'正股代码': str, '代码': str})# 填充空值数据
df.fillna(0, inplace=True)# 过滤条件:正股价大于5元,排除ST股、Z股、*股、R股,现价大于50元,剩余年限大于0.1年
df = df[df['正股价'] > 5]
df = df[~df['正股代码'].str.startswith(('ST', 'Z', '*', 'R'))]
df = df[df['现价'] > 50]
df = df[df['剩余年限'] > 0.1]

二、数据处理与排序

在筛选出符合条件的可转债后,还需要对数据进行处理,以便后续的分析和下单操作。例如,给上海正股代码加上“.SH”后缀,生成完整的转债代码,并根据转股溢价率进行排序。

# 给上海正股代码加上“.SH”后缀
def sh(code):if code.startswith('6'):return code + '.SH'elif code.startswith('0') or code.startswith('3'):return code + '.SZ'else:return codedf["正股代码"] = df["正股代码"].apply(sh)
stock_list = df["正股代码"].tolist()# 生成完整的转债代码
def concatenate_code(row):return row['代码'] + '.XSHG' if row['代码'].startswith('1') else row['代码'] + '.XSHE'df['代码'] = df.apply(concatenate_code, axis=1)
bond_list = df["代码"].tolist()# 按转股溢价率升序排序
df = df.sort_values(by='转股溢价率', ascending=True)
print(df)# 保存处理后的数据到CSV文件
df.to_csv("./bond_info.csv")

三、行情数据获取与下单操作

在完成数据筛选和处理后,可以利用相关API获取可转债的行情数据,并根据策略进行下单操作。这里以模拟下单为例,展示如何使用Python代码进行下单操作。

from common import order
import xtdata# 定义需要获取的字段列表
field_list = ['time', 'open', 'high', 'low', 'close', 'volume', 'amount']# 下载历史行情数据
xtdata.download_history_data2(stock_list=stock_list, period='1d', start_time="20240620")
stock_data = xtdata.get_market_data(field_list=field_list, stock_list=stock_list, period='1d', count=10, dividend_type='none', fill_data=True)
quote_df1 = pd.DataFrame(columns=field_list)
print(stock_data)# 模拟下单操作
for bond_code in bond_list[:3]:  # 仅示例前三个可转债print("买入{}元的{}".format(2000, bond_code))order.buy_bond(bond_code, 2)  # 假设每次买入2张可转债

四、总结与建议

通过上述步骤,成功地使用Python代码完成了可转债的筛选、数据处理和下单操作。当然,这只是一个基础的示例,实际投资中还需要考虑更多因素,如市场环境、资金管理、风险控制等。希望本文能为各位投资者提供一些有价值的参考,助力大家在投资道路上走得更远。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com