功能:通过times.py中的 ,从windapi提取日期数据,对日、周、月、季日期数据进行维护 数据形式:上交所的交易日数据,日、周末、月末、季度末;其中周末、月末含每一年的第几周、第几个月 notes:note:月末不一定是当周周末交易日! input=ouput:日期列表文件:file=C:\rc_2023\rc_202X\ciss_web\CISS_rc\db\db_times\date_trade.xlsx
证券代码数据表通常保存在以下几类文件: 1,基于内部策略:内部数据目录下、或对应单个策略的代码列表,如 C:\rc_2023\rc_202X\data_pms\wind_terminal\quote\0list_code.xlsx 2,基于外部数据:各类终端导出、落地数据库内的的代码列表、 3,基于外部规则的数据:指数成分股、特定代码列表例如基金季度持仓股票、机构调研列表等。
策略和组合对应文件,file=C:\rc_2023\rc_202X\data_pms\pms_manage.xlsx 指标-基金筛选指标文件,file=C:\rc_2023\rc_202X\data_pms\fund_indi_manage.xlsx
基于给定的日期列表,股票代码列表,通过本地各类excel数据文件,存入统一的涨跌幅数据表,格式为index=日期,column=code 数据表格table_name = quote_ashares_stock_fund_index | db_name=db_quote.sqlite3 管理文件,file=C:\rc_2023\rc_202X\data_ciss_exhi\manage_db_quote.xlsx
逻辑:给定代码列表文件,对每个代码文件,提取缺失的的区间行情数据,主要是收盘价和涨跌幅。 1,核心资产 |0list_code.xlsx;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 2,
根据股票代码列表和日期区间,提取相关的数据 代码列表文件:sheet_name=code_list,date_list; file=C:\rc_2023\rc_202X\data_ciss_exhi\manage_db_quote.xlsx OUTPUT:1,excel-log文件,index是日期,column=code,数据完整1,不完整0.5,无数据0; 2, 数据文件按年保存成sqlite.db和 notes:1,短期数据可通过windapi实现跟踪交易日的涨跌幅,定期长期历史数据可以通过tb-大富翁数据获取。 2,确保从wind终端的K线图导出时,列名为【代码 名称 日期 开盘价(元) 最高价(元) 最低价(元) 收盘价(元) 涨跌幅 成交额(百万) 成交量(股) 】
选中不同数据来源后,根据目录内的文件名导入数据 也可以限制代码范围或日期范围:sheet_name=code_list,date_list; file=C:\rc_2023\rc_202X\data_ciss_exhi\manage_db_quote.xlsx notes:短期数据可通过windapi实现跟踪交易日的涨跌幅,定期长期历史数据可以通过tb-大富翁数据获取。
TODO:print 区间内股票数量、交易日数量,百分比 INPUT:给定代码列表、日期列表,查询无记录项,返回 df_missing(index=dates,columns=code_list) OUTPUT: input_db_quote_check_completeness_by_code_date
定期维护从各个数据源获得的数据库
input:代码列表=code_list, sheet=code_list,file=C:\rc_2023\rc_202X\data_ciss_exhi\manage_db_quote.xlsx output:table=quote_ashares_stock_fund_index;file=db_quote.sqlite3 参考资料:历史日期列表文件:file=C:\rc_2023\rc_202X\ciss_web\CISS_rc\db\db_times\date_trade.xlsx TODO:print 区间内股票数量、交易日数量,百分比
主要通过以下数据网页维护: Layui-宏观基本面信息;MultiAsset and Macro|layui-table Layui-行业、风格、市场分析;Industry-Style-Market|layui-table Layui-个券基本面跟踪;Stock Fundamentals|layui-table 基本面事件和股票池,包含上述3个 layui-基金和FOF研究
核心数据目录包括:
功能:新建、调整、删除Sqlite数据库表。 研究信息网页&表格信息;分类:1,个券事件;2,股票池;3,市场行业风格;4,基金时间序列-主动和指数;5,大类资产; task名称 :web网页和sql数据库联动。excel模型来源:file=rc_个券推荐行业事件.xlsx; todo:2种数据写入方式:1,逐条手动网页输入;2,上传excel文件,用python脚本批量写入sqlite。
表格生成方式gen_type有2种:1,dict,根据输入的字典dict_column构建;2,excel:根据sheet里导入的df表格构建 Excel方式:先在Excel文件中定义表格名称和columns;sheet=table_column;file=C:\rc_2023\rc_202X\ciss_web\ciss_exhi\db_manage.xlsx Dict方式:输入 新建表格dict内 内容 notes:1,sheet=table_column中,包含了 所有表格建立时的column设置;sheet=table_column,file=C:\rc_2023\rc_202X\ciss_web\ciss_exhi\db_manage.xlsx 2,若使用dict方式新建表格,需要确保输入字符串 str1,满足 type( eval(str1) ) = dict,例如 str1= "{'name' : 'jim', 'sex' : 'male', 'age': 18}"
结果:
step 1:选出某几列数值相同的列的最大的id值 step 2:根据返回的列的id,逐一删除sql中的记录
给定表格名称和数据源,将excel文件中数据导入sqlite的table Notes:注意将文本内容里的空格删除、单引号用^替代
例子:conn = sqlite3.connect("test.db") #连接数据库,若test.db不存在,则会创建该数据库
{......} 通过FileGee文件同步备份软件对2~7类数据目录进行维护,但较大的数据文件目录(db_wind) 可能发生同步不准确的情况。
主目录主要包括【CISS_rc,ciss_web,ciss_exhi,static,ciss_vue】,其中: CISS_rc:各类策略应用apps、策略引擎bin、配置文件config、数据管理db、文档docs、测试脚本tests、 ciss_web:Django网站相关python脚本 ciss_exhi:用于网页展示投研系统、策略、数据的python脚本 static:静态网页html,javaScript,csv和json文件 ciss_vue:前端框架vue及相关文件。
个人或团队在当前所在机构完成和维护的各类报告。
保存CISS系统策略计算输出的数据文件,例如主动基准模型ABM的各个组合、动量策略40d_16d的 各个组合。 notes:历史组合数据因为设计成保存每日持仓和交易文件,单个组合大小可以达到1gb,有较大的改进空间。
主要数据目录【D:\CISS_db\】包括:
买方和卖方研究报告:行业、宏观、量化、债券、基金等
主要有海通、中信每周邮件发送基金排名数据 文件:海通证券-基金业绩排行榜(2020-02-09)(更新版).xlsx;海通证券-基金超额收益排行榜(20200209).xlsx 文件:中信证券 公募基金仓位监测数据20200207.xlsx 文件位置:D:\TOUYAN\基金排名
Wind终端可以高效地获取许多梳理后地数据,并避免重复劳动。但问题在于Wind终端通常 只提供最新的专题数据,并且某些时效性高的新内容不能马上获得。例如200214在线办公产业链 很热门,但是在板块股票列表中还没有。
指数成分股票:数据来源:Wind终端——股票——板块报价 沪深股票: 科创板——按科创板主题行业 中信证券行业类: 中信证券特殊类:CS行业类别{金融地产、资源能源、原材料、设备制造、工业服务、交通运输、消费、科技};风格{金融、周期、消费、成长、稳定} 地域类:福建——福州 美国股票——美股指数成分: 标普指数:SP500、标普100、标普中型股400、标普小型股600 其他指数:费城半导体指数SOX.GI;罗素1000,2000,3000
基金筛选方法: 基金:基金概念类——按投资标的分(概念类),有MSCI和科创板等但行业分类只有消费、环保、医疗 基金:Wind主题基金——Wind行业板块主题基金,Wind概念板块主题基金。感觉可能是以持仓股是否最多属于该板块来定的, 美股:全球股票——中国概念股——美国中资产业类;主要包括:网络游戏、电子商务、互联网、SNS社交网络、房地产、新能源、互联网视频、生物技术、制药、文化传媒。 数据来源:Wind终端——股票——板块报价
Facset数据 | D:\db_factset 2018Q3之前财务和权息数据4abm model | D:\db_dzh_dfw 论文目录 | D:\paper python相关模块 | H:\py_modules 相关软件 | H:\softs
常用功能:1,Python连接: path="C:\\rc_HUARONG\\rc_HUARONG\\ciss_web\\" ;file="db.sqlite3";import sqlite3;conn = sqlite3.connect(path+file); c =conn.cursor() 2,获取所有表名称:1,c.execute("select name from sqlite_master where type='table' order by name"); list = c.fetchall(); type(list[0]) ==tuple; type(list[0][0]) ==str, [('auth_group',), ('auth_group_permissions',), ('auth_permission',), ('auth_user',), ('auth_user_groups',), ('auth_user_user_permissions',), ('ciss_exhi_asset',), ('ciss_exhi_basics',), ('ciss_exhi_bond',), ('ciss_exhi_bond_derivative',), ('ciss_exhi_cash_tool',), ('ciss_exhi_db',), ('ciss_exhi_group',), ('ciss_exhi_index',), ('ciss_exhi_index_derivative',), ('ciss_exhi_membership',), ('ciss_exhi_multi_asset',), ('ciss_exhi_person',), ('ciss_exhi_portfolio',), ('ciss_exhi_stock',), ('ciss_exhi_stock_derivative',), ('ciss_exhi_stra_port_links',), ('ciss_exhi_strategy',), ('ciss_exhi_user_ciss',), ('django_admin_log',), ('django_content_type',), ('django_migrations',), ('django_session',), ('sqlite_sequence',)]
file_name |file_path D:\CISS_db_backup D:\db_wind_备用
其他个性化数据目录:
1,新建数据库文件,也可以直接复制'db.sqlite3' 2,数据库配置:"settings.py"文件中DATABASES = {}设置: "ciss_db":{ 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db_funda.sqlite3'), }, 3,设置数据库的路由规则:
基本面和行业研究等定性数据,特别是特定的数据表格,截至t时间的数据可能在未来t+1, t+2的时间都需要对图表加入数据并更新。基于目前的技术能力和时间成本,可以主要用 “Excel-原始数据处理 --> csv标准数据--> python脚本转换成json --> html展示json数据”