量化中的“赛道论”:用Baostock免费进行行业分类与轮动研究
量化行业分类及轮动是量化投资中的核心策略之一,旨在通过分析宏观经济周期、市场情绪和行业特性,动态调整行业配置以获取超额收益。以下是关键要点:
一、行业分类标准
周期性行业:如汽车、房地产、钢铁等,经济扩张期表现优异,衰退期表现较差。
成长性行业:如科技、医药,通胀下降时受益于贴现率降低,表现突出。
利率敏感性行业:如银行、消费,在货币政策宽松的复苏阶段表现较好。
资产类行业:如采矿业(对金属价格敏感)、能源业(对油价敏感),与特定资产价格强相关。
二、轮动策略逻辑
1、宏观经济驱动:
货币供应量(如M2增速)是重要指标,扩张期配置周期性行业,紧缩期转向非周期性行业(如公用事业、消费)。
经济周期中,行业轮动遵循“先导行业→跟随行业”的链条,例如基建投资带动钢铁、机械,进而传导至消费、文化等。
2、市场情绪与技术指标:
通过量价因子(动量、资金流、波动率等)捕捉短期趋势,例如2025年国金模型通过双周频率轮动,优选传媒、有色等板块。
3、量化模型应用:
马尔可夫链可量化状态转移概率,预测行业轮动规律。
下面以Baostock为例,进行行业分类及轮动研究:
import baostock as bs
import pandas as pd
登陆系统
lg = bs.login()
显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
获取行业分类数据
rs = bs.query_stock_industry(code="sh.600000", date="")
print('query_stock_industry error_code:'+rs.error_code)
print('query_stock_industry respond error_msg:'+rs.error_msg)
打印结果集
industry_list = []
while (rs.error_code == '0') & rs.next():
获取一条记录,将记录合并在一起
industry_list.append(rs.get_row_data())
result = pd.DataFrame(industry_list, columns=rs.fields)
结果集输出到csv文件
result.to_csv("D:/stock_industry.csv", encoding="gbk", index=False)
print(result)
登出系统
bs.logout()

