当前位置: 首页 > news >正文

开平建设局网站昆明网站建设怎么样

开平建设局网站,昆明网站建设怎么样,wordpress头像存储,网站的后台链接 综合交易模型----可转债三低策略实盘qmt版#xff0c;提供源代码 (qq.com) 可转债3低策略是指选择正股市值低、转债余额低、溢价率低的可转债进行投资的策略。 市值低#xff1a;指的是可转债对应的正股市场价值较小#xff0c;这通常意味着需要较少的资金就可以对股价…链接 综合交易模型----可转债三低策略实盘qmt版提供源代码 (qq.com) 可转债3低策略是指选择正股市值低、转债余额低、溢价率低的可转债进行投资的策略。 市值低指的是可转债对应的正股市场价值较小这通常意味着需要较少的资金就可以对股价造成较大的影响从而可能带来更高的收益。 转债余额低转债余额低意味着市场上流通的可转债数量较少这样的可转债更容易受到市场资金的关注和操作也更有可能因为供需关系而价格上涨。 溢价率低溢价率是衡量可转债价格相对于其转换价值的一个指标低溢价率意味着可转债的市场价格接近其转换为股票后的价值风险相对较低且当正股价格上涨时可转债的价格也可能随之上涨。 以前写了一个双低策略 综合交易模型----可转债双低策略自动轮动实盘提供源代码 三低策略的交易参数 { 可转债溢价率设置:可转债溢价率设置, 是否测试:否, 集思录账户:151179, 集思录密码:LXG90, 可转债溢价率上限:60, 可转债溢价率下限:-10, 转债余额上限:10, 转债余额下限:0.8, 资金分配设置:交易数量设置数量和金额, 交易模式:数量, 固定交易资金:2500, 持有金额限制:5000, 固定交易数量:100, 持有限制:10, 持股限制:10, 可转债选择配置:可转债选择配置, 价格上限:200, 价格下限:100, 实时涨跌幅上限:8, 实时涨跌幅下限:-1, 三低最小值:100, 三低最大值:200, 三低平仓:200, 是否剔除强制赎回:是, 距离强制赎回天数: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:13, 跌出排名卖出N:15, 持股周期设置:持股轮动设置,可以买入小于持股限制数量不可以卖出, 是否开启持股周期:否, 持股持股周期天数:4, 持股周期尾盘是否补仓:是, 持股周期尾盘更新数据时间:14:48, 持股周期是否允许T:是, 持股周期尾盘买入时间:14:53, 持股周期尾盘卖出时间:14:50, 趋势分析设置:************************************, 是否开启趋势轮动:否, 趋势分析参数:均线分析--日线, 使用均线:[5,10,20,30,60], 跌破N日均线卖出:5, 均线最低分数:75, 持有均线最低分:25, 收益率分析模块:收益率分析模块, 最近N天:5, 最近N天最大收益率:10, 最近N天最小收益率:-5, 最近N天最大回撤:-8, 买入前N:5} 默认安周轮动星期五为4可以选择轮动方式 策略轮动设置:策略轮动设置************************,轮动都按排名来, 轮动方式说明:每天/每周/每月/特别时间, 轮动方式:每周, 说明:每天按自定义函数运行, 每周轮动是说明:每周比如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], 实盘设置启动策略点击分析配置交易系统选择qmt 交易系统设置:*********************************************, 交易系统选择:ths/qmt, 交易系统:qmt, 交易品种:bond, 交易品种说明:[stock,fund,bond,全部], 同花顺下单路径:C:/同花顺软件/同花顺/xiadan.exe, 识别软件安装位置:C:/Program Files/Tesseract-OCR/tesseract, qmt路径:C:/国金QMT交易端模拟/userdata_mini, qmt账户:55003645, qmt账户类型:STOCK, 证券公司交易设置:兼容老牌证券公司可转债1手为单位, 是否开启特殊证券公司交易设置:否, 选择交易模型比如三低策略 自定义交易:************************, 是否开启自定义函数模块:是, 自定义运行函数设置:自定义运行函数说明运行类型有定时和循环只需要把自定义模块的函数名称放在下面******, 目前设置说明:早上交易人气,下午做概念,2个策略的间隔长干扰小手动更新数据是最后一个策略的, 自定义函数运行类型:[定时], 自定义函数模块运行时间:[09:45], 自定义函数:[run_convertible_bonds_three_low_strategy], 黑名单:[600031,159937], 设置资金分配模式比如每一个买一万 资金管理模块说明:程序默认管理方式有数量/资金, 资金分配设置:交易数量设置数量和金额,利用可转债最低单位位设置条件,股票在基础数据*10etf*100,值调整持有限制持股限制, 交易模式:金额, 固定交易资金:10000, 持有金额限制:10000, 固定交易数量:10, 持有限制:10, 持股限制:10, 滑点设置:滑点设置滑点价格最后一位比如滑点0.01,股票换掉0.01etf,可转债滑点0.01/100.001价格最后一位比如现在12.01买入12.02卖出12.00, 滑点:0.01, 运行user models更新数据只需要运行一次后面全部自动 三低的结果可以设置参数 Unnamed: 0.3 Unnamed: 0.2 Unnamed: 0.1 序号 证券代码 可转债名称 价格 涨跌幅 正股代码 正股名称 ... 回售 价值 纯债 价值 弹性 信用 代码 三低 强制赎回 持股检查 跌破均线 交易状态0 0 0 0 358 123096 思创转债 103.54 3.63 300078 思创医惠 ... 80.39 63.63 0.84 BB 123096 108.91 不是 没有持股 不是 未买1 1 1 1 468 123044 红相转债 109.089 0.34 300427 *ST红相 ... 回售内 98.44 0.55 A- 123044 117.199 不是 没有 持股 不是 未买2 2 2 2 544 128039 三力转债 107.97 1.37 2224 三 力 士 ... 回售内 104.49 0.18 A 128039 126.08 不是 没有持股 不是 未买3 3 3 3 72 123207 冠中转债 116.63 1.72 300948 冠中生态 ... 76.32 75.97 0.7 A 123207 129 不是 没有持股 不是 未买4 4 4 4 535 128042 凯中转债 116.694 1.58 2823 凯中精密 ... 回售内 110.03 0.38 AA- 128042 131.044 不是 没 有持股 不是 未买5 5 5 5 484 128087 孚日转债 116.3 1.53 2083 孚日股份 ... 回售内 100.19 0.57 AA- 128087 131.46 不是 没 有持股 不是 未买6 6 6 6 82 123204 金丹转债 122.9 2.93 300829 金丹科技 ... 85.37 89.95 0.65 AA- 123204 134.55 不是 没有持股 不是 未买7 7 7 7 476 127015 希望转债 104.549 0.35 876 新 希 望 ... 回售内 102.92 0.27 AAA 127015 135.419 不是 没有持股 不是 未买8 8 8 8 306 113628 晨丰转债 120.722 2.62 603685 晨丰科技 ... 89.92 89.67 0.62 A 113628 136.612 不是 没有持股 不是 未买9 9 9 9 46 123221 力诺转债 130.008 1.06 301188 力诺特玻 ... 80.48 77.55 0.73 A 123221 137.018 不是 没有持股 不是 未买运行trader st进入实盘交易 程序开始下单 下单的结果 循环监测 24小时运行 全部的源代码上传了知识星球直接下载就可以运行 策略源代码 from trader_tool.stock_data import stock_datafrom trader_tool.bond_cov_data import bond_cov_datafrom trader_tool.shape_analysis import shape_analysisfrom trader_tool.analysis_models import analysis_modelsimport pandas as pdfrom trader_tool.ths_rq import ths_rqfrom tqdm import tqdmimport numpy as npimport jsonfrom trader_tool import jsl_datafrom qmt_trader.qmt_trader_ths import qmt_trader_thsfrom xgtrader.xgtrader import xgtraderimport numpy as npimport osfrom datetime import datetimeimport timeclass convertible_bonds_three_low_strategy: def __init__(self,trader_toolths,exeC:/同花顺软件/同花顺/xiadan.exe,tesseract_cmdC:/Program Files/Tesseract-OCR/tesseract, qq1029762153qq.com,open_set否,qmt_pathD:/国金QMT交易端模拟/userdata_mini, qmt_account55009640,qmt_account_typeSTOCK,namerun_bond_cov_rend_strategy): 可转债三低策略 self.exeexe self.tesseract_cmdtesseract_cmd self.qqqq self.trader_tooltrader_tool self.open_setopen_set self.qmt_pathqmt_path self.qmt_accountqmt_account self.qmt_account_typeqmt_account_type if trader_toolths: self.traderxgtrader(exeself.exe,tesseract_cmdself.tesseract_cmd,open_setopen_set) else: self.traderqmt_trader_ths(pathqmt_path,accountqmt_account,account_typeqmt_account_type) self.stock_datastock_data() self.bond_cov_databond_cov_data() self.ths_rqths_rq() self.pathos.path.dirname(os.path.abspath(__file__)) self.namename def save_position(self): 保存持股数据 with open(r分析配置.json,encodingutf-8) as f: comf.read() textjson.loads(com) del_stock_listtext[黑名单] def select_del_stock_list(x): if str(x)[:6] in del_stock_list: return 是 else: return 否 self.trader.connect() dfself.trader.position() def select_bond_cov(x): 选择可转债 if x[:3] in [110,113,123,127,128,111,118] or x[:2] in [11,12]: return 是 else: return 不是 try: if dfFalse: print(获取持股失败) except: if df.shape[0]0: df[选择]df[证券代码].apply(select_bond_cov) try: df[持股天数]df[持股天数].replace(--,1) except: df[持股天数]1 df1df[df[选择]是] df1df1[df1[可用余额]10] df1[黑名单]df1[证券代码].apply(select_del_stock_list) df1df1[df1[黑名单]否] print(剔除黑名单**********) df1.to_excel(r持股数据\持股数据.xlsx) return df1 else: dfpd.DataFrame() df[账号类型]None df[资金账号]None df[证券代码]None df[股票余额]None df[可用余额]None df[成本价]None df[市值]None df[选择]None df[持股天数]None df[交易状态]None df[明细]None df[证券名称]None df[冻结数量]None df[市价]None df[盈亏]None df[盈亏比(%)]None df[当日买入]None df[当日卖出]None df.to_excel(r持股数据\持股数据.xlsx) return df def save_position(self): 保存持股数据 with open(r分析配置.json,encodingutf-8) as f: comf.read() textjson.loads(com) del_stock_listtext[黑名单] def select_del_stock_list(x): if str(x)[:6] in del_stock_list: return 是 else: return 否 self.trader.connect() dfself.trader.position() def select_bond_cov(x): 选择可转债 if x[:3] in [110,113,123,127,128,111,118] or x[:2] in [11,12]: return 是 else: return 不是 try: if dfFalse: print(获取持股失败) except: if df.shape[0]0: df[选择]df[证券代码].apply(select_bond_cov) try: df[持股天数]df[持股天数].replace(--,1) except: df[持股天数]1 df1df[df[选择]是] df1df1[df1[可用余额]10] df1[黑名单]df1[证券代码].apply(select_del_stock_list) df1df1[df1[黑名单]否] print(剔除黑名单**********) df1.to_excel(r持股数据\持股数据.xlsx) return df1 else: dfpd.DataFrame() df[账号类型]None df[资金账号]None df[证券代码]None df[股票余额]None df[可用余额]None df[成本价]None df[市值]None df[选择]None df[持股天数]None df[交易状态]None df[明细]None df[证券名称]None df[冻结数量]None df[市价]None df[盈亏]None df[盈亏比(%)]None df[当日买入]None df[当日卖出]None df.to_excel(r持股数据\持股数据.xlsx) return df def select_bond_cov(self,x): 选择证券代码 if x[:3] in [110,113,123,127,128,111] or x[:2] in [11,12]: return 是 else: return 不是 def save_balance(self): 保持账户数据 with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) self.trader.connect() dfself.trader.balance() df.to_excel(r账户数据\账户数据.xlsx) return df def get_all_jsl_data(self): 获取可转债全部数据 print(获取可转债全部数据) with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) max_yjltext[可转债溢价率上限] min_yjltext[可转债溢价率下限] max_gmtext[转债余额上限] min_gmtext[转债余额下限] usertext[集思录账户] passwordtext[集思录密码] dfjsl_data.get_all_cov_bond_data(jsl_useruser,jsl_passwordpassword) df.to_excel(r{}\全部数据\全部数据.xlsx.format(self.path)) df[代码]df[证券代码].tolist() df1df[df[转股溢价率]max_yjl] df2df1[df1[转股溢价率]min_yjl] try: df3df2[df2[转债 余额]min_gm] except: df3df2[df2[转债余额]min_gm] try: df4df3[df3[转债 余额]max_gm] except: df4df3[df3[转债余额]max_gm] df4.to_excel(r{}\目前溢价率可转债\目前溢价率可转债.xlsx.format(self.path)) return df4 def calculated_double_low(self): 计算三低 三低价格100*转股溢价率转债余额 with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) min_valuetext[三低最小值] max_valuetext[三低最大值] dfpd.read_excel(r{}\目前溢价率可转债\目前溢价率可转债.xlsx.format(self.path),dtypeobject) try: del df[Unnamed: 0] except: pass try: df[三低]df[价格]df[转股溢价率]df[转债 余额] except: df[三低]df[价格]df[转股溢价率]df[转债余额] df.to_excel(r{}\原始三低\原始三低.xlsx.format(self.path )) #排序 dfdf.sort_values(by三低,ascendingTrue) df[三低]pd.to_numeric(df[三低]) df1df[df[三低]min_value] df2df1[df1[三低]max_value] df2.to_excel(r{}\三低\三低.xlsx.format(self.path)) def mean_line_models(self,df): 均线模型 趋势模型 510203060 dfdf #dfself.bond_cov_data.get_cov_bond_hist_data(stockstock,startstart_date,endend_date,limit1000000000) df1pd.DataFrame() df1[date]df[date] df1[5]df[close].rolling(window5).mean() df1[10]df[close].rolling(window10).mean() df1[20]df[close].rolling(window20).mean() df1[30]df[close].rolling(window30).mean() df1[60]df[close].rolling(window60).mean() score0 #加分的情况 mean_5df1[5].tolist()[-1] mean_10df1[10].tolist()[-1] mean_20df1[20].tolist()[-1] mean_30df1[30].tolist()[-1] mean_60df1[60].tolist()[-1] #相邻2个均线进行比较 if mean_5mean_10: score25 if mean_10mean_20: score25 if mean_20mean_30: score25 if mean_30mean_60: score25 return score def get_return_ananlysis(self,df,n5): 收益率分析 #涨跌幅 df1df pricesdf1[-n:][close] zdf ((prices.iloc[-1] / prices.iloc[0]) - 1)*100 #最大回撤 max_down_result((prices / prices.expanding(min_periods1).max()).min() - 1)*100 #累计收益】 return zdf,max_down_result def get_cov_bond_shape_analysis(self): 可转债形态分析 print(可转债形态分析) dfpd.read_excel(r{}\三低\三低.xlsx.format(self.path),dtypeobject) with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) ntext[跌破N日均线卖出] try: del df[Unnamed: 0] except: pass stock_listdf[证券代码].tolist() over_lining[] mean_line[] for i in tqdm(range(len(stock_list))): stockstock_list[i] try: hist_dfself.bond_cov_data.get_cov_bond_hist_data(stockstock) modelsshape_analysis(dfhist_df) overmodels.get_over_lining_sell() over_lining.append(over) #均线分析 linemodels.get_down_mean_line_sell(nn) mean_line.append(line) except: over_lining.append(None) mean_line.append(None) df[上影线]over_lining df[跌破均线]mean_line df1df[df[跌破均线]不是] df1.to_excel(r{}\选择可转债\选择可转债.xlsx.format(self.path)) return df1 def get_stock_mean_line_retuen_analysis(self): 可转债均线收益分析 print(可转债均线收益分析) with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) ntext[最近N天] max_retuentext[最近N天最大收益率] min_returntext[最近N天最小收益率] max_downtext[最近N天最大回撤] min_secoretext[均线最低分数] mean_sorce_list[] zdf_list[] max_down_list[] dfpd.read_excel(r{}\选择可转债\选择可转债.xlsx.format(self.path),dtypeobject) try: df[Unnamed: 0] except: pass stock_listdf[证券代码].tolist() for i in tqdm(range(len(stock_list))): stockstock_list[i] try: df1self.bond_cov_data.get_cov_bond_hist_data(stockstock,start19990101,end20500101,limit10000000) sorceself.mean_line_models(dfdf1) zdf,downself.get_return_ananlysis(dfdf1,nn) mean_sorce_list.append(sorce) zdf_list.append(zdf) max_down_list.append(down) except: mean_sorce_list.append(None) zdf_list.append(None) max_down_list.append(None) df[均线得分]mean_sorce_list df[最近{}天收益.format(n)]zdf_list df[最近天{}最大回撤.format(n)]max_down_list df.to_excel(r{}\分析原始数据\分析原始数据.xlsx.format(self.path)) df1df[df[均线得分]min_secore] df2df1[df1[最近{}天收益.format(n)]min_return] df3df2[df2[最近{}天收益.format(n)]max_retuen] df4df3[df3[最近天{}最大回撤.format(n)]max_down] df4.to_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path)) return df4 def get_select_trader_type(self): 选择交易方式 with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) rendtext[是否开启趋势轮动] if rend是: self.get_cov_bond_shape_analysis() self.get_stock_mean_line_retuen_analysis() else: dfpd.read_excel(r{}\三低\三低.xlsx.format(self.path),dtypeobject) try: df[Unnamed: 0] except: pass df.to_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path)) def get_del_qzsh_data(self): 剔除强制赎回 print(剔除强制赎回) with open({}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) del_selecttext[是否剔除强制赎回] ntext[距离强制赎回天数] dfself.bond_cov_data.bank_cov_qz() del_list[] for i in range(1,n1): 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_ntext_n[:-3] if del_select是: df1df def select_bond_cov(x): 选择可转债 if eval(text_n): return 是 else: return 不是 df1[选择]df1[cell.redeem_count].apply(select_bond_cov) df2df1[df1[选择]是] df2.to_excel(r{}\强制赎回\强制赎回.xlsx.format(self.path)) trader_stockpd.read_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path),dtypeobject) try: trader_stock[Unnamed: 0] except: pass 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_stocktrader_stock[trader_stock[强制赎回]不是] trader_stock.to_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path)) return trader_stock else: df.to_excel(r非强制赎回\非强制赎回.xlsx) return df def get_del_buy_sell_data(self): 处理交易股票池买入股票 with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) limittext[持股限制] dfself.save_position() df[证券代码]df[证券代码].astype(str) df1df[df[可用余额]10] hold_stock_listdf1[证券代码].tolist() ntext[跌破N日均线卖出] trader_dfself.get_del_qzsh_data() trader_df[证券代码]trader_df[证券代码].astype(str) def select_data(stock): if stock in hold_stock_list: return 持股超过限制 else: return 没有持股 trader_df[持股检查]trader_df[证券代码].apply(select_data) trader_dftrader_df[trader_df[持股检查] !持股超过限制] hold_stock_listtrader_df[证券代码].tolist() sell_list[] for stock in hold_stock_list: try: hist_dfself.bond_cov_data.get_cov_bond_hist_data(stockstock) modelsshape_analysis(dfhist_df) mean_linemodels.get_down_mean_line_sell(nn) if mean_line是: sell_list.append(是) else: sell_list.append(不是) except: print({}有问题.format(stock)) sell_list.append(是) trader_df[跌破均线]sell_list trader_dftrader_df[trader_df[跌破均线]不是] for i in range(0,10): try: trader_df[Unnamed: {}.format(i/10)] except: pass trader_df.to_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path)) return trader_df def get_time_rotation(self): 轮动方式 with open({}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) now_date.join(str(datetime.now())[:10].split(-)) now_timetime.localtime() trader_typetext[轮动方式] trader_wdaytext[每周轮动时间] moth_trader_timetext[每月轮动时间] specific_timetext[特定时间] yearnow_time.tm_year mothnow_time.tm_mon wdaynow_time.tm_wday dailynow_time.tm_mday if trader_type每天: print(轮动方式每天) return True elif trader_type每周: if trader_wdaywday: return True elif trader_wdaywday: print(安周轮动 目前星期{} 轮动时间星期{} 目前时间大于轮动时间不轮动.format(wday1,trader_wday1)) return False else: print(安周轮动 目前星期{} 轮动时间星期{} 目前时间小于轮动时间不轮动.format(wday1,trader_wday1)) return False elif trader_type每月轮动时间: stats for date in moth_trader_time: data.join(data.split(-)) if int(moth_trader_time)int(date): print(安月轮动 目前{} 轮动时间{} 目前时间等于轮动时间轮动.format(now_date,date)) statsTrue break elif int(moth_trader_time)int(date): print(安月轮动 目前{} 轮动时间{} 目前时间小于轮动时间轮动.format(now_date,date)) statsFalse else: print(安月轮动 目前{} 轮动时间{} 目前时间大于轮动时间轮动.format(now_date,date)) statsFalse return stats else: #特别时间 stats for date in specific_time: data.join(data.split(-)) if int(specific_time)int(date): print(安月轮动 目前{} 轮动时间{} 目前时间等于轮动时间轮动.format(now_date,date)) statsTrue break elif int(specific_time)int(date): print(安月轮动 目前{} 轮动时间{} 目前时间小于轮动时间轮动.format(now_date,date)) statsFalse else: print(安月轮动 目前{} 轮动时间{} 目前时间大于轮动时间轮动.format(now_date,date)) statsFalse return stats def get_buy_sell_stock(self): 获取买卖数据 with open({}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) buy_numtext[买入排名前N] hold_rank_numtext[持有排名前N] sell_rank_numtext[跌出排名卖出N] sell_valuetext[三低平仓] hold_limittext[持有限制] dfpd.read_excel(r持股数据\持股数据.xlsx,dtypeobject) df[证券代码]df[证券代码].astype(str) df_yjlpd.read_excel(r{}\原始三低\原始三低.xlsx.format(self.path)) sd_dictdict(zip(df_yjl[证券代码],df_yjl[三低])) trendtext[是否开启趋势轮动] df1df[df[可用余额]10] hold_stock_listdf[证券代码].tolist() def select_stock(x): 选择etf if x in hold_stock_list: return 持股 else: return 持股不足 try: del df[Unnamed: 0] except: pass trader_dfpd.read_excel(r{}\交易股票池\交易股票池.xlsx.format(self.path),dtypeobject) trader_df[证券代码]trader_df[证券代码].astype(str) try: del trader_df[Unnamed: 0] except: pass print(交易股票池*******************) print(trader_df) trader_df[选择]trader_df[证券代码].apply(select_stock) trader_dftrader_df[trader_df[选择]持股不足] selecttext[是否开启持股周期] hold_daily_limittext[持股持股周期天数] try: del trader_df[Unnamed: 0] except: pass if df1.shape[0]0: #卖出列表 sell_list[] #持股列表 hold_stock_listdf[证券代码].tolist() #排名列表 if select是: hold_dailydf[df[证券代码]stock][持股天数].tolist()[-1] if hold_dailyhold_daily_limit: sell_list.append(stock) else: print(目前持股 {} 没有大于{}.format(hold_daily,hold_daily_limit)) else: print(不启动持股限制) #跌破均线分析 ntext[跌破N日均线卖出] if trend是: for stock in hold_stock_list: try: hist_dfself.etf_fund_data.get_ETF_fund_hist_data(stockstock) modelsshape_analysis(dfhist_df) mean_linemodels.get_down_mean_line_sell(nn) if mean_line是: sell_list.append(stock) print({}跌破均线.format(stock)) else: pass except: pass else: print(**************************88不开启持股趋势分析) #三低平仓 for stock in hold_stock_list: valuesd_dict.get(stock,0) if valuesell_value: print(三低平仓 {} 三低{} 大于 平仓值{}.format(stock,value,sell_value)) sell_list.append(stock) else: print(三低平仓 {} 三低{} 小于 平仓值{}.format(stock,value,sell_value)) #跌出排名卖出N rank_dfpd.read_excel(r{}\三低\三低.xlsx.format(self.path),dtypeobject) sell_rank_stockrank_df[证券代码].tolist()[:sell_rank_num] if len(sell_rank_stock)0: for stock in hold_stock_list: if stock in sell_rank_stock: print({} 在持有排名里面.format(stock)) else: print({} 不在持有排名里面.format(stock)) sell_list.append(stock) sell_listlist(set(sell_list)) sell_dfpd.DataFrame() sell_df[证券代码]sell_list sell_df[交易状态]未卖 if sell_df.shape[0]0: print(卖出etf*****************) print(sell_df) sell_df[策略名称]self.name sell_df.to_excel(r卖出股票\卖出股票.xlsx) else: print(没有卖出etf) sell_df[证券代码]None sell_df[交易状态]None sell_df[策略名称]self.name sell_df.to_excel(r卖出股票\卖出股票.xlsx) hold_numdf1.shape[0] if hold_num0: av_buy_numhold_limit-hold_num av_buy_numav_buy_numsell_df.shape[0] if av_buy_numhold_limit: av_buy_numhold_limit else: av_buy_numav_buy_num buy_dftrader_df[:av_buy_num] else: buy_dftrader_df[:buy_num] buy_df[交易状态]未买 print(买入可转债*****************) df[证券代码]df[证券代码] print(buy_df) buy_df[策略名称]self.name buy_df.to_excel(r买入股票\买入股票.xlsx) return buy_df else: buy_dftrader_df[:buy_num] print(trader_df) buy_df[证券代码]buy_df[证券代码] buy_df[交易状态]未买 print(买入etf*****************) print(buy_df) buy_df[策略名称]self.name buy_df.to_excel(r买入股票\买入股票.xlsx) return buy_df def updata_all_data(self): 更新全部数据 with open(r{}/可转债三低策略设置.json.format(self.path),encodingutf-8) as f: comf.read() textjson.loads(com) selecttext[是否测试] if select是: self.save_position() self.save_balance() self.get_all_jsl_data() self.calculated_double_low() self.get_select_trader_type() self.get_del_qzsh_data() self.get_del_buy_sell_data() self.get_buy_sell_stock() else: if self.get_time_rotation()True: self.save_position() self.save_balance() self.get_all_jsl_data() print(今天{} 是轮动时间.format(datetime.now())) self.calculated_double_low() self.get_select_trader_type() self.get_del_qzsh_data() self.get_del_buy_sell_data() self.get_buy_sell_stock() else: print(今天{} 不是是轮动时间.format(datetime.now()))
http://www.zqtcl.cn/news/252685/

相关文章:

  • h5互动网站建设网站制作的教程
  • 大连网站设计公司双语外贸网站源码
  • 广元网站建设工作室湖北省建设用地预审网站
  • 保定清苑城市建设网站公司网站建立费用
  • 厦门找一家做网站的公司家在深圳论坛
  • 个人网站开发 服务器货源之家官网
  • 教育培训学校网站建设策划局域网 wordpress
  • 重庆建网站有哪些网站做曲线的源代码
  • 龙岩网站设计找哪家公司网站建设没有业务怎么办
  • 网站建设专业学什么建材 团购 网站怎么做
  • 电器工程东莞网站建设wordpress虚拟资源下载源码
  • 无限个网站虚拟空间网站运行维护
  • 宝思哲手表网站关于计算机网站建设的论文
  • uc投放广告网站要自己做吗dw制作企业网站
  • 山东网站制作南京软件外包公司
  • 铁岭建设银行网站网站验证码原理
  • 做网站需要什么专业方向的员工钱多网站
  • 网站建设合同要存档几年7星彩网站开发
  • 网站建设好后 如何验收什么网站可以做护考题
  • 网站安全怎么做wordpress代币插件
  • 吉林网站建设电话龙华网站建设专业定制企业
  • 个人导航网站怎么备案js调用wordpress文章列表
  • 网站微信推广方案衡水外贸网站建设
  • 怎么打造自己的网站如何做自已网站
  • 美容美发网站模板wordpress适合优化吗
  • 网站开发的著作权和版权沧州市做网站价格
  • 优客逸家网站源码酒吧装修
  • 深圳网站制作的公司怎么样开工作室做网站怎样找资源
  • 大连城乡建设局网站seo编辑招聘
  • 网站建设意见怎么在中国移动做网站备案