A:使用模型
Stock_MoneyFlow_Grading统计个股日内分钟级资金流入流出(大小单)。
本文中提供以下取数范例:
| 范例 | 说明
|
|---|
| 范例一 | 个股指定日分钟线大小单资金流入流出
|
| 范例二 | 多个股票指定日30分钟线大小单资金流入流出
|
| 范例三 | 多个股票指定区间30分钟线大小单资金流入流出
|
| 范例四 | (网格计算)多个股票指定区间30分钟线大小单资金流入流出
|
实现范例
范例一:获取个股指定日分钟线大小单资金流入流出
endt:=20260310T;
stock:="SZ000001";
cycle:=cy_1m();
BSType:=3;
DType:=3;
Option:=Array(1000000,200000,0);//自定义分档下界,从大单到小单
data:=Stock_MoneyFlow_Grading(Stock,EndT,Cycle,BSType,DType,Option); //获取资金流向数据
//大小单相关字段
cols:=array("时间","大单流入成交金额","大单流出成交金额","中单流入成交金额","中单流出成交金额","小单流入成交金额","小单流出成交金额");
name:=StockName(stock);
return select stock as "代码",name as "名称",* from data[:,cols] end;
部分结果:
范例二:获取多个股票指定日30分钟线大小单资金流入流出
endt:=20260310T;
stocks:=GetBKByDate("SH000016",endt);//上证50指定日成份股
cycle:=cy_30m();
BSType:=3;
DType:=3;
Option:=Array(1000000,200000,0);//自定义分档下界,从大单到小单
cols:=array("时间","大单流入成交金额","大单流出成交金额","中单流入成交金额","中单流出成交金额","小单流入成交金额","小单流出成交金额");
data:=array();
for i,stock in stocks do
begin
name:=StockName(stock);
tmp:=Stock_MoneyFlow_Grading(Stock,EndT,Cycle,BSType,DType,Option);
data&=select stock as "代码",name as "名称",* from tmp[:,cols] end;
end
return data;
部分结果:
范例三:获取多个股票指定区间30分钟线大小单资金流入流出
cycle:=cy_30m();
BSType:=3;
DType:=3;
Option:=Array(1000000,200000,0);//自定义分档下界,从大单到小单
begt:=20250501T; //开始时间
endt:=20250531T; //截止时间
cols:=array("时间","大单流入成交金额","大单流出成交金额","中单流入成交金额","中单流出成交金额","小单流入成交金额","小单流出成交金额");
setsysparam(pn_cycle(),cy_day());//周期-日线
dayarr:=markettradedayqk(begt,endt);//获取市场交易日序列
data:=array();
for i,day in dayarr do
begin
echo datetostr(day); //打印执行时间
stocks:=GetBKByDate("SH000016",day);//上证50指定日成份股
for j,stock in stocks do
begin
name:=StockName(stock);
tmp:=Stock_MoneyFlow_Grading(stock,day,Cycle,BSType,DType,Option);
data&=select stock as "代码",name as "名称",* from tmp[:,cols] end;
end
end
//对数据进行排序
data:=select * from data order by ["代码"],["时间"] end;
return data;
部分结果:
范例四:(网格计算)获取多个股票指定区间30分钟线大小单资金流入流出
网格计算使用说明:FAQ:
Q:天软网格计算
优化效果说明:
范例三不使用网格计算执行结果约45秒,范例四使用4个网格执行时间约12秒,
有效提升了执行效率
begt:=20250501T; //开始时间
endt:=20250531T; //截止时间
GN:=4;//网格数
setsysparam(pn_cycle(),cy_day());//周期-日线
dayarr:=markettradedayqk(begt,endt);//获取市场交易日序列
//循环指定日期计算指标的值
ret:=rt:=array();
GNR:=array();
for i:=0 to length(dayarr)-1 do
begin
endt:=dayarr[i];
stocks:=GetBKByDate("SH000016",endt);//上证50指定日成份股
lenGR:=length(GNR);
if lenGR<GN then
begin
ret[i]:=#doStocksData(stocks,endt);
GNR&=array(i);
end
else if lenGR=GN then
begin
ret[i]:=doStocksData(stocks,endt);
GNR&=array(i);
for j,v in GNR do //等待网格数据结果并合并到rt中
rt&=dupvalue(ret[v]);
GNR:=array();
end
end
for j,v in GNR do
rt&=dupvalue(ret[v]);
//对数据进行排序
rt:=select * from rt order by ["代码"],["时间"] end;
return rt;
Function doStocksData(stocks,endt);
begin
echo datetostr(endt);
cycle:=cy_30m();
BSType:=3;
DType:=3;
Option:=Array(1000000,200000,0);//自定义分档下界,从大单到小单
//输出字段
cols:=array("时间","大单流入成交金额","大单流出成交金额","中单流入成交金额","中单流出成交金额","小单流入成交金额","小单流出成交金额");
data:=array();
for i,stock in stocks do
begin
name:=StockName(stock);
tmp:=Stock_MoneyFlow_Grading(Stock,EndT,Cycle,BSType,DType,Option);
data&=select stock as "代码",name as "名称",* from tmp[:,cols] end;
end
return data;
end
部分结果:
