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

Q:如何统计区间内每日大小单流入流出数据    

简述
本案例中,对于大小单的判定阀值:
1.小单:小于4万元
2.中单:4-20万元
3.大单:20-100万元
4.超大单:大于100万元
选取成交明细中满足条件并按日线,买卖标识汇总成交金额数据
  • A:天软中,统计区间主买与主卖需要通过交易明细的主买卖标识方向进行区分,而大小单则需要根据成交量或成交额进行区分汇总。

    本文针对大小单数据做了一些常用场景的实例供用户参考使用,用户可下载下面附件中的函数包,导成用户函数后使用。
    模型附件:附件:大小单流入流出文件模型.tslfunc
    其中示例与模型对照说明如下:
    范例函数名功能说明应用方向
    实现一Stock_BuyAndSellTracking指数或股票组合在指定区间每日大小单流入流出可汇总多个代码数据,指数数据用成份股汇总
    实现二Stock_BuyAndSellminuteTracking获取个股指定日分钟线大小单流入流出数据统计个股分钟线数据
    实现三BK_BuyAndSellminuteTracking获取板块/指数指定日分钟线大小单流入流出数据通过成份股数据汇总,支持网格计算
    实现四Indexs_BuyAndSellTracking获取指数列表指定日大小单流入流出数据统计多个指数数据,支持网格计算
    实现五Indexs_LargeOrderNetInflow获取指数列表指定日大单净流入数据统计多个指数,(大单+超大单)的数据,支持网格计算

    使用示例及结果的展示
    实现一:支持自由组合汇总或指定指数的一个大小单统计情况
    定义:Stock_BuyAndSellTracking(stock,begt,endt):Array
    参数:
    Stock:字符串或数组,当计算指数时,可直接输入指数代码即可,若是股票组合,则为代码序列。
    如array("SZ000001","SZ000002")。
    begt:date,开始日
    endt:date,截止日
    范例
    范例01:
      //获取指数沪深300在指定区间内的每日大小单数据
      return Stock_BuyAndSellTracking("SH000300",20240901T,20240912T);

    结果:

    范例02:
    //获取自定义组合指定区间内的每日大小单数据
      return Stock_BuyAndSellTracking(array("SZ000001","SZ000002"),20240901T,20240912T);
    //PS:若计算个股,第一个参数可以通过两种方式实现,如"SZ000001"或array("SZ000001")


    实现二:证券/证券组合指定日分钟线大小单数据
    定义:Stock_BuyAndSellminuteTracking(stock,endt):array
    参数:
    Stock:字符串或数组,若是股票组合,则为代码序列,如array("SZ000001","SZ000002")。
    endt:date,指定日
    范例
      //获取个股指定日分钟线流入流出大小单数据
      return Stock_BuyAndSellminuteTracking("SZ000001",20240529T);



    实现三:市场/指数指定日分钟线大小单数据汇总
    定义:BK_BuyAndSellminuteTracking(bkname,endt,GridNo):array
    参数:
    bkname:字符串,板块名称/指数代码
    endt:date,指定日
    GridNo:int,网格数
    范例
      //上证50指定日大小单数据汇总
      return BK_BuyAndSellminuteTracking("SH000016",20240529T);



    实现四:指数列表指定日大小单流入流出数据
    定义:Indexs_BuyAndSellTracking(Indexs,endt,GridNo):array
    参数:
    Indexs:字符串数组,指数列表
    endt:date,指定日
    GridNo:int,网格数
    范例
      //三个指数指定日大小单数据,使用5个网格计算
      indexs:=array("SH000001","SZ399001","SH000300");
      return Indexs_BuyAndSellTracking(indexs,20250704t,5);


    实现五:指数列表指定日大单净流入数据
    定义:Indexs_LargeOrderNetInflow(Indexs,endt,GridNo):array
    参数:
    Indexs:字符串数组,指数列表
    endt:date,指定日
    GridNo:int,网格数
    范例:
      //获取指数列表指定日大单净流入
      indexs:=array("SH000001","SZ399001","SH000300");
      return Indexs_LargeOrderNetInflow(indexs,20250625t,5);



    效率优化
    在统计指数及指数列表数据时由于计算量较大执行时间会较久,盘中想要快速获取结果时可以使用模型接口的网格数进行优化
    使用网格加速效率对比
    表格数据单位(秒:s)
    网格数上证指数指定日分钟线大小单数据指数列表指定日大小单数据
    没有网格169.4443229.1876
    286.395298.1489
    451.727872.5564
    828.682668.2091

    网格调用示例代码
    示例1:获取上证指数指定日分钟线大小单数据
      GridNo:=8; //网格数
      return BK_BuyAndSellminuteTracking("SH000001",20250703t,GridNo);


    示例2:指数列表指定日大小单数据
      GridNo:=8; //网格数
      indexs:=array("SH000001","SZ399001","SH000300");
      return Indexs_BuyAndSellTracking(indexs,20250704t,GridNo);


    相关链接:FAQ:Q: 天软中如何实现市场的超大单,大单,中单,小单按分钟汇总的成交金额走势图