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

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

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

    2、非分级基金的主代码为基本面的“不同收费模式基金主代码”,用base(302032)获取。返回空字符串""的则表示主代码为该代码本身。
    ---------------------------
    2023-08-16升级:
    已提供公用函数获取基金主代码,函数:FundMasterCode,用户可直接调用。
    具体函数说明可参考:FAQ:FundMasterCode

    2023-08-16之前
    取数代码
    先封装一个函数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;
    // 返回: