范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python量化行业温度计自动生成,跟踪市场温度

  每个投资者都知道,投资不能盲目投资瞎投资,不知道市场状态,市场当前所处的历史位置,不知道现在的市场情绪,长期以往是很难获得投资成功的,因此我们就要不断的研究,去认识市场,去感知市场,与市场同步,这样可能长期下去,或许可能让投资清楚明白。
  那么作为一个量化投资者来说,我们该如何了解市场的位置和状态呢。YU股思基开发了一个行业市场温度计,以此来跟踪市场所处的历史水平和位置,每个人关注的因子都不太一样,这里仅仅是YU股思基的一个方法,这里风分享给大家。
  Python量化实现行业温度计自动生成
  行业温度计实现主要逻辑:
  1.获取31个申万一级行业的估值数据市盈率PE市净率PB计算任意历史区间的估值数据水位(可设置)YU股思基使用的是滚动近五年的数据
  2.根据市盈率和10年期国债收益率计算行业ERP因子和因子所处水位依然是近五年的水位
  3.获取每日行业的涨跌幅和今年以来的涨跌幅关注行业的当前行情
  4.按照三个因子PE、PB、ERP三个因子的水位分配权重30%、30%、40%,得到31个行业综合温度计水平和位置
  Python量化实现代码:
  1.导入相关模块和库设置金融数据接口 import pandas as pd import tushare as ts import akshare as ak import time import datetime from dateutil.relativedelta import relativedelta import warnings warnings.filterwarnings("ignore") #忽略弃用模块警告   #tushare接口授权 token = "你的接口" pro = ts.pro_api(token=token) ts.set_token(token=token) #使用复权行情必须设置接口token
  2.定义一个类功能是:计算某个时间的固定窗口期的前一个时间,时间间隔可以是年月日  """ 定义一个类,功能是:计算某个时间的固定窗口期的前一个时间,时间间隔可以是年、月、日 """   class Cal_Last_Date():     #类的初始化     def __init__(self,date,delta_num): #这个是类的特殊方法,在的类的实例化时即被调用         self.date = date         self.delta_num = delta_num       #以年为间隔     def datedelta_by_year(self):         end_date = pd.to_datetime(self.date) #用pandas把字符串时间转换为日期格式         start_date = (end_date + relativedelta(years = self.delta_num)).strftime("%Y%m%d")         # print(start_date)         return start_date       # 以月为间隔     def datedelta_by_month(self):         end_date = pd.to_datetime(self.date)  # 用pandas把字符串时间转换为日期格式         start_date = (end_date + relativedelta(months = self.delta_num)).strftime("%Y%m%d")         # print(start_date)         return start_date       # 以天为间隔     def datedelta_by_day(self):         end_date = pd.to_datetime(self.date)  # 用pandas把字符串时间转换为日期格式         start_date = (end_date + relativedelta(days = self.delta_num)).strftime("%Y%m%d")         # print(start_date)         return start_date
  3.定义一个计算一组数据分为数的函数和方法  """ 计算每个数在一组数据中的分位值 """   def cal_percentile(data_list):     num_percentile_list = []     sort_data_list = sorted(data_list)     # print(sort_data_list)     for num in data_list:         num_index = sort_data_list.index(num)         # print(num_index)         num_percentile = round(((num_index + 1)/len(sort_data_list))*100,2) #百分位值         # print(num_percentile)         num_percentile_list.append(num_percentile)     return num_percentile_list
  4.定义一个获取申万31个一级行业的历史行情的方法  """ 行业表现:申万一级行业,历史行情 """   def get_industry_themometer_info(date):     #获取最终字段     columns = ["交易日期","行业名称","收盘价","涨跌幅(%)","PE","PE_温度","PB","PB_温度","ERP","ERP_温度","今年以来收益(%)","行业综合温度"]     df = pd.DataFrame(columns=columns)     # 10年期国债收益率     bond_zh_us_rate_df = ak.bond_zh_us_rate()     df_bond_10 = bond_zh_us_rate_df[["日期", "中国国债收益率10年"]]     df_bond_10.columns = ["trade_date", "Bond10Year"]     df_bond_10["trade_date"] = df_bond_10["trade_date"].astype(str)     df_bond_10["trade_date"] = df_bond_10["trade_date"].str.replace("-", "")     #申万31个一级行业代码     sw_industry_code_list = ["801120.SI","801980.SI","801200.SI","801770.SI","801760.SI","801750.SI","801730.SI","801140.SI","801050.SI",                              "801010.SI","801130.SI","801110.SI","801030.SI","801080.SI","801230.SI","801740.SI","801790.SI","801960.SI",                              "801880.SI","801710.SI","801040.SI","801150.SI","801210.SI","801890.SI","801170.SI","801970.SI","801160.SI",                              "801780.SI","801720.SI","801180.SI","801950.SI"]     #设置计算时长     cal_date = Cal_Last_Date(date=date, delta_num=-5)     last_5years_date = cal_date.datedelta_by_year()     for code in sw_industry_code_list:         columns_for = ["交易日期","行业名称","收盘价","涨跌幅(%)","PE","PE_温度","PB","PB_温度","ERP","ERP_温度","行业综合温度"]         df_for = pd.DataFrame(columns=columns_for)         #获取当日行情和年初第一天行情,计算今年以来收益率         df_sw_industry = pro.sw_daily(ts_code=code, start_date=date, end_date=date)         start_date_2022 = "20220104"         df_sw_industry_start_date_2022 = pro.sw_daily(ts_code=code, start_date=start_date_2022, end_date=start_date_2022)         # print(df_sw_industry_start_date_2022)         pct_change_2022 = round(((df_sw_industry["close"][0]-df_sw_industry_start_date_2022["close"][0])/df_sw_industry_start_date_2022["close"][0])*100,2)         # print(pct_change_2022)         # 计算各指标近5年的分位数温度,PE,PB,ERP         #获取五年前的时间,并获取分位数据         df_sw_industry_5years = pro.sw_daily(ts_code=code, start_date=last_5years_date, end_date=date)         pe_list = df_sw_industry_5years["pe"].tolist()         pb_list = df_sw_industry_5years["pb"].tolist()         pe_percentile_list = cal_percentile(pe_list)         pb_percentile_list = cal_percentile(pb_list)         df_sw_industry_5years["pe_percentile"] = pe_percentile_list         df_sw_industry_5years["pb_percentile"] = pb_percentile_list         #计算ERP         df_sw_industry_5years_ERP = df_sw_industry_5years.merge(df_bond_10,how="left",on="trade_date")         df_sw_industry_5years_ERP["ERP"] = round(((1/df_sw_industry_5years_ERP["pe"])*100-df_sw_industry_5years_ERP["Bond10Year"]),2)         ERP_list = df_sw_industry_5years_ERP["ERP"].tolist()         ERP_percent_list = cal_percentile(ERP_list)         df_sw_industry_5years_ERP["ERP_percentile"] = ERP_percent_list         df_sw_industry_5years_ERP["Thermometer"] = round(df_sw_industry_5years_ERP["pe_percentile"]*0.3 + df_sw_industry_5years_ERP["pb_percentile"]*0.3 + df_sw_industry_5years_ERP["ERP_percentile"]*0.4,2) #按照各指标赋予权重         df_sw_industry_5years_ERP = df_sw_industry_5years_ERP[["trade_date","name","close","pct_change",                                                                "pe","pe_percentile","pb","pb_percentile","ERP","ERP_percentile","Thermometer"]]         #数据处理结果         df_result = df_sw_industry_5years_ERP         df_result.columns = columns_for         # df_result["今年以来收益"] = pct_change_2022         df_for.loc[len(df_for)] = df_result.loc[0].values         df_for["今年以来收益(%)"] = [pct_change_2022]         #对结果数据字段重新排序         df_for = df_for[["交易日期","行业名称","收盘价","涨跌幅(%)","PE","PE_温度","PB","PB_温度","ERP","ERP_温度","今年以来收益(%)","行业综合温度"]]         df.loc[len(df)] = df_for.loc[0].values     # print(df)     return df
  5.定义量化的主逻辑代码  if __name__ == "__main__":     # 记录程序执行时间     start_time = time.time()     print("行业市场综合温度计开始执行.....")       #保存最终结果数据     ExcelWriter = pd.ExcelWriter("Industry_Thermometer.xlsx")     # 获取当天日期     today_date = datetime.datetime.now().strftime("%Y%m%d")     # 交易日     Last_trade_date = get_last_trade_date(date=today_date)       current_time = time.time()     print("程序已执行:" + str(round(current_time - start_time, 2)) + "s")       df = get_industry_themometer_info(date=Last_trade_date)     df.sort_values(by="涨跌幅(%)",inplace=True,ascending=False) #按涨跌幅降序排列     df["序号"] = [x for x in range(1,len(df) +1)] #     df = df[["序号","交易日期","行业名称","收盘价","涨跌幅(%)","PE","PE_温度","PB","PB_温度","ERP","ERP_温度","今年以来收益(%)","行业综合温度"]]       current_time = time.time()     print("程序已执行:" + str(round(current_time - start_time, 2)) + "s")       df.to_excel(excel_writer=ExcelWriter,sheet_name="温度计",index=False,startrow=1)     ExcelWriter.close()       current_time = time.time()     print("程序已执行:" + str(round(current_time - start_time, 2)) + "s")       print("当日温度计数据已生成,请查看....")
  (想要获取完整代码关注YU股思基,私信获取)
  Python量化实现结果如下:
  通过结果大家可以每日跟踪市场各行业和行情,并清楚的看出行业的位置对做好行业轮动具有很好的参考意义。
  但是大家要注意的是,没有任何一个方法跟踪市场是完全正确的,只能是对我们的认知起到很好的辅助作用。
  坚持理性研究,量化投资,做有价值的事情,做正确的事情,坚定信心,静待开花结果。
  免责声明:投资有风险,投资需谨慎!本文仅为根据市场公开资料及个人理解研究分析,不作为投资依据,文中涉及到的标的仅作为举例,不构成投资建议,所提到的观点仅代表个人的意见,所涉及标的不作推荐,风险自负。
  坚持不易,点赞、关注、分享三连击!

周五3013点收盘,下周初还会涨今天的放量下影大阳线,量能还不是太大!但距离2900点已经不愿,也许大盘在这里能够企稳!俄乌不出现真转机,一定不要大意!按技术,现在的上面层层是压力,目前的量不足以冲太高!3042冻品在线林志勇从业20年,预制菜的核心打法与背后陷阱疫情三年,居家场景下的需求被放大,C端预制菜也引来了资本的爆炒,成为这两年最活跃的细分赛道之一。其实广义的预制菜,像泡馍这种即食类食品最早甚至可以追溯到西周,面向B端的半成品预制菜11月底前完成减租工作!国资委发文国务院国资委日前发布关于进一步做好2022年服务业小微企业和个体工商户房屋租金减免工作的通知(以下简称通知),就切实将服务业小微企业和个体工商户房屋租金减免到位做出详细安排。通知要A股A股放量滞涨,港股大金融下跌叠加A股白酒下跌压制A股上涨今日盘面分析很简单一句概括,大金融和白酒打了一个平手(有涨有跌,互相抵了),但是市场情绪高涨,外部环境稳定,因此多头稍占优势震荡了一天!明确观点未来三日是多空争夺的关键日,空头利用李林出售火币全身而退?巨额涉税问题应当好好盘一盘10月8日,火币创始人李林在朋友圈表示,已完成HuobiGlobal的股权转让及资产交割事宜,百域资本(AboutCapital)旗下基金成为HuobiGlobal的第一大股东和实中国成第二汽车出口大国,也是对外开放重大成果新京报专栏近年来,我国在汽车领域对外开放的水准进一步提升,促使中国汽车行业迎来巨变。柳州一货运中心的新能源汽车停放场。图新华社文刘远举中国汽车出口数量猛增。海关总署公布的数据显示,今年18月陶汉林20分8板保罗26分5板4助高诗岩5分10助,山东10493北控10月13日下午,新赛季CBA联赛展开第二轮的精彩较量,山东高速迎战北京控股。第一轮比赛山东男篮不敌深圳男篮,王晗带队首场遭遇败绩,北控男篮则不战而胜广东男篮。山东男篮首发陶汉林焦18月青岛各区县财政收入城阳区第3,市北区47。4亿,平度市38亿青岛,为副省级城市,计划单列市和特大城市年。听着这些头衔,相比大家就已经知道了,青岛在发展上颇具优势。确实,在很多人的印象中,都知道青岛是经济发展水平较为突出的城市。在今年上半年,来一斤母爱我们以为一直会在的母爱,随时可能消逝这是一本迟到的画册,作者孙宇是一名原创漫画作者插画师视觉设计师。他画过很多画,唯独没有在妈妈生前为她画过一幅,这也成为了他此生的遗憾。2011年,在妈妈去世2年后,他创作了来一斤母怀孕期间需要注意的六大事项1千万不要随意用药如果不是有备而来,许多孕妈妈至少要到怀孕后45周才会发觉已经受孕,而早孕的症状,恰恰跟普通的感冒症状相似。许多孕妈妈误以为自己生病了而乱服药物的话,会给胎宝宝带来让老爷爷带娃发生的后果,他看棋入了迷,把孙子丢了,急,急,急带孙乐。莫忘乐极生悲现在很多年轻的父母都忙于工作,有的背井离乡,去大城市打拼。因此把孩子给老人带,成为了现如今最普遍的一种家庭带娃方式,因为父母忙于事业,没时间照顾孩子,而老人比较
我在日本看日本日本的手帐文化书店里的各种手帐日本人有把计划写在本子上的习惯,这个本子的名字叫手帐。主妇的手帐写着一家的茶米油盐,孩子的课外班,自己的朋友欢聚上班族的就是工作往来,行程计划像我这种上午是主妇做家口袋上有500元人民币能干啥?在尼泊尔,这些待遇你都能享受每一个国家都有着自己的法律,也有着自己的特色,所以大家再去某一个国家旅游的时候,一定要尊重他们,将自己融入到里面去。我们现在的生活都好很多了,想要去旅游就能够去旅游的家庭也越来越多河南怪象酒桌上既不见张弓,也不见杜康,相反这3瓶酒备受偏爱相信很多人都知道河南,这个地方有非常多的美食,比如胡辣汤,非常厉害,有其他地方模仿河南的胡辣汤,但做来做去都不是那个味道,胡辣汤也成为了河南的一种标志性美食。河南不仅美食多,风景也乐陵15分钟美育圈圈出三美新生活美德花开香满园,同心掬得满庭芳藏古今过千帆,大美乐陵护君安,金秋时节,乐陵市城区的元宝湖公园内,一条条镌刻着美德标语的红色歇脚长凳与公园的景色相映成趣,为城市增添了些许美德韵味。实7年老司机苦口婆心网约车的黑暗时刻,新手小白快快跑远喊着不赚钱的网约车行业,终究又成了不少小白眼里的香饽饽,现在经济环境下行,不少失业人员打算去做个自由的兼职。比如外卖员快递小哥网约车司机,都成了不少人眼里自由又赚钱的好工作。截止到韵起黄河之滨律动陇原大地原标题文化视点韵起黄河之滨律动陇原大地杂技剧九色鹿剧照京剧盘龙岭剧照儿童剧白雪公主剧照陇剧大禹治水剧照音乐舞蹈史诗致敬百年呈现的舞剧丝路花雨场景新甘肃甘肃日报记者魏雅斐贾鑫黄河之滨学习宣传贯彻二十大精神丨河南省政协委员李学武坚守初心不断创新用精品力作讲好黄河故事编者按金秋时节,举世瞩目的中国共产党第二十次全国代表大会在北京人民大会堂开幕,习近平代表第十九届中央委员会向大会作报告。河南省各级政协组织政协各参加单位和广大政协委员通过各种渠道收触摸黄河文化的根和魂读国宝中的黄河文明作者张新斌(河南大学黄河文明与可持续发展研究中心特聘研究员,河南省社会科学院二级研究员)编者按发源于青藏高原巴颜喀拉山北麓的黄河,从涓涓细流,到奔腾入海,自西向东分别流经青海四川甘你好,黄河守护人!丨跪河凿冰跳河堵洞,他们护人民胜利渠两岸安澜编者按我们坚持绿水青山就是金山银山的理念,坚持山水林田湖草沙一体化保护和系统治理,生态文明制度体系更加健全,生态环境保护发生历史性转折性全局性变化,我们的祖国天更蓝山更绿水更清。党后半生最高级的炫富卡里有钱夜里好眠家中无怨人这一生究竟应该怎样度过,每个人的看法都不一样。这些年选择修行的人越来越多,每个人都尝试在自己生活里修出自己的人生答案。生活的节奏让我们越来越忙碌,我们每天做着各种各样的计划,绞尽混到最后,独来独往没朋友的人,都不简单情感话题解读,带您走进更多的正向情感世界!我是你的情感解忧人,但你要懂得放过你自己!文风停夜泊原创抄袭必究成年人的世界,最厌烦伪装。但又有很多时候,不得不伪装!只是,当一个人真的可