A:汇总概念板块每日成交数据,可参考
StockGNbkDailySummary模型,需导入后使用。
天软概念板块说明:FAQ:
Q:天软是否有概念板块?
实现范例
//获取20230613概念板块成交汇总,以‘平均涨跌幅(%)’字段降序返回
return StockGNbkDailySummary(20230613t,"平均涨跌幅(%)",0);
部分结果:
实现模型
附件:StockGNbkDailySummary.fun
Function StockGNbkDailySummary(endt,sortfield,sortdir);
Begin
{**
%% @explain(说明)每日按概念板块统计板块内的相关指标及成交情况
包括:公司家数:指定日板块成分股个数
平均价格:指定日成分股收盘价的平均数
平均涨跌额:指定日成分股涨跌额的平均数
平均涨跌幅(%):指定日成分股涨跌幅的平均数
总手:指定日成分股成交手数之和,成交手数=成交量/100,不满一手的按一手统计
总成交金额:指定日成分股成交金额之和
领涨股:指定日涨幅最大的成分股
当前价:指定日领涨股的收盘价
涨跌额:指定日领涨股的涨跌额
涨跌幅(%):指定日领涨股的涨跌幅(%)
参考:https://q.stock.sohu.com/cn/bk.shtml
%% @param(endt)(DateT) 指定日
%% @param(sortfield)(string) 排序字段
%% @param(sortdir)(bool) 排序方向,0:降序,1:升序
%% @return(array) 概念板块每日成交数据汇总
**}
ov:=BackupSystemParameters2();
if not endt then endt:=today();
if not sortfield then sortfield:="平均涨跌幅(%)";
SetSysParam(pn_stock(),endt);
indexs:= GetGNBKByDate(endt);
rt:=array();
for i,index in indexs do
begin
stocks:=GetBKByDate(index,endt);
data:=select thisrow as "代码",
StockNameEndT(thisrow,endt) as "名称",
spec(close(),thisrow) as "当前价",
spec(ceil(vol()/100),thisrow) as "手",
spec(amount(),thisrow) as "成交金额",
spec(StockPriceZd3(),thisrow) as "涨跌额",
spec(stockzf3(),thisrow) as "涨跌幅(%)"
from stocks end;
rs:=select StockName(index) as "板块",
countof(["名称"]) as "公司家数",
avgof(["当前价"]) as "平均价格",
avgof(["涨跌额"]) as "平均涨跌额",
avgof(["涨跌幅(%)"]) as "平均涨跌幅(%)",
sumof(["手"]) as "总手",
sumof(["成交金额"]) as "总成交金额"
from data end;
hzf:=MaxValue(data[:,"涨跌幅(%)"]);
rs|=select drange(0 to 0) ["名称"] as "领涨股",["当前价"],["涨跌额"],["涨跌幅(%)"]
from data where ["涨跌幅(%)"]=hzf end;
rt&=rs;
end
SortTableByField(rt,sortfield,sortdir);
rt:=select thisrowindex+1 as "排行",* from rt end;
return rt;
End;
Function GetGNBKByDate(endt);
Begin
{
指定日所有在市的概念指数
}
indexs:=getbk("概念板块") union2 sselect thisrow from getbk("退市其它") where thisrow like '^GN' end;
info:= select 0 to 1,
minof(["入选日期"],["入选日期"]) as "上市日",
countof(not ["剔除日期"])?inf:maxof(["剔除日期"]) as "退市日"
from infotable 752 of indexs group by ["StockID"] end;
endt:=datetoint(endt);
result:= sselect ["StockID"] from info where endt>=["上市日"] and endt<=["退市日"] end;
return result;
End;