A:已有相关公用函数(支持未来交易日,依据SH000001的753表数据):
StockEndTAfterNDay:指定日期向后推N个交易日期,函数说明:FAQ:
StockEndTAfterNDay
StockTradeDaysQkAfterN:指定日期向后推N个交易日期,函数说明:FAQ:
StockTradeDaysQkAfterN
天软已提供未来交易日数据,可查看证券数据专家-》表格数据-》指数.市场交易日历。目前提供的是本年的交易日数据,在每年的节假日安排出来后,天软数据组人员会即时更新。
提取数据范例(下述模型可通过附件下载
附件:未来交易日.zip ):
1、提取开始日到截止日之间的交易日序列(开始日和截止日都可以是未来的日期):
Function FutureTradedayQK(BegT,EndT);
Begin
begt_:=datetoint(begt);
endt_:=datetoint(endt);
dayArr:=sselect inttodate(['截止日']) from infotable 753 of 'SH000001'
where ['截止日']>=begt_
and ['截止日']<=endt_
and ['是否交易日']=1
order by ['截止日'] end;
hisArr:=MarketTradeDayQk(begt,dayArr[0]);
return hisArr union2 dayArr;
End;
2、指定日是否交易日(可判断未来日期):
Function IfTradeDay1(EndT);
Begin
if EndT<today() then
return istradeday(endt);
else
begin
EndT_:=datetoint(EndT);
r:=sselect ['截止日'] from infotable 753 of 'SH000001'
where ['是否交易日']=1 end;
if EndT_ in r then return 1;
else return 0;
end;
End;
3、取指定日后N个的交易日:
Function DateAfterNDays(EndT,Days);
Begin
oV:=BackUpSystemParameters();
try
SetSysParam(PN_Stock(),'SH000001');
SetSysParam(PN_Date(),EndT);
//未来N日
DateAfter:=ref(sp_time(),-Days);
if DateAfter=0 then
begin
t:=Select drange(0 to Days-1) * from infoTable 753 of 'SH000001'
where ['截止日']>DateToInt(EndT) order by ['截止日'] end;
if isTable(t) then
return IntToDate(t[Days-1]['截止日']);
end
else
return DateAfter;
finally
RestoreSystemParameters(oV);
end;
End;