A:利用
天软techcachedo技术指标缓存,提升191因子运算效率。
参考:FAQ:
2021-11-26-量化数据-因子研究03:191因子算法及其计算说明(更新版)
优化示例
返利说明:获取300个股票30天8个191因子数据。
优化结果:效率得到了显著提升
优化前执行耗时:约61秒
优化后执行耗时:约13秒
优化前代码
EndT:=20260410T;
StockArr:=GetBKByDate('SH000300',EndT);
SetSysParam(pn_StockArr(),StockArr); //注意设置 pn_StockArr()
SetSysParam(PN_Cycle(),cy_day());
SetSysParam(PN_Rate(),1);
Setsysparam(pn_rateday(),endt);
SetSysParam(PN_Date(),EndT);
dayarr:=MarketTradeDayQk2(30);//最近30个交易日
r:=array();
n:=0;
mtic;
for i,StockId in StockArr do
begin
SetSysParam(PN_Stock(),StockId);
for nI:=0 to length(dayarr)-1 do
begin
SetSysParam(PN_Date(),dayarr[nI]);
r[n]['代码']:=StockId;
r[n]['名称']:=StockName(StockId);
r[n]['日期']:=datetostr(dayarr[nI]);
r[n]['Alph002']:=Tsgt_Alpha_002();
r[n]['Alph003']:=Tsgt_Alpha_003();
r[n]['Alph004']:=Tsgt_Alpha_004();
r[n]['Alph005']:=Tsgt_Alpha_005();
r[n]['Alph006']:=Tsgt_Alpha_006();
r[n]['Alph007']:=Tsgt_Alpha_007();
r[n]['Alph008']:=Tsgt_Alpha_008();
r[n]['Alph009']:=Tsgt_Alpha_009();
n++;
end
end
echo mtoc;//打印执行时间
return r;
优化后代码
TechCacheDo
Begin
EndT:=20260410T;
StockArr:=GetBKByDate('SH000300',EndT);
SetSysParam(pn_StockArr(),StockArr); //注意设置 pn_StockArr()
SetSysParam(PN_Cycle(),cy_day());
SetSysParam(PN_Rate(),1);
Setsysparam(pn_rateday(),endt);
SetSysParam(PN_Date(),EndT);
dayarr:=MarketTradeDayQk2(30);//最近30个交易日
r:=array();
n:=0;
mtic;
for i,StockId in StockArr do
begin
SetSysParam(PN_Stock(),StockId);
for nI:=0 to length(dayarr)-1 do
begin
SetSysParam(PN_Date(),dayarr[nI]);
r[n]['代码']:=StockId;
r[n]['名称']:=StockName(StockId);
r[n]['日期']:=datetostr(dayarr[nI]);
r[n]['Alph002']:=Tsgt_Alpha_002();
r[n]['Alph003']:=Tsgt_Alpha_003();
r[n]['Alph004']:=Tsgt_Alpha_004();
r[n]['Alph005']:=Tsgt_Alpha_005();
r[n]['Alph006']:=Tsgt_Alpha_006();
r[n]['Alph007']:=Tsgt_Alpha_007();
r[n]['Alph008']:=Tsgt_Alpha_008();
r[n]['Alph009']:=Tsgt_Alpha_009();
n++;
end
end
End;
echo mtoc;//打印执行时间
return r;