FAQ > 金融建模 > 应用案例 > 数据提取

Q:如何获取指定日“上证基金”的代码集合    

简述
如“上证基金”与“深证基金”这类属于市场板块,来源于交易所的数据,存放的是二级市场代码(即交易代码),板块中只记录最新成份,若需要取历史指定日的情况,则需要通过对已退市基金进行筛选获取所有符合这个市场的样本,然后再通过一级市场的基本面数据,进行是否运作的判断,下面以“上证基金”板块为例,进行一个简单的实现,供参考。
  • A:实现获取指定日2022-1-1日在市的“上证基金”板块成份股
      endt:=20220101T;
       funds:=getbk("上证基金");
       //从退市中找上交所基金代码
       tsfunds:=sselect thisrow from getbk("已退市基金") where LeftStr(thisrow,2)="SH" end;
       //合并得到所有上交所基金代码
       allJYCodes:=funds union tsfunds;
       //-获取一级代码
       AllJYCodes:=select thisrow as 'id',"OF"+RightStr(thisrow,6) as '一级' from allJYCodes end;
       //通过一级代码判断指定日是否在运作
       toFunds:= FundsOperateFunds(AllJYCodes[:,"一级"],EndT);
       //通过一级代码挑选出符合条件的二级市场代码
       return sselect ['id'] from AllJYCodes where ['一级'] in toFunds end;


    注:若需要实现指定日“深证基金”成份的获取,则只需将上面的"上证基金"变更成"深证基金",条件"SH"变更为"SZ"即可。