如何用Power Pivot统计股票大单成交量?

2020-01-17  本文已影响0人  Data_Skill

我们截取某只股票真实交易的部分行情数据如下:

目标要求统计可自定义大单含义的可视化图表:

(一) 分析需求

(二) 实现需求

我们知道很多情况下大单的定义是模糊的,可能今天的小单就是昨天的大单,所以我们这里以相对数来进行定义。
因为我们需要分析分钟为维度,但是目前的日期都是以秒为单位,所以我们需要添加一列作为小时分钟来进行分析,所以添加1列为小时分钟列。

基础度量值:

总成交量:=Sum([成交量])
买入成交量:=SumX(Filter('表1','表1'[类型]="买入"),[成交量])
卖出成交量:= SumX(Filter('表1','表1'[类型]="卖出"),[成交量])

1. 当前分钟成交中最大一笔成交量作为大单。

大单买入量:=
var _top=TOPN(1, '表1',[买入成交量])
return
SUMX(_top,[买入成交量])
大单买入量优化:=
if(HASONEFILTER([时间时分]),
[大单买入量],
sumx(all('表1'[时间时分]),[大单买入量])
)

同理计算出大单卖出量。

2. 单独显示分钟级别的最大单笔买入量

分钟单笔最大买入量:=
var _top=TOPN(1,ALL('表1'[时间时分]),[买入成交量])
return
CALCULATE(sumx(_top,[买入成交量]),
            FILTER('表1','表1'[类型]="买入")
            )

这里涉及到了一些上下文的转换,需要仔细品味。

3. 单独显示分钟级别中的最大单笔买入量

分钟内单笔最买入量:=
var _top=TOPN(1,ALL('表1'[时间时分], '表1'[时间]),[买入成交量])
return
CALCULATE(sumx(_top,[买入成交量]),
            FILTER('表1','表1'[类型]="买入")
            )

请注意,这里在忽略上下文的时候多了一个[时间]列的写法,得出的结果不一样。

(三) 展现需求

通过条件格式,我们就可以实现最后的大单净量的表现方式,每分钟的最大一笔量作为大单从而进行分析。

此外我们在看下3种大单定义给出结果的差异。

上一篇 下一篇

猜你喜欢

热点阅读