FAQ > 金融建模 > 应用案例 > 指标或功能实现

Q:如何实现看盘软件中的分时均线(黄线)    

简述
 
 分时均线也称成本均线,由均价线和分时股价线两条线组成。
 均价线由黄色线表示,分时股价线由白色线表示。
   黄线:每分钟线开盘到截止时间点的均价=当日到截止时间点的成交金额/当日到截止时间点的成交量,(注:不支持指数的黄线)
   白线:分钟线收盘价
 本模型中选取分钟线行情数据。
  • 个股实现:
    范例: 获取个股指定日分时均线数据并作图实现
    模型代码:

    Function Stock_TimeSharingMovingAverage(stock,endt);
    Begin
    {**
      %% @explain(说明)分时均线也称成本均线,由均价线和股价线组成,本模型选择分钟级别数据。
              均价线(黄色): 某日总成交金额/某日总成交股数=每股的平均成交价格
              股价线(白色): 分钟线内最后一笔成交价
      %% @param(stock)(VarChar) 股票代码
      %% @param(endt)(DateT)  日期
      %% @return(array) 分钟级的股价线和均价线数据
    **}
      ov:=BackupSystemParameters2();
      setsysparam(PN_Cycle(),cy_1m());
     
      dt:=select ['StockID'],
           timetostr(TimeOf(["date"])) as "交易时间",
           ['price'] as "价格",
           ['sectional_amount']/['sectional_vol'] as "均价"
        from markettable datekey endt to endt+16/24 of stock end;
      return TSDN_DataFormatToPig(dt);
    End;

    说明: 单日分钟线数据的标准化
    代码:

    Function TSDN_DataFormatToPig(tradData);
    Begin
    {**
      %% @explain(说明)衍生正常交易日的分钟线,把数据于分钟线连接对应,返回完整的日分钟线数据
      %% @param(traddata)(array) 分钟线交易数据
      %% @return(array) 标准化的当前完整日分钟线数据
    **}

      ov:=BackupSystemParameters2();
      setsysparam(PN_Cycle(),cy_1m());
      dt:=select timetostr(TimeOf(["date"])) as "交易时间"
          from markettable datekey 20210305.0930t to 20210305.1530t
          of "SZ000001" end;
      Data:= select [2].*,[1].['交易时间'] from dt left join tradData on ([1].['交易时间'] = [2].['交易时间']) end;
      Data[:,'StockID']:=tradData[0,'StockID'];
      v:=tradData[length(tradData)-1,'交易时间'];
      lastTime:=mfind(dt,mcell=v,false)[0,0];
      Data::=ifnil(mcell)?(mrow>lastTime?nil:0):mcell;
      return Data;
    End;

    实现案例: 获取"完美世界"在2021-04-19的分钟线分时均线走势数据
    代码:
    return Stock_TimeSharingMovingAverage("SZ002624",20210419t);

    案列图形:

    附件:
    分时均线: 附件:Stock_TimeSharingMovingAverage.tslfunc
    分钟线标准化: 附件:TSDN_DataFormatToPig.tslfunc