获取指定日申万一级二级三级指数代码对照表
实现方式:首先码获取申万一级二级三级行业代码对照表,再把行业代码转换为指数代码即可
参考:
FAQ:
Q: 如何获取指定日所有的申万一级/二级/三级行业代码及指定行业代码在指定日的成份股?
FAQ:
Q: 指定日申万行业代码与申万行业指数代码的相互转换
实现代码
endt:=20230321t;
swhy1:=GetBKByDate("SWHY.N",EndT);
rt:=array();
for i in swhy1 do
begin
hycode1:=swhy1[i];
name1:=StockNameByDate(hycode1,endt);
swhy2:=GetBKByDate(hycode1$".N",EndT);
for j in swhy2 do
begin
hycode2:=swhy2[j];
name2:=StockNameByDate(hycode2,endt);
swhy3:=GetBKByDate(hycode2$".N",EndT);
for k in swhy3 do
begin
hycode3:=swhy3[k];
name3:=StockNameByDate(hycode3,endt);
rt[x,"一级代码"]:=hycode1;
rt[x,"一级名称"]:=name1;
rt[x,"二级代码"]:=hycode2;
rt[x,"二级名称"]:=name2;
rt[x,"三级代码"]:=hycode3;
rt[x++,"三级名称"]:=name3;
end
end
end
rt[:,array("一级代码","二级代码","三级代码")]::= StockIndustryIndexID(mcell,endt);
rt:=select * from rt order by ["一级代码"],["二级代码"],["三级代码"] end;
return rt;
结果展示:
通过申万一级指数代码获取二级三级指数代码
实现方式:先把指数代码转为行业代码,再通过行业代码获取下级代码,最后把获取到的各级行业转为指数代码,实现过程参考上面的案例。
通过申万三级指数代码获取一级二级指数代码
实现方式:先把指数代码转为行业代码,再通过行业代码查询股票属性表获取上级属性代码,最后把获取到的各级行业代码转为指数代码
参考:FAQ:
股票行业分类信息
实现代码
endt:=20230321t;
index:="SW850131";
swhy3:=StockIndustryIndexID(index,endt);
swhy2:=vselect ["上级属性代码"] from infotable 138 of swhy3 end;
swhy1:=vselect ["上级属性代码"] from infotable 138 of swhy2 end;
rt:=array();
rt["一级代码"]:=StockIndustryIndexID(swhy1,endt);
rt["一级名称"]:=StockNameByDate(swhy1,endt);
rt["二级代码"]:=stockIndustryIndexID(swhy2,endt);
rt["二级名称"]:=StockNameByDate(swhy2,endt);
rt["三级代码"]:=index;
rt["三级名称"]:=StockNameByDate(index,endt);
return rt;
结果展示: