说明:获取个股或累计股票列表区间内每日流入流出的大小单成交金额(万)数据
代码:
Function Stock_BuyAndSellTracking(stockid,begt,endt);
Begin
{**
%% @explain(说明)大单跟踪,返回个股或累计股票列表区间每日流入流出的大小单成交金额(万)数据
包括:小单:单笔交易明细成交金额<4万元
中单:单笔交易明细成交金额4-20万元
大单:单笔交易明细成交金额20-100万元
小单:单笔交易明细成交金额大于100万元
%% @param(stiockid)(VarChar/array) 股票代码
%% @param(begt)(DateT) 开始日
%% @param(endt)(DateT) 截止日
%% @return(array) 区间每日流入流出大小单数据
**}
ov:=BackupSystemParameters2();
//stockid:="SZ000001";
//begt:=20220301t;
//endt:=20220407t;
tradData:=select ['date'],
dateOf(["date"]) as 'day',
['amount']/10000. as '成交金额(万)',
['zmm']
from tradetable datekey begt to endt+16/24 of stockid where ['amount']>0 end;
trad3:=select *,['成交金额(万)']/2 as "成交金额(万)" from tradData where ["zmm"]=3 end;
len:=length(trad3);
for i:=0 to len-1 do
begin
trad3[i]:=trad3[i,:];
trad3[len+i]:=trad3[i,:];
trad3[i,"zmm"]:=1;
trad3[len+i,"zmm"]:=2;
end
tradData:=select * from tradData where ["zmm"] in array(1,2) end union2 trad3 ;
if not istable(tradData) then return array();
tradData[:,array('小单','中单','大单','超大单')]:=0;
compA:=function(v);
begin
case v of
0 to 4:return '小单';
4 to 20:return '中单';
20 to 100:return '大单';
else return '超大单';
end;
end;
update tradData set [compA.do(['成交金额(万)'])]=['成交金额(万)'] end;
tradd:=select datetostr(["day"]) as "日期",
sumof(["超大单"],["zmm"]=1) as "流入额(超大单)",
sumof(["超大单"],["zmm"]=2) as "流出额(超大单)",
sumof(["大单"],["zmm"]=1) as "流入额(大 单)",
sumof(["大单"],["zmm"]=2) as "流出额(大 单)",
sumof(["中单"],["zmm"]=1) as "流入额(中 单)",
sumof(["中单"],["zmm"]=2) as "流出额(中 单)",
sumof(["小单"],["zmm"]=1) as "流入额(小 单)",
sumof(["小单"],["zmm"]=2) as "流出额(小 单)"
from tradData group by ["day"] order by ["day"] end;
return tradd;
End;
案例图形:
附件:附件:Stock_BuyAndSellTracking.fun
相关链接:FAQ:
Q: 天软中如何实现市场的超大单,大单,中单,小单按分钟汇总的成交金额走势图