我们截取某只股票真实交易的部分行情数据如下:
目标要求统计可自定义大单含义的可视化图表:
我们知道很多情况下大单的定义是模糊的,可能今天的小单就是昨天的大单,所以我们这里以相对数来进行定义。因为我们需要分析分钟为维度,但是目前的日期都是以秒为单位,所以我们需要添加一列作为小时分钟来进行分析,所以添加1列为小时分钟列。
基础度量值:
总成交量:=Sum([成交量])买入成交量:=SumX(Filter('表1','表1'[类型]="买入"),[成交量])卖出成交量:= SumX(Filter('表1','表1'[类型]="卖出"),[成交量])
大单买入量:=var _top=TOPN(1, '表1',[买入成交量])returnSUMX(_top,[买入成交量])
大单买入量优化:=if(HASONEFILTER([时间时分]),[大单买入量],sumx(all('表1'[时间时分]),[大单买入量]))
同理计算出大单卖出量。
分钟单笔最大买入量:=var _top=TOPN(1,ALL('表1'[时间时分]),[买入成交量])returnCALCULATE(sumx(_top,[买入成交量]), FILTER('表1','表1'[类型]="买入") )
这里涉及到了一些上下文的转换,需要仔细品味。
分钟内单笔最买入量:=var _top=TOPN(1,ALL('表1'[时间时分], '表1'[时间]),[买入成交量])returnCALCULATE(sumx(_top,[买入成交量]), FILTER('表1','表1'[类型]="买入") )
请注意,这里在忽略上下文的时候多了一个[时间]列的写法,得出的结果不一样。
通过条件格式,我们就可以实现最后的大单净量的表现方式,每分钟的最大一笔量作为大单从而进行分析。
此外我们在看下3种大单定义给出结果的差异。
此文中的上下文转换非常的多,虽然书写不算太复杂,但是实际的上下文比较复杂。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。