本文主要介绍,如何通过miniQMT自动申购股票和可转债,主页简介或si我分享源代码
我们直接看源代码怎么样购买,我写的是利用直接开发的框架可能和原来的qmt不太一样,原理是获取新股数据在购买,xtquant本来的源代码
def query_new_purchase_limit_async(self, account, callback): """ :param account: 证券账号 :return: 返回账户新股申购额度数据 """ req = XTQC.QueryNewPurchaseLimitReq() req.m_nAccountType = account.account_type req.m_strAccountID = account.account_id seq = self.async_client.nextSeq() return self.common_op_async_with_seq( seq, (self.async_client.queryNewPurchaseLimitWithSeq, seq, req) , callback ) def query_ipo_data(self): """ :return: 返回新股新债信息 """ req = XTQC.QueryIPODataReq() req.m_strIPOType = '' seq = self.async_client.nextSeq() ipo_data_list = self.common_op_sync_with_seq( seq, (self.async_client.queryIPODataWithSeq, seq, req) ) ipo_data_result = dict() for item in ipo_data_list: ipo_data_result[item.m_strIPOCode] = { 'name': item.m_strIPOName, 'type': item.m_strIPOType, 'maxPurchaseNum': item.m_nMaxPurchaseNum, 'minPurchaseNum': item.m_nMinPurchaseNum, 'purchaseDate': item.m_strPurchaseDate, 'issuePrice': item.m_dIssuePrice, } return ipo_data_result def query_ipo_data_async(self, callback): """ :return: 返回新股新债信息 """ req = XTQC.QueryIPODataReq() req.m_strIPOType = '' seq = self.async_client.nextSeq() return self.common_op_async_with_seq( seq, (self.async_client.queryIPODataWithSeq, seq, req) , callback )
我利用直接开发的框架封装的交易代码,使用比较简单
def query_stock_ipo_data(self): ''' 获取股票新可转债ipo数据 dict 新股新债信息数据集 { stock1: info1, stock2: info2, ... } stock - str 品种代码,例如 '301208.SZ' info - dict 新股信息 name - str 品种名称 type - str 品种类型 STOCK - 股票,BOND - 债券 minPurchaseNum / maxPurchaseNum - int 最小 / 最大申购额度 单位为股(股票)/ 张(债券) purchaseDate - str 申购日期 issuePrice - float 发行价 ''' try: data=self.xt_trader.query_ipo_data() df=pd.DataFrame(data).T df['证券代码']=df.index df.columns=['品种名称','品种类型','最大申购额度','最小申购额度','申购日期','发行价','证券代码'] return df except: print('没有数据/处理出现错误') df=pd.DataFrame() df['品种名称']=None df['品种类型']=None df['最小申购额度']=None df['最大申购额度']=None df['申购日期']=None df['发行价']=None df['证券代码']=None return df def get_buy_stock_ipo(self): ''' 可转债新股一起申购 ''' df=self.query_stock_ipo_data() for trader_type,name,stock,amount,price in zip(df['品种类型'],df['品种名称'],df['证券代码'],df['最大申购额度'],df['发行价']): self.buy(security=stock,amount=amount,price=price) print('新股/可转债申购 交易类型{} 名称{} 代码{} 数量{} 价格{}'.format(trader_type,name,stock,amount,price))
出现外部框架测试,我们随便建立一个数据测试文件
运行的效果
下单的结果
测试的源代码
from xgtrader.unification_data_ths import unification_data_thsfrom qmt_trader.unification_data_qmt import unification_data_qmtfrom xgtrader.stock_data_ths import stock_data_thsfrom qmt_trader.stock_data_qmt import stock_data_qmtfrom xgtrader.etf_fund_data_ths import etf_fund_data_thsfrom qmt_trader.etf_fund_data_qmt import etf_fund_data_qmtfrom qmt_trader.bond_cov_data_qmt import bond_cov_data_qmtfrom xgtrader.bond_cov_data_ths import bond_cov_data_thsfrom xgtrader.tdx_data import tdx_datafrom trader_models.bond_cov_rend_strategy.bond_cov_rend_strategy import bond_cov_rend_strategyfrom trader_tool.unification_data import unification_datafrom trader_models.bond_cov_rend_strategy.bond_cov_rend_strategy import bond_cov_rend_strategyfrom trader_models.etf_trend_strategy.etf_trend_strategy import etf_trend_strategyfrom xgtrader.xgtrader import xgtraderfrom trader_tool.tdx_data import tdx_datafrom trader_tool.analysis_models import analysis_modelsfrom trader_tool.unification_data import unification_dataimport statsmodels.api as smfrom trader_models.micro_stock_cap_trend_trading.micro_stock_cap_trend_trading import micro_stock_cap_trend_tradingfrom trader_tool.unification_data import unification_datafrom trader_tool.ths_rq import ths_rqfrom trader_models.micro_stock_cap_trend_trading.micro_stock_cap_trend_trading import micro_stock_cap_trend_tradingfrom qmt_trader.qmt_trader_ths import qmt_trader_thsfrom qmt_trader.qmt_data import qmt_data#导入交易框架from qmt_trader.qmt_trader_ths import qmt_trader_thsmodels=qmt_trader_ths()#连接qmtmodels.connect()#获取iop数据df=models.query_stock_ipo_data()print(df)#买入iopmodels.get_buy_stock_ipo()
封装在实盘交易模块的模块设置
"是否自动申购新股可转债":"是", "自动申购新股可转债时间":"14:20", "是否自动回购国债":"是", "国债代码":["131810.SZ"], "国债购买比率":0.8, "国债购买时间":"14:57",
实盘运行的效果
开启的模块
实盘交易的效果
主页简介或si我分享源代码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。