FAQ > 金融建模 > 建模问题 > 基金相关

Q:如何获取基金的主代码    

【简述】主代码的应用见FAQ:Q:天软基金定期报告取数代码说明
获取指定基金代码对应的取数主代码,具体实现如下。
  • A:
    主代码的应用见FAQ:Q:天软基金定期报告取数代码说明
    获取基金主代码,分为以下两类:
     1、分级基金的主代码为“母基金代码”,用base(302035)获取。返回空字符串""的则表示主代码为该代码本身。
      (分级基金按“交易方式”包含“创新型开放式”和“创新型封闭式”。深圳的创新型开放式基金一般不上市交易)

     2、非分级基金的主代码为基本面的“不同收费模式基金主代码”,用base(302032)获取。返回空字符串""的则表示主代码为该代码本身。

    取数代码
    先封装一个函数MasterFundCode,参数为Fund基金代码:

    Function MasterFundCode(Fund);
    Begin
       //本函数实现逻辑为有主代码则取主代码,否则返回基金代码Fund本身。
       // 获取基金主代码
       with *,array(PN_Stock():Fund) do
       begin
          r:=base(302035);   //  母基金代码
          if isstock(r) then return r;
          r:=base(302032);   //  不同收费模式基金主代码
          if isstock(r) then return r;
          return fund;  //  基金本身代码
       end
    end



    范例一:单基金主代码
     
    // 获取OF000004的主代码
       Fund:="OF000004";
       return MasterFundCode(Fund);
    // 返回:"OF000003"


    范例二:多基金主代码

       Fundarr:=GetBK("开放式");
       // 获取各基金主代码
       return select thisrow as "基金代码",
              MasterFundCode(thisrow) as "基金主代码"
              from Fundarr end;
    // 返回: