综合交易模型可转债强制赎回处理函数计算因子表源代码

最近有读者问我怎么样处理强制赎回,我把函数提取出来,参考使用

 "可转债强制赎回":"可转债强制赎回配置",
    "是否剔除强制赎回":"是",
    "距离强制赎回天数":10,
    "强制赎回状态":"非强制赎回",
def get_del_qzsh_data(self):
        '''
        剔除强制赎回
        '''
        print('剔除强制赎回')
        with open('分析配置.json',encoding='utf-8') as f:
            com=f.read()
        text=json.loads(com)
        del_select=text['是否剔除强制赎回']
        n=text['距离强制赎回天数']
        df=self.bond_cov_data.bank_cov_qz()
        del_list=[]
        for i in range(1,n+1):
            n_text='至少还需{}天'.format(i)
            del_list.append(n_text)
        del_list.append('临近到期')
        del_list.append('已满足强赎条件')
        del_list.append('是否剔除强制赎回')
        text_n=''
        for select_text in del_list:
            text_n+='"{}" in x or '.format(select_text)
        text_n=text_n[:-3]
        if del_select=='是':
            df1=df
            def select_bond_cov(x):
                '''
                选择可转债
                '''
                if eval(text_n):
                    return '是'
                else:
                    return '不是'
            df1['选择']=df1['cell.redeem_count'].apply(select_bond_cov)
            df2=df1[df1['选择']=='是']
            df2.to_excel(r'强制赎回\强制赎回.xlsx')
            trader_stock=pd.read_excel(r'交易股票池\交易股票池.xlsx',dtype='object')
            print(trader_stock)
            def select_trader_stock(x):
                '''
                选择交易股票池
                '''
                if x not in df2['cell.bond_id'].tolist():
                    return '不是'
                else:
                    return '是'
            trader_stock['强制赎回']=trader_stock['证券代码'].apply(select_trader_stock)
            trader_stock=trader_stock[trader_stock['强制赎回']=='不是']
            trader_stock.to_excel(r'交易股票池\交易股票池.xlsx')
            return df2
        else:
            df.to_excel(r'非强制赎回\非强制赎回.xlsx')
            return df

策略目前已经逐渐的迁移到综合自定义交易模型,今天我维护了一下,最终版同花顺可转债趋势轮动v5.6.8修改了空仓问题,我感觉里面的可转债计算因子很有价值,后面打算独立到服务器,支持60多个自定义因子交易

程序支持自定义因子

自定义因子轮动模块":"自定义因子模块,单独独立成一个模型后面更新,因子值是数据",
    "可转债支持的默认因子":["价格", "涨跌幅","正股涨跌", "正股PB", "转股价", 
         "转股价值", "转股溢价率", "双低", "申万", "市场", "上市时间", "持有",
          "债券评级", "期权价值", "回售触发价", "强赎触发价", "转债占比", "基金持仓",
           "到期时间", "剩余年限", "剩余规模", "成交额", "svolume", 
           "换手率", "到期税前收益", "融资融券"],
    "正股默认因子":["股票现价", "股票最高价", "股票最低价", "股票今开",
         "股票成交量", "股票成交额", "股票量比", "股票涨停", "股票跌停", 
         "股票昨收", "股票总市值", "股票流通市值", "股票动态市盈率", "股票市净率",
          "股票换手率", "股票涨跌", "股票涨跌幅", "股票振幅"],
    "自定义因子设置":"自定义因子设置",
    "是否开启因子上下限轮动":"",
    "因子排序列表":["转股溢价率","剩余规模","价格"],
综合交易模型可转债强制赎回处理函数计算因子表源代码

建立3低因子

"可转债存在交易股票池是否追加":"否",
    "自定义默认因子字典":{"价格":[115,130],"转股溢价率":[0,60],"剩余规模":[0.5,8],"剩余年限":[1,6]},
    "自定义因子函数说明":"自定义因子函数必须有返回值,输入的参数包容stock默认的股票可转债一样",
    "是否启动自定义因子":"否",
    "自定义因子函数表达形式":{"可转债5日波动率":["get_cov_bond_var(stock,n=5)",[-1,20]]},

自定义因子函数

from stock_data import stock_data
from bond_cov_data import bond_cov_data
from ths_rq import ths_rq
import pandas as pd
from tqdm import tqdm
import numpy as np
import json
import jsl_data
import empyrical
class user_def_factor_data:
    def __init__(self):
        '''
        自定义因子框架
        '''
        self.stock_data=stock_data()
        self.bond_cov_data=bond_cov_data()
        self.ths_rq=ths_rq()
    def get_cov_bond_var(self,stock='110052',n=5):
        '''
        可转债5波动率
        程序必须有返回值
        '''
        try:
            df=self.bond_cov_data.get_cov_bond_hist_data(stock=stock)
            var_5=df['close'].rolling(5).std().tolist()[-1]
            return "可转债",var_5
        except:
            return "可转债",None
    def get_stock_5_return(self,stock='600031',n=5):
        '''
        股票5日收益率
        程序必须有返回值
        '''
        try:
            df=self.stock_data.get_stock_hist_data_em(stock=stock)
            return_5=df['涨跌幅'].rolling(5).sum().tolist()[-1]
            return '股票',return_5
        except:
            return '股票',None
    def get_cov_bond_return(self,stock='110052',n=5):
        '''
        可转债5日收益率
        程序必须有返回值
        '''
        try:
            df=self.bond_cov_data.get_cov_bond_hist_data(stock=stock)
            return_5=df['涨跌幅'].rolling(5).sum().tolist()[-1]
            return '可转债',return_5
        except:
            return '可转债',None
    def get_cov_bond_score(self,stock='110052'):
        try:
            df=self.data.get_hist_data_em(stock=stock)
            score=self.analysis_models.mean_line_models(df)
            return '可转债',score
        except:
            print(stock,'计算失败')
            return '可转债',None

      

自定义因子只需要返回数据类型,值就可以的

我们点击analysis_models更新全部的交易数据,我的是实盘交易模型

综合交易模型可转债强制赎回处理函数计算因子表源代码

更新数据

综合交易模型可转债强制赎回处理函数计算因子表源代码

对可转债进行趋势分析

综合交易模型可转债强制赎回处理函数计算因子表源代码

综合交易模型可转债强制赎回处理函数计算因子表源代码

程序分析的数据

综合交易模型可转债强制赎回处理函数计算因子表源代码

默认因子

综合交易模型可转债强制赎回处理函数计算因子表源代码

综合交易模型可转债强制赎回处理函数计算因子表源代码

综合交易模型可转债强制赎回处理函数计算因子表源代码

建立3低因子

"可转债存在交易股票池是否追加":"否",    "自定义默认因子字典":{"价格":[115,130],"转股溢价率":[0,60],"剩余规模":[0.5,8],"剩余年限":[1,6]},    "自定义因子函数说明":"自定义因子函数必须有返回值,输入的参数包容stock默认的股票可转债一样",    "是否启动自定义因子":"否",    "自定义因子函数表达形式":{"可转债5日波动率":["get_cov_bond_var(stock,n=5)",[-1,20]]},

3低因子分析的结果

综合交易模型可转债强制赎回处理函数计算因子表源代码

综合交易模型可转债强制赎回处理函数计算因子表源代码

程序分析的交易股票池

综合交易模型可转债强制赎回处理函数计算因子表源代码

运行实盘J易,有qmt版本

综合交易模型可转债强制赎回处理函数计算因子表源代码

综合交易模型可转债强制赎回处理函数计算因子表源代码

可以提供源代码和计算因子表

程序的全部参数

{
    "交易模型":"可转债交易模型",
    "策略名称":"小果专用同花顺可转债趋势轮到策略",
    "开始时间":"20220101",
    "结束时间":"20500101",
    "停止程序":"假",
    "测试":"假",
    "证券公司交易设置":"兼容老牌证券公司可转债1手为单位",
    "是否开启特殊证券公司交易设置":"否",
    "交易时间段":4,
    "交易开始时间":9,
    "交易结束时间":14,
    "是否参加集合竞价":"否",
    "开始交易分钟":0,
    "开票买卖设置":"开票买卖设置",
    "买卖前是否更新数据":"否",
    "买卖前更新数据时间":"09:26",
    "买入时间":"09:30",
    "卖出时间":"09:31",
    "可转债溢价率设置":"可转债溢价率设置",
    "集思录账户":"1511079",
    "集思录密码":"L90",
    "多次更新数据设置":"多次更新数据设置类型有定时/循环",
    "是否开启多次更新数据":"否",
    "多次跟新时间类型":["定时","定时","定时"],
    "多次跟新时间":["09:30","10:30","14:30"],
    "自定义因子轮动模块":"自定义因子模块,单独独立成一个模型后面更新,因子值是数据",
    "可转债支持的默认因子":["价格", "涨跌幅","正股涨跌", "正股PB", "转股价", 
         "转股价值", "转股溢价率", "双低", "申万", "市场", "上市时间", "持有",
          "债券评级", "期权价值", "回售触发价", "强赎触发价", "转债占比", "基金持仓",
           "到期时间", "剩余年限", "剩余规模", "成交额", "svolume", 
           "换手率", "到期税前收益", "融资融券"],
    "正股默认因子":["股票现价", "股票最高价", "股票最低价", "股票今开",
         "股票成交量", "股票成交额", "股票量比", "股票涨停", "股票跌停", 
         "股票昨收", "股票总市值", "股票流通市值", "股票动态市盈率", "股票市净率",
          "股票换手率", "股票涨跌", "股票涨跌幅", "股票振幅"],
    "自定义因子设置":"自定义因子设置",
    "是否开启因子上下限轮动":"是",
    "因子排序列表":["转股溢价率","剩余规模","价格"],
    "排序方式":"倒序",
    "可转债存在交易股票池是否追加":"否",
    "自定义默认因子字典":{"价格":[115,130],"转股溢价率":[0,60],"剩余规模":[0.5,8],"剩余年限":[1,6]},
    "自定义因子函数说明":"自定义因子函数必须有返回值,输入的参数包容stock默认的股票可转债一样",
    "是否启动自定义因子":"否",
    "自定义因子函数表达形式":{"可转债5日波动率":["get_cov_bond_var(stock,n=5)",[-1,20]]},
    "自定义因子函数":{},
    "实时涨跌幅上限":8,
    "实时涨跌幅下限":-1,
    "是否尾盘卖出不符合形态分析":"是",
    "尾盘卖出不符合形态分析时间":"14:53",
    "趋势交易设置":"趋势交易设置",
    "是否趋势交易":"否",
    "趋势交易可转债":[],
    "资金管理模块说明":"程序默认管理方式有数量/资金",
    "资金分配设置":"交易数量设置数量和金额",
    "交易模式":"数量",
    "固定交易资金":2500,
    "持有金额限制":5000,
    "固定交易数量":10,
    "持有限制":10,
    "持股限制":10,
    "数据同步设置":"同步手机端操作的数据",
    "是否同步数据":"是",
    "同步周期":11,
    "持股周期设置":"持股轮动设置,可以买入小于持股限制数量不可以卖出",
    "是否开启持股周期":"否",
    "持股持股周期天数":4,
    "持股周期尾盘是否补仓":"是",
    "持股周期尾盘更新数据时间":"14:48",
    "持股周期是否允许T":"是",
    "持股周期尾盘买入时间":"14:53",
    "持股周期尾盘卖出时间":"14:50",
    "尾盘建仓设置":"尾盘建仓设置",
    "尾盘建仓说明":"尾盘建仓更新数据一般早于更新3分钟,尾盘建立仓为做T",
    "是否尾盘建仓":"是",
    "尾盘减仓更新数据时间":"14:45",
    "尾盘买入时间":"14:52",
    "尾盘卖出时间":"14:50",
    "尾盘建仓涨跌幅上限":5,
    "尾盘建仓涨跌幅下限":-1,
    "持可转债过夜设置":"持可转债过夜设置",
    "是否持可转债过夜":"是",
    "不持转债过夜卖出时间":"14:54",
    "自定义设置":"自定义设置",
    "买卖数据源":"默认",
    "买卖数据中源说明":"数据源有默认和自定义",
    "可转债黑名单":["123018","110044","128053","128036","127016"],
    "交易黑名单":["123018","110044","128053","128036","127016"],
    "同花顺下单路径":"C:/同花顺软件/同花顺/xiadan.exe",
    "识别软件安装位置":"C:/Program Files/Tesseract-OCR/tesseract",
    "通知方式说明":"qq/钉钉",
    "通知方式":"qq",
    "qq":"1029762153@qq.com",
    "发送qq":"1752515969@qq.com",
    "qq掩码":"jgyhalecaf",
    "钉钉account_token":["ab5d0a609429a78c7a60bea5f8480d86b1b"],
    "盘中调仓设置":"盘中调仓设置",
    "是否盘中调仓":"否",
    "盘中调仓周期":"14:00",
    "循环买入设置":"循环买入设置",
    "是否循环买入设置":"是",
    "循环买入刷新时间":0.05,
    "买入时间的涨跌幅上限":5,
    "买入时间的涨跌幅下限":-1,
    "循环卖出设置":"循环卖出设置",
    "是否循环卖出":"是",
    "循环卖出刷新时间":0.6,
    "当日止盈止损设置":"止盈止损设置",
    "是否当日止盈止损":"否",
    "一次性卖出":"不是",
    "止盈止损卖出数量":10,
    "当日止盈止损刷新时间":0.2,
    "当日止盈":6,
    "当日止损":-3,
    "账户止盈止损设置":"账户止盈止损设置",
    "是否账户止盈止损":"否",
    "账户止盈止损刷新时间":1,
    "账户止盈":15,
    "账户止损":-3,
    "冲高回落模块--超跌反弹":"冲高回落模块--超跌反弹",
    "是否冲高回落模块--超跌反弹":"否",
    "冲高最低收益":13,
    "从高回落幅度":-1,
    "超跌幅度":-3,
    "超跌反弹收益":2,
    "冲高回落模块--超跌反弹刷新时间":0.2,
    "是否需要补仓":"是",
    "趋势分析参数":"均线分析--日线",
    "使用均线":[5,10,20,30,60],
    "跌破N日均线卖出":10,
    "均线最低分数":75,
    "持有均线最低分":25,
    "收益率分析模块":"收益率分析模块",
    "最近N天":5,
    "最近N天最大收益率":15,
    "最近N天最小收益率":-1,
    "最近N天最大回撤":-8,
    "人气排行交易模块":"人气排行交易模块",
    "人气排行总数":100,
    "买入前N":5,
    "交易人气前N":60,
    "持有人气排行前N":100,
    "正股实时收益分析":"正股实时收益分析",
    "正股涨跌幅上限":20,
    "正股涨跌幅下限":-20,
    "分钟脉冲":"分钟脉冲设置",
    "是否分钟脉冲":"是",
    "分钟脉冲时间":10,
    "分钟脉冲刷新时间":0.05,
    "分钟脉冲上涨":2,
    "分钟脉冲下跌":-4,
    "分钟脉冲是否时间增强":"是",
    "分钟脉冲增强小时":"9",
    "分钟脉冲增强分钟":"3500",
    "分钟脉冲增强倍数":1,
    "小时趋势":"小时趋势设置",
    "是否小时趋势":"否",
    "小时趋势时间":1,
    "小时趋势刷新时间":0.06,
    "小时趋势上涨":5,
    "小时趋势下跌":-3,
    "动态脉冲设置":"动态脉冲设置",
    "是否动态脉冲":"否",
    "动态脉冲设置说明":"利用过去5个交易日的平均振幅",
    "动态脉冲天数":5,
    "动态脉冲时间":10,
    "动态脉冲刷新时间":0.05,
    "动态脉冲上涨比例":0.38,
    "动态脉冲下跌比例":-0.6,
    "zig":"zig设置",
    "是否zig":"否",
    "zig转向点":0.02,
    "zig刷新时间":0.5,
    "盘中参考均线交易设置":"盘中参考均线交易设置",
    "是否盘中参考均线":"否",
    "盘中参考数据周期":5,
    "盘中窗口":20,
    "盘中均线刷新时间":0.6,
    "可转债强制赎回":"可转债强制赎回配置",
    "是否剔除强制赎回":"是",
    "距离强制赎回天数":10,
    "强制赎回状态":"非强制赎回",
    "发送通知":"真",
    "交易时间配置":"配置如下,更新数据数据时间小于买入的时间",
    "动态网格设置":"动态网格设置",
    "是否开启动态网格":"否",
    "动态网格网格说明":"采用最近N天的振幅均值为计算",
    "网格增强设置":"网格增强设置",
    "网格单元格小于":0.5,
    "增强倍数":3,
    "自定义网格刷新时间":0.05,
    "网格最近N天":5,
    "网格数量":6,
    "网格时间大小":200,
    "买卖分位数":0.75,
    "跌破最后一个网格是否全部卖出":"否",
    "网格止损线":-3
}

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/68825
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 9 日
下一篇 2024 年 7 月 9 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注