量化研究---大qmt实盘实现禄得可转债策略轮动

前面写了一个强大的可转债自定义系统,我们可以利用这个快速对接到大qmt,我提供实时数据支持 量化研究---强大的可转债分析系统上线,提供api,实时数据支持

打开网页 http://120.78.132.143:8023/

图片

强大可转债选择系统 http://120.78.132.143:8023/convertible_bond_custom_system_app

图片

点击运行就要禄得一模一样的选股结果

图片

可以点击下载数据看看结果

图片

图片

大qmt怎么样使用只需要建立一个策略把代码放入就可以,比如我建立的禄得策略

图片

点击编辑

图片

我们只需要点击运行就会掉我服务器自动分析,得到选股结果,直接加入轮动就可以

图片

我们只需要修改text的内容就可以和禄得一模一样的

图片

图片

后面大家就可以参考写实盘,我后面继续完善这几天事情多,不懂的可以问我

图片

加我备注入群,可以进入策略研究群,源代码

#encoding:gbkimport pandas as pdimport requestsimport jsonimport numpy as npimport talibclass convertible_bond_stock_selection_system:  def __init__(self,url='http://120.78.132.143',port=8023,password='123456'):    '''    可转债选股系统    url服务器网页    port端口    password授权码    '''    self.url=url    self.port=port    self.password=password  def get_user_info(self):    '''    获取用户信息    '''    url='{}:{}/_dash-update-component'.format(self.url,self.port)    headers={'Content-Type':'application/json'}    data={      "output":"bond_trader_models_table_1.data@25956d89597d08e2116ebf2664b9ff75",      "outputs":{"id":"bond_trader_models_table_1","property":"data@25956d89597d08e2116ebf2664b9ff75"},      "inputs":[{"id":"bond_trader_models_password","property":"value","value":self.password},      {"id":"bond_trader_models_data_type","property":"value","value":"代码"},      {"id":"bond_trader_models_text","property":"value","value":""},      {"id":"bond_trader_models_run","property":"value","value":"运行"},      {"id":"bond_trader_models_down_data","property":"value","value":"不下载数据"}],"changedPropIds":["bond_trader_models_run.value"]}    res=requests.post(url=url,data=json.dumps(data),headers=headers)    text=res.json()    df=pd.DataFrame(text['response']['bond_trader_models_table_1']['data'])    return df  def get_convertible_bond_stock_selection_system(self,text=''):    '''    获取选股的结果    '''    user=self.get_user_info()    print(user)    print('开始分析*************************************')    url='{}:{}/_dash-update-component'.format(self.url,self.port)    headers={'Content-Type':'application/json'}    data={      "output":"bond_trader_models_table.data@25956d89597d08e2116ebf2664b9ff75",      "outputs":{"id":"bond_trader_models_table","property":"data@25956d89597d08e2116ebf2664b9ff75"},      "inputs":[{"id":"bond_trader_models_password","property":"value","value":"123456"},      {"id":"bond_trader_models_data_type","property":"value","value":"代码"},      {"id":"bond_trader_models_text","property":"value","value":"{}".format(text)},      {"id":"bond_trader_models_run","property":"value","value":"运行"},      {"id":"bond_trader_models_down_data","property":"value","value":"不下载数据"}],"changedPropIds":["bond_trader_models_run.value"]}    res=requests.post(url=url,data=json.dumps(data),headers=headers)    text=res.json()    df=pd.DataFrame(text['response']['bond_trader_models_table']['data'])    return df#if __name__=='__main__':  '''  获取数据  '''text={  "可转债溢价率设置":"可转债溢价率设置",  "数据源模式说明":"服务器/自定义 自定义自己直接导入禄得选股的结果,放在自定义数据,支持盘中,盘后选股交易",  "数据源":"服务器",  "更新数据模式说明":"手动/自动",  "更新数据模式":"自动",  "服务器":"http://120.78.132.143",  "端口":"8023",  "授权码":"123456",  "是否测试":"否",  "是否数据没有更新的情况下更新":"是",  "强制赎回设置":"************************",  "是否剔除强制赎回":"是",  "距离强制赎回天数":0,  "排除上市天数":3,  "是否排除ST":"是",  "市场说明":["沪市主板","深市主板","创业板","科创板"],  "排除市场":[],  "行业说明":"查询行业表**********,混合排除不区分一二三级行业",  "排除行业":[],  "企业类型说明":["民营企业","地方国有企业","中央国有企业","外资企业","中外合资经营企业","集体企业"],  "排除企业类型":[],  "排除地域说明":["陕西", "山西", "山东", "河南", "新疆", "安徽", "西藏", "海南", "湖北", "河北",   "福建", "广西", "内蒙古", "浙江", "江西", "江苏", "上海", "贵州", "黑龙江", "湖南", "甘肃",  "宁夏", "云南", "天津", "广东", "四川", "北京", "辽宁", "重庆"],  "排除地域":[],  "排除外部评级说明":["AAA", "AA+", "AA", "AA-", "A+", "A", "A-",  "BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", "B+", "B", "B-", "CCC", "CC"],  "排除外部评级":["B","B-","CCC","CC"],  "排除三方评级说明":["1", "2", "3", "4+", "4", "4-", "5+", "5", "5-", "6+", "6",    "6-", "7+", "7", "7-", "8+", "8", "8-", "9", "10"],  "排除三方评级":["10","9","8"],  "添加排除因子":"排除因子设置************************",  "全部的排除因子打分因子,必须选择可以计算的":["开盘价", "最高价", "最低价", "最新价", "涨跌幅", "5日涨跌幅",  "正股最高价", "正股最低价", "正股最新价", "正股涨跌幅", "正股5日涨跌幅", "成交量(手)",   "成交额(万)", "年化波动率", "正股年化波动率", "股息率", "转股价值", "转股溢价率", "理论转股溢价率",  "修正转股溢价率", "纯债价值", "纯债溢价率", "期权价值", "理论价值", "理论偏离度", "双低",  "剩余规模(亿)", "剩余市值(亿)", "换手率", "市净率", "市盈率_ttm", "市销率_ttm", "正股流通市值(亿)",  "正股总市值(亿)", "资产负债率", "转债市占比", "上市天数", "转股截止日", "剩余年限",   "到期收益率(税前)", "强赎触发比例", "外部评级", "三方评级", "企业类型", "地域", "一级行业", "二级行业", "三级行业"],  "因子计算符号说明":"大于,小于,大于排名%,小于排名%,空值,排除是相反的,大于是小于",  "排除因子":["最新价","最新价","转股溢价率","剩余规模(亿)"],  "因子计算符号":["大于","小于","大于","大于"],  "因子值":[130,100,0.3,8],  "打分因子设置":"*************************************************",  "打分因子说明":"正相关:因子值越大得分越高;负相关:因子值越大得分越低,",  "打分因子":["转股溢价率","最新价","剩余规模(亿)"],  "因子相关性":["负相关","负相关","负相关"],  "因子权重":[1,1,1],  "持有限制":10,  "持股限制":10,  "策略轮动设置":"策略轮动设置************************,轮动都按排名来",  "轮动方式说明":"每天/每周/每月/特别时间",  "轮动方式":"每天",  "说明":"每天按自定义函数运行",  "每周轮动是说明":"每周比如0是星期一,4是星期五**********",  "每周轮动时间":0,  "每月轮动是说明":"必须是交易日,需要自己每个月自动输入**********",  "每月轮动时间":["2024-02-29","2024-02-29","2024-02-29","2024-02-29","2024-02-29","2024-02-29","2024-02-29"],  "特定时间说明":"特别的应该交易日",  "特定时间":["2024-02-23","2024-02-24","2024-02-25","2024-02-26","2024-02-27"],  "轮动规则设置":"轮动规则设置88888888**********排名",  "买入排名前N":10,  "持有排名前N":10,  "跌出排名卖出N":10,  "买入前N":10,  "自定义因子模块":"自定义因子模块设置***********************",  "是否开启自定义因子":"否",  "自定义因子":{  "5日收益":"return_5()",  "均线金叉":"ma_gold_fork()",  "macd金叉":"macd_gold_fork()"}}
def init(ContextInfo):  print('*********************8')  ContextInfo.accID = '55011917'  ContextInfo.accType='STOCk'  ContextInfo.buy = True  ContextInfo.sell = False  ContextInfo.models=convertible_bond_stock_selection_system()  ContextInfo.df=ContextInfo.models.get_convertible_bond_stock_selection_system(text=text)  print(ContextInfo.df)  #利用定时函数运行  #ContextInf.run_time()      def handlebar(ContextInfo):  pass

综合交易模型54

综合交易模型 · 目录

上一篇综合交易模型--雪球跟单参数说明支持qmt,同花顺

### QMT API 获取全部股票代码的方法 在迅投QMT平台中,可以通过内置API来获取所有股票的代码列表。以下是实现这一目标的具体方式: #### 使用 `get_instrument_list` 接口 QMT提供了专门用于获取证券市场中所有可交易品种(包括股票、基金等)的接口——`get_instrument_list()` 函数[^1]。该函数可以返回指定市场的所有证券代码及其基本信息。 下面是一个完整的 Python 示例代码片段,展示如何利用此接口获取沪深A股市场的所有股票代码: ```python from xtquant import xtdata def get_all_stock_codes(): """ 获取沪深A股市场的所有股票代码 """ market = 'stock' # 市场类型:stock表示股票市场 stock_type = ['STOCK_A'] # 股票类别:STOCK_A 表示 A 股 instrument_list = xtdata.get_instrument_list(market=market, type=stock_type) all_stock_codes = [] for item in instrument_list: code = item['code'] name = item['name'] all_stock_codes.append((code, name)) return all_stock_codes if __name__ == "__main__": stocks = get_all_stock_codes() print(f"总共找到 {len(stocks)} 支股票") for i, (code, name) in enumerate(stocks[:10]): # 打印前10支股票作为示例 print(f"{i+1}. 股票代码: {code}, 名称: {name}") ``` 上述代码定义了一个名为 `get_all_stock_codes` 的函数,它会调用 `xtdata.get_instrument_list` 来获取特定类型的证券列表,并提取其中的股票代码和名称[^2]。 #### 关键参数说明 - **`market` 参数**:指定了要查询的市场范围。对于中国股市而言,“stock”代表整个股票市场。 - **`type` 参数**:限定所关注的证券种类。“STOCK_A”特指上交所以及深交所提供的A股股票。 通过以上设置即可获得一份详尽的沪深两市A股清单[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xg_quant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值