125 KiB
金融工程
内容
- CAPM
- Dev
- 策略验证
- 量化选股
- 股权分置
- 价值评估
- 期权定价
- 套利
- 投资组合
- 新股定价
- 指数研究
- 基金研究
- 量化数据接口
- 量化套利
- 债券研究
- 绩效分析
- 风险模型
- 因子研究
- 量化择时
- 期权基本函数
CAPM
内容
- BkRiskAndReturn_Pgm
- BksRiskAndReturn_Pgm
- StocksAlpha
- StocksBeta
- StocksBetaAlpha
- StocksExpectedReturn
- StocksResidual
BkRiskAndReturn_Pgm
范例
//返回深证A股板块及其下个股加权beta/alpha/平均收益率/标准差/残差标准差/相关系数
bkname:="深证A股";
indexid:='SH000001';
begt:=inttodate(20120425);
endt:=inttodate(20121017);
return BkRiskAndReturn_Pgm(bkname,indexid,begt,endt,1);
//结果:
BksRiskAndReturn_Pgm
范例
//返回深证A股及上证A股的风险指标
bkname:="深证A股;上证A股";
indexid:='SH000001';
begt:=inttodate(20120425);
endt:=inttodate(20121017);
return BksRiskAndReturn_Pgm(bkname,indexid,begt,endt);
//结果:
StocksAlpha
算法在已知个股Alpha情况下,对个股Alpha按照给定的比例加权计算组合Alpha范例
oV := BackupSystemParameters2();
//假设组合为申万采掘,先计算其下个股的区间alpha
stockArr := getbk('申万采掘');
IndexId := 'SH000001';
BegT := inttodate(20110101);
EndT := inttodate(20110630);
t := array();
n := 0;
for i:=0 to length(stockArr)-1 do
begin
stockid := stockArr[i];
setsysparam(pn_stock(),stockid);
if not IsStockGoMarket(begt) then continue;
tmp := StockBetaAlpha2(IndexId,BegT,EndT);
t[n]['代码'] := stockid;
t[n]['名称'] := stockname(stockid);
t[n]['alpha'] := tmp['Alpha'];
n++;
end
//按总股本加权,计算组合alpha
t2 := pf_percent(t[:,'代码'],EndT,0);
t := select [1].['alpha'],[2].['比例(%)'] from t
left join t2 with([1].['代码'] on [2].['代码'])
end;
return stocksalpha(t[:,'alpha'],t[:,'比例(%)']);
//结果:0.0374
StocksBeta
算法在已知个股Beta的情况下,按给定的比例计算组合加权beta范例
oV := BackupSystemParameters2();
//假设组合为申万采掘,先计算其下个股的区间beta
stockArr := getbk('申万采掘');
IndexId := 'SH000001';
BegT := inttodate(20110101);
EndT := inttodate(20110630);
t := array();
n := 0;
for i:=0 to length(stockArr)-1 do
begin
stockid := stockArr[i];
setsysparam(pn_stock(),stockid);
if not IsStockGoMarket(begt) then continue;
tmp := StockBetaAlpha2(IndexId,BegT,EndT);
t[n]['代码'] := stockid;
t[n]['名称'] := stockname(stockid);
t[n]['beta'] := tmp['Beta'];
n++;
end
//按总股本加权,计算组合beta
t2 := pf_percent(t[:,'代码'],EndT,0);
t := select [1].['beta'],[2].['比例(%)'] from t
left join t2 with([1].['代码'] on [2].['代码']) end;
return StocksBeta(t[:,'beta'],t[:,'比例(%)']);
//结果:1.0095
StocksBetaAlpha
范例
//返回一组股票的α系数、β系数、平均收益率、收益率标准差、残差标准差及相关系数
StockArr:=array("SH600460","SZ000920","SH600718");
IndexId:='SH000300';
begt:=inttodate(20110101);
endt:=inttodate(20110630);
//剔除begt还没上市的股票
delete from stockArr where spec(IsStockGoMarket(begt),thisrow)=0;
return StocksBetaAlpha(StockArr,IndexId,begt,endt);
结果:
StocksExpectedReturn
范例
oV := BackupSystemParameters2();
//假设组合为申万采掘,先计算其下个股的区间收益率
stockArr := getbk('申万采掘');
BegT := inttodate(20110101);
EndT := inttodate(20110630);
t := array();
n := 0;
for i:=0 to length(stockArr)-1 do
begin
stockid := stockArr[i];
setsysparam(pn_stock(),stockid);
if not IsStockGoMarket(begt) then continue;
tmp := stockzf(BegT,EndT);
t[n]['代码'] := stockid;
t[n]['名称'] := stockname(stockid);
t[n]['涨幅(%)'] := tmp;
n++;
end
//按总股本加权,计算组合收益率
t2 := pf_percent(t[:,'代码'],EndT,0);
t := select [1].['涨幅(%)'],[2].['比例(%)'] from t
left join t2 with([1].['代码'] on [2].['代码'])
end;
return StocksExpectedReturn(t[:,'涨幅(%)'],t[:,'比例(%)']);
//结果:3.8980
StocksResidual
算法in (12Wi/100*rdRii)范例
oV := BackupSystemParameters2();
//假设组合为申万采掘,先计算其下个股的区间残差标准差
stockArr := getbk('申万采掘');
IndexId := 'SH000001';
BegT := inttodate(20110101);
EndT := inttodate(20110630);
t := array();
n := 0;
for i:=0 to length(stockArr)-1 do
begin
stockid := stockArr[i];
setsysparam(pn_stock(),stockid);
if not IsStockGoMarket(begt) then continue;
tmp := StockBetaAlpha2(IndexId,BegT,EndT);
t[n]['代码'] := stockid;
t[n]['名称'] := stockname(stockid);
t[n]['Residual'] := tmp['Residual'];
n++;
end
//按总股本加权,计算组合残差标准差
t2 := pf_percent(t[:,'代码'],EndT,0);
t := select [1].['Residual'],[2].['比例(%)'] from t
left join t2 with([1].['代码'] on [2].['代码'])
end;
return stocksalpha(t[:,'Residual'],t[:,'比例(%)']);
//结果:1.230
Dev
内容
- BuySample
- SelectStockIndex
- SellSample
- TradingStrategyByBk
- TradingStrategyByBk2
- TradingByJSZB
- PortfolioCalcSys
- SetRetBuyPrice
- SetRetSellPrice
- SetStockBuyInfo
- StockBuyInfo
- SetStockBuyPrice
- StockBuyPrice
- SetStockBuyTime
- StockBuyTime
- StockHoldingCount
- SelectStockIndex_Call
- TrueTransactionYtm
- TSB_Data1
- TSB_Data2
- StockBuyDiff
- StockBuyTimeDiff
BuySample
范例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(pn_date(),inttodate(20121017));
return BuySample();
//结果:0
SelectStockIndex
范例
SetSysParam(PN_CYCLE(),cy_day());
ReturnSelectStockIndex("SZ000541;SH600000",inttodate(20120620),
inttodate(20120930),@BsByMACD(12,26,9,2),@SsByMACD(12,26,9,2),"SH000001",1); //返回股票组合array(SZ000541;SH600000)在2012-06-20到2012-09-30在给出的买入条件和卖出条件下的等比投资的交易情况
//结果:
SellSample
范例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(pn_date(),inttodate(20121017));
return sellSample(); //判断万科A在2012-10-17在卖出策略sellSample()下是否卖出, 结果:0
TradingStrategyByBk
范例
Return TradingStrategyByBk("上证180;中证800",
inttodate(20120625),
inttodate(20121017),
"SH000001",
@BK_UpPercent3()>=60,
@StockZf3(),1,10,10,1);
//结果:
TradingStrategyByBk2
范例
return TradingStrategyByBk2(
"上证180",
inttodate(20120725),
inttodate(20121017),
"SH000001",
"BK_UpPercent3()+Ref(BK_UpPercent3(),1)+Ref(BK_UpPercent3(),2)",
3,20);
//结果:
TradingByJSZB
范例
Return TradingByJSZB(
"SZ000002;SH600718;SH600000;SH600001",
inttodate(20100125),
inttodate(20101017),
@IsHighOfNDay(0),
@Close()<hhv(High(),0)-10*ATR_v(45),
-10,20,20);
//结果:
PortfolioCalcSys
范例
Return PortfolioCalcSys(
"申万煤炭开采",
1000000,
inttodate(20120825),
inttodate(20121023),
0,
0.2,
0.05,
@(StockZF3()>8),
@(StockZF3()<-3),
100,
100,
@close(),
@close(),
@close(),
0.1,
0.1,
5,
100,
1,
10000,
100);
//结果:
SetRetBuyPrice
范例
SetRetBuyPrice(20);
return GetSysParam('tmpBuyPrice'); //结果:20
SetRetSellPrice
范例
SetRetSellPrice(50);
return GetSysParam('tmpSellPrice'); //结果:50
SetStockBuyInfo
范例
SetStockBuyInfo("SZ000002",'BuyPrice',8);
return GetSysParam('BuyPrice');
//结果:
StockBuyInfo
范例
SetStockBuyInfo("SZ000002",'BuyPrice','kkkk');
SetSysParam(pn_stock(),'SZ000002');
return StockBuyInfo("BuyPrice"); //结果:’kkkk’
SetStockBuyPrice
范例
SetStockBuyTime('SZ000002',inttodate(20121023));
Return GetSysParam("BuyTime");
//结果:
StockBuyPrice
范例
SetStockBuyInfo('SZ000002','BuyPrice',5);
SetSysParam(PN_Stock(),'SZ000002');
Return StockBuyPrice(); //结果:5
SetStockBuyTime
范例
SetStockBuyTime('SZ000002',inttodate(20121023));
Return GetSysParam("BuyTime");
//结果:
StockBuyTime
范例
SetStockBuyInfo('SZ000002','BuyTime',inttodate(20121023));
SetSysParam(Pn_Stock(),'SZ000002');
Return StockBuyTime(); //结果:41205
StockHoldingCount
范例
SetStockBuyInfo('SZ000002','HoldingInfo',9);
SetSysParam(Pn_Stock(),'SZ000002');
return StockHoldingCount();
//结果:9
SelectStockIndex_Call
范例
StockArr:= array("SH600460","SZ000920","SH600718");
BegT:= inttodate(20120925);
EndT:= inttodate(20121017);
Return SelectStockIndex_Call(StockArr,
BegT,EndT,@BsByMACD(12,26,9,2),true,@SsByMACD(12,26,9,2),false);
//结果:
TrueTransactionYtm
范例
Return SelectStockIndex_Call(
array("SH600460","SZ000920","SH600718"),
inttodate(20120925),
inttodate(20121017),
@BsByMACD(12,26,9,2),
true,
@SsByMACD(12,26,9,2),
false);
//结果:
TSB_Data1
范例
Return TSB_Data1("上证180",inttodate(20120625),inttodate(20121017),
"BK_UpPercent3()+Ref(BK_UpPercent3(),1)+Ref(BK_UpPercent3(),2)",
3,20);
//结果:
TSB_Data2
范例
Return TSB_Data2("上证180;中证500",inttodate(20120925),
inttodate(20121017));
//结果:
StockBuyDiff
范例
SetStockBuyPrice('SZ000002',8.04);
SetSysParam(PN_Stock(),'SZ000002');
return StockBuyDiff(); //结果:4.47761
StockBuyTimeDiff
范例
SetStockBuyTime('SZ000002',inttodate(20121018));
SetSysParam(pn_date(),inttodate(20121022));
SetSysParam(PN_Stock(),'SZ000002');
return StockBuyTimeDiff(); //结果:4
策略验证
内容
- TSBackTesting
- TSFL_TSBackTesting_File
- TSFL_TSBackTesting_PercentPortfolio
- TSFL_TSBackTesting_HighFrequencyTrading
- PortfolioBackTesting_IndexFund
- PortfolioBackTesting_Trading
- PortfolioBackTesting_Percent
- PortfolioBackTesting _Quantity
- TSFL_TSMutiFactor_01
- 比例类中间函数
- 交易类中间函数
- 数量类中间函数
- 指数基金中间函数
- 中间函数
TSBackTesting
范例参考2014-04-11-应用专题-回测框架01:策略回测框架TSBackTesting
TSFL_TSBackTesting_File
参考2014-04-11-应用专题-回测框架01:策略回测框架TSBackTesting
TSFL_TSBackTesting_PercentPortfolio
参考2014-04-11-应用专题-回测框架01:策略回测框架TSBackTesting
TSFL_TSBackTesting_HighFrequencyTrading
参考2014-04-11-应用专题-回测框架01:策略回测框架TSBackTesting
PortfolioBackTesting_IndexFund
范例参考2012-03-20-模型更新-指数基金模拟ToolBox使用说明
PortfolioBackTesting_Trading
范例
参考附件:深圳天软科技-模型更新-策略验证(交易类)ToolBox使用说明.pdf
PortfolioBackTesting_Percent
参考附件:深圳天软科技-模型更新-策略验证(配置类)ToolBox使用说明.pdf
PortfolioBackTesting _Quantity
范例
pfInfoData:=array();
BegT:=39812;
EndT:=39820;
tAllJYMX:=array(
("代码":"SH600036","名称":"招商银行","截止日":39818.00,"动作":0.00,"成交价":12.59,"成交量":794200.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00),
("代码":"SH600068","名称":"葛洲坝 ","截止日":39818.00,"动作":0.00,"成交价":8.96,"成交量":1116000.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00),
("代码":"SZ002232","名称":"启明信息","截止日":39818.00,"动作":0.00,"成交价":13.96,"成交量":716300.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":13.1,"成交量":458000.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":13.1,"成交量":305300.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":12.45,"成交量":240900.00,"费率(%)":0.1,"费用":0.00,"多空":1.00,"乘数":1.00,"保证金比例(%)":1.00));
tAllTA:=array();
tAllZCPZ:=array();
tAllHYPZ:=array();
tAllCCMX:=array();
tAllJZ:=array();
tAllLS:=array();
PortfolioBackTesting_Quantity(pfInfoData,
BegT,
EndT,
tAllJYMX,
tAllTA,
tAllZCPZ,
tAllHYPZ,
tAllCCMX,
tAllJZ,
tAllLS);
return array('行业配置':tAllHYPZ,'t日持股明细':tAllJYMX);
//结果:
TSFL_TSMutiFactor_01
范例参见2014-06-08-深圳天软科技-应用专题-多因子框架01:天软多因子框架TSMultiFactor
比例类中间函数
####### 内容
- PortfolioBackTesting_Percent_Change
- PortfolioBackTesting_Percent_DataCheck
- PortfolioBackTesting_Percent_ToQuantity
- PortfolioBackTesting_Percent_SetPercentforNOTUserDefined
####### PortfolioBackTesting_Percent_Change
范例
a:=array(2,3,4,5,8);
SetSysParam('TZZHRiMatrix',a);
w:=array(1,4,6,3,7);
Return GetTrueRp(w); //结果:5.19048
####### PortfolioBackTesting_Percent_DataCheck
范例
tPercent:=array(('日期':41215,'截止日':nil,'方向':1,'乘数':nil,'保证金比例(%)':nil),('日期':41213,'截止日':nil,'方向':nil,'乘数':nil,'保证金比例(%)':nil));
tTA:=array();
PortfolioBackTesting_Percent_DataCheck(PFInfoData,tPercent,tTA);
return array('检查后的组合信息':PFInfoData,'检查后的申购,赎回':tPercent);
//结果:
####### PortfolioBackTesting_Percent_ToQuantity
范例
PFInfoData:=array(array('组合名称':'我的组合','成交量取整模式':0));
tpZCPZ:=array(array('现金市值':1000000,'资产净值':1000000));
tPercent:=array(
("日期":40543.00,"代码":"SH600000","名称":"浦发银行","方向":1.00,"调仓前比例(%)":0.00,"调仓后比例(%)":25.00,"调仓前数量":0.00,"成交价":12.39,"开仓费率(%)":0.165,"平仓费率(%)":0.065,"乘数":1.00,"保证金比例(%)":100.00),
("日期":40543.00,"代码":"SH600004","名称":"白云机场","方向":1.00,"调仓前比例(%)":0.00,"调仓后比例(%)":25.00,"调仓前数量":0.00,"成交价":8.82,"开仓费率(%)":0.165,"平仓费率(%)":0.065,"乘数":1.00,"保证金比例(%)":100.00),
("日期":40543.00,"代码":"SZ000001","名称":"深发展A","方向":1.00,"调仓前比例(%)":0.00,"调仓后比例(%)":25.00,"调仓前数量":0.00,"成交价":15.79,"开仓费率(%)":0.11975,"平仓费率(%)":0.01975,"乘数":1.00,"保证金比例(%)":100.00),
("日期":40543.00,"代码":"SZ000002","名称":"万科A","方向":1.00,"调仓前比例(%)":0.00,"调仓后比例(%)":25.00,"调仓前数量":0.00,"成交价":8.22,"开仓费率(%)":0.11975,"平仓费率(%)":0.01975,"乘数":1.00,"保证金比例(%)":100.00));
ro:=array();
return PortfolioBackTesting_Percent_ToQuantity(PFInfoData,tpZCPZ,tPercent,rO);
//结果:
####### PortfolioBackTesting_Percent_SetPercentforNOTUserDefined
范例
tPercent:=array(
("截止日":43550.0,"代码":"SZ000001"),
("截止日":43550.0,"代码":"SZ000002"),
("截止日":43550.0,"代码":"SH600000")
);
EndT:=inttodate(20190326);
RateType:=0;
Return PortfolioBackTesting_Percent_SetPercentforNOTUserDefined(tPercent,EndT,RateType);
//结果:
交易类中间函数
####### 内容
- PortfolioBackTesting_TradingEvaluation
- TE_ExtremeSummary
- TE_MatchOCTradeData
####### PortfolioBackTesting_TradingEvaluation
范例
PFInfoData:=array();
t:=array(
("代码":"CU1201","名称":"CU1201","乘数":5.00,"方向":1.00,"开仓日期":40724.00,"开仓价":69450.00,"开仓数量":1.00,"开仓费率(%)":0.0125,"平仓日期":40763.00,"平仓价":67740.00,"平仓数量":1.00,"平仓费率(%)":0.0125),
("代码":"CU1201","名称":"CU1201","乘数":5.00,"方向":0.00,"开仓日期":40787.00,"开仓价":68200.00,"开仓数量":1.00,"开仓费率(%)":0.0125,"平仓日期":40801.00,"平仓价":65020.00,"平仓数量":1.00,"平仓费率(%)":0.0125),
("代码":"RU1201","名称":"RU1201","乘数":5.00,"方向":1.00,"开仓日期":40695.00,"开仓价":33365.00,"开仓数量":2.00,"开仓费率(%)":0.02,"平仓日期":40725.00,"平仓价":32175.00,"平仓数量":2.00,"平仓费率(%)":0.02),
("代码":"RU1201","名称":"RU1201","乘数":5.00,"方向":1.00,"开仓日期":40805.00,"开仓价":31925.00,"开仓数量":3.00,"开仓费率(%)":0.02,"平仓日期":40847.00,"平仓价":27105.00,"平仓数量":3.00,"平仓费率(%)":0.02),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40556.00,"开仓价":9.01,"开仓数量":1100.00,"开仓费率(%)":0.01,"平仓日期":40569.00,"平仓价":8.5,"平仓数量":1100.00,"平仓费率(%)":0.01),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40596.00,"开仓价":8.17,"开仓数量":1200.00,"开仓费率(%)":0.01,"平仓日期":40604.00,"平仓价":8.19,"平仓数量":1200.00,"平仓费率(%)":0.01),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40616.00,"开仓价":8.28,"开仓数量":1200.00,"开仓费率(%)":0.01,"平仓日期":40627.00,"平仓价":8.67,"平仓数量":1200.00,"平仓费率(%)":0.01),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40630.00,"开仓价":8.82,"开仓数量":1100.00,"开仓费率(%)":0.01,"平仓日期":40660.00,"平仓价":8.45,"平仓数量":1100.00,"平仓费率(%)":0.01),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40714.00,"开仓价":8.16,"开仓数量":1200.00,"开仓费率(%)":0.01,"平仓日期":40746.00,"平仓价":8.41,"平仓数量":1200.00,"平仓费率(%)":0.01),
("代码":"SZ000002","名称":"万科A","乘数":1.00,"方向":1.00,"开仓日期":40770.00,"开仓价":8.44,"开仓数量":1100.00,"开仓费率(%)":0.01,"平仓日期":40781.00,"平仓价":8.38,"平仓数量":1100.00,"平仓费率(%)":0.01));
return PortfolioBackTesting_TradingEvaluation(PfInfoData,t);
//结果:
####### TE_ExtremeSummary
####### TE_MatchOCTradeData
数量类中间函数
####### 内容
- PortfolioBackTesting_Quantity_CompositeDetail
- PortfolioBackTesting_Quantity_DataCheck
- PortfolioBackTesting_Quantity_InvestmentRatio
- PortfolioBackTesting_Quantity_FA_EndT
- PortfolioBackTesting_Quantity_IndustryComposite
- PortfolioBackTesting_Quantity_NetAsset
- PortfolioBackTesting_Quantity_InvalidData
- PortfolioBackTesting_Quantity_TransactionLog
- PortfolioBackTesting_Quantity_TradeDetails
- PortfolioBackTesting_Quantity_TradeOfMoneyMarketFund
- PortfolioBackTesting_Quantity_CashAllocation
- PortfolioBackTesting_Quantity_SellByCommonCondition
- PortfolioBackTesting_Quantity_TradeOfRightsIssue
- PortfolioBackTesting_Quantity_TradeOfDividendandSplit
- PortfolioBackTesting_Quantity_VolAfterDividendandSplit
- PortfolioBackTesting_Quantity_TradeOfDelist
- PortfolioBackTesting_Quantity_VolAfterSplit
- 中间函数
- PortfolioBackTesting_Quantity_GetClose
####### PortfolioBackTesting_Quantity_CompositeDetail
范例
endt:=IntToDate(20120711);
tpGP:=array(
("截止日":39818.00,"代码":"SZ002232","数量":716300.00,"市值":9999548.00,"总成本":9999548.00,"成本价":13.96,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":13.96,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":716300.00,"今总成本":9999548.00,"今成本价":13.96),
("截止日":39818.00,"代码":"SH600068","数量":1116000.00,"市值":9999360.00,"总成本":9999360.00,"成本价":8.96,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":8.96,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":1116000.00,"今总成本":9999360.00,"今成本价":8.96),
("截止日":39818.00,"代码":"SH600036","数量":794200.00,"市值":9998978.00,"总成本":9998978.00,"成本价":12.59,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":12.59,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":794200.00,"今总成本":9998978.00,"今成本价":12.59));
tLS:=array(
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":13.1,"成交量":305300.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"方向":1.00,"成交金额(税前)":3999430.00,"费用":3999.43,"买入金额":3999430.00,"卖出金额":0.00,"上一笔数量":794200.00,"上一笔总成本":9998978.00,"上一笔成本价":12.59,"数量":1099500.00,"总成本":13998408.00,"成本价":12.73,"备注":""),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":12.45,"成交量":240900.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"方向":1.00,"成交金额(税前)":2999205.00,"费用":2999.2,"买入金额":2999205.00,"卖出金额":0.00,"上一笔数量":1099500.00,"上一笔总成本":13998408.00,"上一笔成本价":12.73,"数量":1340400.00,"总成本":16997613.00,"成本价":12.68,"备注":""),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"动作":0.00,"成交价":13.1,"成交量":458000.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"方向":1.00,"成交金额(税前)":5999800.00,"费用":5999.8,"买入金额":5999800.00,"卖出金额":0.00,"上一笔数量":1340400.00,"上一笔总成本":16997613.00,"上一笔成本价":12.68,"数量":1798400.00,"总成本":22997413.00,"成本价":12.79,"备注":""),
("代码":"SZ000002","名称":"万科A","截止日":39819.00,"动作":0.00,"成交价":7.00,"成交量":428500.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"方向":1.00,"成交金额(税前)":2999500.00,"费用":2999.5,"买入金额":2999500.00,"卖出金额":0.00,"上一笔数量":0.00,"上一笔总成本":0.00,"上一笔成本价":0.00,"数量":428500.00,"总成本":2999500.00,"成本价":7.00,"备注":""),
("代码":"SZ000002","名称":"万科A","截止日":39819.00,"动作":0.00,"成交价":6.9,"成交量":289800.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"方向":1.00,"成交金额(税前)":1999620.00,"费用":1999.62,"买入金额":1999620.00,"卖出金额":0.00,"上一笔数量":428500.00,"上一笔总成本":2999500.00,"上一笔成本价":7.00,"数量":718300.00,"总成本":4999120.00,"成本价":6.96,"备注":""));
return PortfolioBackTesting_Quantity_CompositeDetail(EndT,tpGP,tLS);
//结果:
####### PortfolioBackTesting_Quantity_DataCheck
范例
tPercent:=array(('日期':41215,'截止日':nil,'方向':1,'乘数':nil,'保证金比例(%)':nil),('日期':41213,'截止日':nil,'方向':nil,'乘数':nil,'保证金比例(%)':nil));
tTA:=array();
PortfolioBackTesting_Quantity_DataCheck(PFInfoData,tPercent,tTA);
return array('检查后的组合信息':PFInfoData,'检查后的申购,赎回':tPercent);
//结果:
####### PortfolioBackTesting_Quantity_InvestmentRatio
范例
endt:=inttodate(20090105);
tZCPZ:=array(
("截止日":41540.00,"资产净值":2000000.00,"保证金占用":0.00,"可用资金":2000000.00));
tLS:=array(
("截止日":41541.00,"代码":"SH600036","方向":1.00,"动作编号":0.00,"成交量":5000.00,"成交价":10.98,"乘数":1.00,"保证金比例(%)":100.00,"费率(%)":0.1,"费用":54.9,"成交金额":54900.00,"买入金额":54900.00,"卖出金额":0.00,"上一笔数量":0.00,"上一笔总成本":0.00,"上一笔成本价":0.00,"数量":5000.00,"总成本":54900.00,"成本价":10.98),
("截止日":41541.00,"代码":"SH600036","方向":1.00,"动作编号":0.00,"成交量":6000.00,"成交价":10.89,"乘数":1.00,"保证金比例(%)":100.00,"费率(%)":0.1,"费用":65.34,"成交金额":65340.00,"买入金额":65340.00,"卖出金额":0.00,"上一笔数量":5000.00,"上一笔总成本":54900.00,"上一笔成本价":10.98,"数量":11000.00,"总成本":120240.00,"成本价":10.93),
("截止日":41541.00,"代码":"IF1312","方向":1.00,"动作编号":0.00,"成交量":4.00,"成交价":2461.2,"乘数":300.00,"保证金比例(%)":15.00,"费率(%)":0.00,"费用":73.84,"成交金额":2953440.00,"买入金额":2953440.00,"卖出金额":0.00,"上一笔数量":1.00,"上一笔总成本":743340.00,"上一笔成本价":2477.8,"数量":5.00,"总成本":3696780.00,"成本价":2464.52));
tGP:=array(
("截止日":41541.00,"代码":"SH600036","证券类别":2.00,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"数量":18000.00,"总成本":196540.00,"成本价":10.92,"收盘价":10.88,"市值":195840.00,"保证金占用":195840.00,"买入金额":196540.00,"卖出金额":0.00,"买持仓量":18000.00,"卖持仓量":0.00,"浮动盈亏":-700.00,"浮盈率(%)":-0.36,"分红金额":0.00,"市值变动":195840.00,"当日盈亏":-700.00,"冻结资金":0.00),
("截止日":41541.00,"代码":"IF1312","证券类别":27.00,"方向":1.00,"乘数":300.00,"保证金比例(%)":15.00,"数量":5.00,"总成本":3696780.00,"成本价":2464.52,"收盘价":2458.6,"市值":3687900.15,"保证金占用":553185.02,"买入金额":3696780.00,"卖出金额":0.00,"买持仓量":5.00,"卖持仓量":0.00,"浮动盈亏":-8879.85,"浮盈率(%)":-0.24,"分红金额":0.00,"市值变动":3687900.15,"当日盈亏":-8879.85,"冻结资金":544305.17));
tta:=array(
("截止日":41542.00,"业务类型":2.00,"成交金额":0.00));
vzcjz:=array();
return PortfolioBackTesting_Quantity_InvestmentRatio(EndT,tZCPZ,tLS,tGP,tta,vZCJZ);
//结果:
####### PortfolioBackTesting_Quantity_FA_EndT
范例
pfInfoData:=array(
("初始资金":10000000.00,"分红再投资":0.00,"自动参与配股":1.00,"费用类别":1.00,"货币基金自动分红再投资":1.00,"自动调整昨日持仓":1.00));
endt:=inttodate(20121231);
tm:=2000000;
tpzcpz:=array(
("截止日":41541.00,"资产净值":60000.00,"保证金占用":0.00,"可用资金":60000.00));
tpgp:=array();
tjy:=array(
("代码":"IF01","方向":1.00,"动作编号":0.00,"成交量":1.00,"成交价":2305.4,"乘数":300.00,"保证金比例(%)":12.00,"费率(%)":0.0025),
("代码":"IF01","方向":1.00,"动作编号":0.00,"成交量":3.00,"成交价":2309.8,"乘数":300.00,"保证金比例(%)":12.00,"费率(%)":0.0025));
tta:=array();
tzcpz:=array();
tHYPZ:=array();
tgp:=array();
tjz:=array();
tls:=array();
return PortfolioBackTesting_Quantity_FA_EndT(pfInfoData,EndT,TM,tpZCPZ,tpGP,tJY,tTA,tZCPZ,tHYPZ,tGP,tJZ,tLS);
//结果:1
####### PortfolioBackTesting_Quantity_IndustryComposite
范例
tGP:=array(
("组合编号":59.00,"截止日":39816.00,"代码":"SH600001","名称":"平安银行","昨持仓":0.00,"数量":150000.00,"板块名称":"金融","市值":472000.00,"占净值比例(%)":10.00,"证券类别":2),
("组合编号":59.00,"截止日":39816.00,"代码":"SH600000","名称":"浦发银行","昨持仓":0.00,"数量":200000.00,"板块名称":"金融","市值":456000.00,"占净值比例(%)":20.00,"证券类别":2),
("组合编号":59.00,"截止日":39817.00,"代码":"SZ000002","名称":"万科A","昨持仓":0.00,"数量":100000.00,"板块名称":"金属、非金属","市值":478000.00,"占净值比例(%)":40.00,"证券类别":1),
("组合编号":59.00,"截止日":39818.00,"代码":"SH600595","名称":"中孚实业","昨持仓":0.00,"数量":100000.00,"板块名称":"金属、非金属","市值":596000.00,"占净值比例(%)":30.00,"证券类别":1));
endt:=39818;
return PortfolioBackTesting_Quantity_IndustryComposite(EndT,tGP);
//结果:
####### PortfolioBackTesting_Quantity_NetAsset
范例
return PortfolioBackTesting_Quantity_NetAsset(39818,12,36,10);
//结果:
####### PortfolioBackTesting_Quantity_InvalidData
范例
endt:=39818;
tAllZCPZ:=array(
("组合编号":59.00,"截止日":39818,"股票市值":0.00,"股票占资产净值比例(%)":0.00,"现金市值":100000000.00,"现金占资产净值比例(%)":100.00,"资产净值":100000000.00),("组合编号":59.00,"截止日":39817,"股票市值":0.00,"股票占资产净值比例(%)":0.00,"现金市值":100000000.00,"现金占资产净值比例(%)":100.00,"资产净值":100000000.00),("组合编号":59.00,"截止日":39818,"股票市值":0.00,"股票占资产净值比例(%)":0.00,"现金市值":100000000.00,"现金占资产净值比例(%)":100.00,"资产净值":100000000.00)); //资产配置数据
tAllHYPZ:=array(); //行业配置数据
tAllCCMX:=array(); //持股明细数据
tAllJZ:=array(); //净值数据
tAllLS:=array();
PortfolioBackTesting_Quantity_InvalidData(EndT,
tAllZCPZ,
tAllHYPZ,
tAllCCMX,
tAllJZ,
tAllLS);
return tAllZCPZ;
//结果:
####### PortfolioBackTesting_Quantity_TransactionLog
范例
endt:=38734;
tpGP:=array(
("组合编号":151.00,"截止日":38733.00,"代码":"OF020001","名称":"","数量":10000.00,"市值":10810.00,"占净值比例(%)":0.0108,"板块名称":"开放式基金","占流通股比例(%)":0.0014,"总成本":10452.96,"成本价":1.0453,"浮动盈亏":357.04,"浮盈率(%)":3.4153,"排名":1.00),
("组合编号":0.00,"截止日":0.00,"代码":"OF510180","名称":"","数量":10000.00,"市值":0.00,"占净值比例(%)":0.00,"板块名称":"","占流通股比例(%)":0.00,"总成本":0.00,"成本价":0.00,"浮动盈亏":0.00,"浮盈率(%)":0.00,"排名":0.00),
("组合编号":0.00,"截止日":0.00,"代码":"OF510170","名称":"","数量":10000.00,"市值":0.00,"占净值比例(%)":0.00,"板块名称":"","占流通股比例(%)":0.00,"总成本":0.00,"成本价":0.00,"浮动盈亏":0.00,"浮盈率(%)":0.00,"排名":0.00));
tJY:=array(
("组合编号":59,"代码":"OF020001","本次持有数量":100,"截止日":38734.00,"成交量":-70000.00,"成交价":13.8876,"成交金额":972132.00,"总成本":1000,"乘数":1,"动作":1,"成交时间":40369.9642),
("组合编号":59,"代码":"SH600595","本次持有数量":150,"截止日":38734.00,"成交量":2000000.00,"成交价":13.8876,"成交金额":-27775200.00,"总成本":1200,"乘数":1,"动作":0,"成交时间":40369.9646),
("组合编号":59,"代码":"SZ000002","本次持有数量":200,"截止日":38734.00,"成交量":400000.00,"成交价":9.582,"成交金额":-3832800.00,"总成本":2000,"乘数":1,"动作":0,"成交时间":40370.0404));
RETURN PortfolioBackTesting_Quantity_TransactionLog(EndT,tpGP,tJY,bFHZTZ);
//结果:
####### PortfolioBackTesting_Quantity_TradeDetails
范例
pfInfoData:=array((
"费用类别":1,
"最低费用类别":0,
"开仓最低费用":5,
"平仓最低费用":5,
));
Endt:=IntToDate(20120711);
tpGP:=array(
("截止日":39818.00,"代码":"SZ002232","数量":716300.00,"市值":9999548.00,"总成本":9999548.00,"成本价":13.96,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":13.96,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":716300.00,"今总成本":9999548.00,"今成本价":13.96),
("截止日":39818.00,"代码":"SH600068","数量":1116000.00,"市值":9999360.00,"总成本":9999360.00,"成本价":8.96,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":8.96,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":1116000.00,"今总成本":9999360.00,"今成本价":8.96),
("截止日":39818.00,"代码":"SH600036","数量":794200.00,"市值":9998978.00,"总成本":9998978.00,"成本价":12.59,"浮动盈亏":0.00,"浮盈率(%)":0.00,"收盘":12.59,"方向":1.00,"乘数":1.00,"保证金比例(%)":100.00,"红利比":0.00,"实得比":0.00,"送股比":0.00,"分红金额":0.00,"今数量":794200.00,"今总成本":9998978.00,"今成本价":12.59)
);
tJY:=array(
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"方向":1,"动作":0.00,"成交价":13.1,"成交量":305300.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"备注":""),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"方向":1,"动作":0.00,"成交价":12.45,"成交量":240900.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"备注":""),
("代码":"SH600036","名称":"招商银行","截止日":39819.00,"方向":1,"动作":0.00,"成交价":13.1,"成交量":458000.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"备注":""),
("代码":"SZ000002","名称":"万科A","截止日":39819.00,"方向":1,"动作":0.00,"成交价":7.00,"成交量":428500.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"备注":""),
("代码":"SZ000002","名称":"万科A","截止日":39819.00,"方向":1,"动作":0.00,"成交价":6.9,"成交量":289800.00,"费率(%)":0.1,"乘数":1.00,"保证金比例(%)":100.00,"备注":"")
);
return PortfolioBackTesting_Quantity_TradeDetails(pfInfoData,EndT,tpGP,tJY);
//结果
####### PortfolioBackTesting_Quantity_TradeOfMoneyMarketFund
范例
pfInfoData:=array((
"货币基金自动分红再投资":1,
));
endt:=inttodate(20190327);
tpGP:=array(
("组ID":"","截止日":43550.0,"代码":"OF519800","名称":"华夏保证金理财A","方向":1,"数量":10000000.0,"收盘":0.01,"市值":100000.0,"总成本":100000.0,"成本价":0.01,"浮动盈亏":0.0,"浮盈率(%)":0.0,"证券类别":17,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":100000.0,"市值变动":100000.0,"当日盈亏(净额)":0.0,"费用":100.0,"当日盈亏":-100.0,"占净值比例(%)":0.0100200410841725),
("组ID":"","截止日":43550.0,"代码":"SH511700","名称":"场内货币","方向":1,"数量":10000000.0,"收盘":99.999,"市值":999990000.0,"总成本":999990000.0,"成本价":99.999,"浮动盈亏":0.0,"浮盈率(%)":0.0,"证券类别":6,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":999990000.0,"市值变动":999990000.0,"当日盈亏(净额)":0.0,"费用":999990.0,"当日盈亏":-999990.0,"占净值比例(%)":100.199408837616)
);
tpJYMXarr:=array(
("组ID":"","截止日":43550.0,"代码":"OF519800","方向":1,"成交量":10000000.0,"名称":"华夏保证金理财A","动作":0,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"到期日":0,"应计利息":0,"费率(%)":0.1,"备注":"","证券类别":17,"成交价":0.01,"是否达到约束":1,"利率(%)":0,"成交金额(税前)":100000.0,"成交金额":100100.0,"费用":100.0),
("组ID":"","截止日":43550.0,"代码":"SH511700","方向":1,"成交量":10000000.0,"名称":"场内货币","动作":0,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"到期日":0,"应计利息":0,"费率(%)":0.1,"备注":"","证券类别":6,"成交价":99.999,"是否达到约束":1,"利率(%)":0,"成交金额(税前)":999990000.0,"成交金额":1000989990.0,"费用":999990.0)
);
return PortfolioBackTesting_Quantity_TradeOfMoneyMarketFund(pfInfoData,EndT,tpGP,tpJYMXarr);
//结果:
####### PortfolioBackTesting_Quantity_CashAllocation
范例
PortfolioBackTesting_Quantity_CashAllocation(10000000,5,4,10,5,0,Number,CashPerUnit);
return array('实际可买入个数':Number,'分配资金':CashPerUnit);
//结果:
####### PortfolioBackTesting_Quantity_SellByCommonCondition
范例
EndT:=inttodate(20070301);
tpGP:=array(
("截止日":39141.0,"方向":0.0,"代码":"SZ000562","今数量":679.0,"今成本价":14.72,"今总成本":10000.0,"乘数":1.0,"保证金比例(%)":100.0,"买入日期":39121.0),
("截止日":39141.0,"方向":0.0,"代码":"SZ000001","今数量":493.0,"今成本价":18.27,"今总成本":9000.0,"乘数":1.0,"保证金比例(%)":100.0,"买入日期":39111.0)
);
return PortfolioBackTesting_Quantity_SellByCommonCondition(EndT,tpGP,15,20,-20,0,0.01);
//结果:
####### PortfolioBackTesting_Quantity_TradeOfRightsIssue
范例
pfInfoData:=array(('自动参与配股':1));
EndT:=20230810t;
tpGP:=array(
("组ID":"","截止日":45147.0,"代码":"SH600081","名称":"东风科技","方向":1,"数量":10000000.0,"收盘":11.64,"市值":116400000.0,"总成本":124800000.0,"成本价":12.48,"浮动盈亏":-8400000.0,"浮盈率(%)":-6.73076923076923,"证券类别":2,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":116400000.0,"占净值比例(%)":11.7400818497528)
);
return PortfolioBackTesting_Quantity_TradeOfRightsIssue(pfInfoData,EndT,tpGP);
//结果:
####### PortfolioBackTesting_Quantity_TradeOfDividendandSplit
范例
pfInfoData:=array(('分红再投资':0));
EndT:=inttodate(20230810);
tpGP:=array(
("组ID":"","截止日":45147.0,"代码":"SH600369","名称":"西南证券","方向":1,"数量":10000000.0,"收盘":4.7,"市值":47000000.0,"总成本":37100000.0,"成本价":3.71,"浮动盈亏":9900000.0,"浮盈率(%)":26.6846361185984,"证券类别":2,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":47000000.0,"占净值比例(%)":4.65409710565662)
);
return PortfolioBackTesting_Quantity_TradeOfDividendandSplit(pfInfoData,EndT,tpGP);
//结果:
####### PortfolioBackTesting_Quantity_VolAfterDividendandSplit
范例
PfInfoData :=array((
"自动参与配股":1,
"分红再投资":0
));
EndT:=inttodate(20230810);
tpGP:=array(
("组ID":"","截止日":45147.0,"代码":"SH600081","名称":"东风科技","方向":1,"数量":20000.0,"收盘":11.64,"市值":232800.0,"总成本":249600.0,"成本价":12.48,"浮动盈亏":-16800.0,"浮盈率(%)":-6.73076923076923,"证券类别":2,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":232800.0,"市值变动":0.0,"买入金额":0,"卖出金额":0,"买入金额2":0,"卖出金额2":0,"分红金额":0,"配股金额":0,"迁入金额":0,"迁出金额":0,"迁入金额2":0,"迁出金额2":0,"买入金额(税后)":0,"卖出金额(税后)":0,"买入金额2(税后)":0,"卖出金额2(税后)":0,"迁入金额(税后)":0,"迁出金额(税后)":0,"迁入金额2(税后)":0,"迁出金额2(税后)":0,"调入金额":0,"调出金额":0,"调入金额2":0,"调出金额2":0,"当日盈亏(净额)":0.0,"费用":0,"当日盈亏":0.0,"冻结资金":0,"昨数量":20000.0,"昨收盘":11.64,"行业名称":"申万汽车","应计利息":0,"剩余期限":0,"组合类型":"","占净值比例(%)":0.0232799376982307,"Flag":0),
("组ID":"","截止日":45147.0,"代码":"SH600369","名称":"西南证券","方向":1,"数量":20000.0,"收盘":4.7,"市值":94000.0,"总成本":74200.0,"成本价":3.71,"浮动盈亏":19800.0,"浮盈率(%)":26.6846361185984,"证券类别":2,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"保证金占用":94000.0,"市值变动":-1600.0,"买入金额":0,"卖出金额":0,"买入金额2":0,"卖出金额2":0,"分红金额":0,"配股金额":0,"迁入金额":0,"迁出金额":0,"迁入金额2":0,"迁出金额2":0,"买入金额(税后)":0,"卖出金额(税后)":0,"买入金额2(税后)":0,"卖出金额2(税后)":0,"迁入金额(税后)":0,"迁出金额(税后)":0,"迁入金额2(税后)":0,"迁出金额2(税后)":0,"调入金额":0,"调出金额":0,"调入金额2":0,"调出金额2":0,"当日盈亏(净额)":-1600.0,"费用":0,"当日盈亏":-1600.0,"冻结资金":0,"昨数量":20000.0,"昨收盘":4.78,"行业名称":"申万非银金融","应计利息":0,"剩余期限":0,"组合类型":"","占净值比例(%)":0.00939997484378732,"Flag":0)
);
tFHSG:=array(
("组ID":"","截止日":45148.0,"代码":"SH600369","名称":"西南证券","方向":1,"动作":2,"成交量":0,"成交价":0,"成交金额":600.0,"乘数":1,"保证金比例(%)":100,"费率(%)":0,"备注":"分红","昨数量":20000.0,"红利比":0.03,"实得比":0.03,"送股比":0,"送股数量":0,"分红金额":600.0,"分红再投资数量":0,"组合类型":""),
("组ID":"","截止日":45148.0,"代码":"SH600081","方向":1,"动作":4,"成交量":6000.0,"成交价":9.59,"成交金额":57540.0,"乘数":1,"保证金比例(%)":100,"费率(%)":0,"备注":"配股","组合类型":"")
);
return PortfolioBackTesting_Quantity_VolAfterDividendandSplit(pfInfoData,EndT,tpGP,tFHSG);
//结果:
####### PortfolioBackTesting_Quantity_TradeOfDelist
范例
//换股退市
PfInfoData :=array((
"现金选择权":0,
"到期自动平仓":1
));
EndT:=inttodate(20230317);
tpgp:=array(
("截止日":45001.0,"代码":"SZ002013","名称":"中航机电","方向":1,"数量":100000.0,"收盘":10.78,"市值":1078000.0,"总成本":1022000.0,"成本价":10.22,"浮动盈亏":56000.0,"证券类别":1,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"今数量":100000.0,"今成本价":10.22,"今总成本":1022000.0),
("截止日":45001.0,"代码":"SZ003816","名称":"中国广核","方向":1,"数量":100000.0,"收盘":2.89,"市值":289000.0,"总成本":270000.0,"成本价":2.7,"浮动盈亏":19000.0,"证券类别":1,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"今数量":100000.0,"今成本价":2.7,"今总成本":270000.0)
);
return PortfolioBackTesting_Quantity_TradeOfDelist(pfInfoData,EndT,tpGP);
//结果
范例二:
//现金退市
PfInfoData :=array((
"现金选择权":1,
"到期自动平仓":1
));
EndT:=inttodate(20230317);
tpgp:=array(
("截止日":45001.0,"代码":"SZ002013","名称":"中航机电","方向":1,"数量":100000.0,"收盘":10.78,"市值":1078000.0,"总成本":1022000.0,"成本价":10.22,"浮动盈亏":56000.0,"证券类别":1,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"今数量":100000.0,"今成本价":10.22,"今总成本":1022000.0),
("截止日":45001.0,"代码":"SZ003816","名称":"中国广核","方向":1,"数量":100000.0,"收盘":2.89,"市值":289000.0,"总成本":270000.0,"成本价":2.7,"浮动盈亏":19000.0,"证券类别":1,"乘数":1,"保证金比例(%)":100,"保证金比例II(%)":0,"今数量":100000.0,"今成本价":2.7,"今总成本":270000.0)
);
return PortfolioBackTesting_Quantity_TradeOfDelist(pfInfoData,EndT,tpGP);
//结果
####### PortfolioBackTesting_Quantity_VolAfterSplit
范例
tpGP:=array(
("截止日":45147.0,"代码":"SH600369","方向":1.0,"数量":117600.0,"总成本":436296.0,"成本价":3.71,"乘数":1.0,"保证金比例(%)":100.0),
("截止日":45147.0,"代码":"SH600081","方向":1.0,"数量":96400.0,"总成本":1203072.0,"成本价":12.48,"乘数":1.0,"保证金比例(%)":100.0),
("截止日":45147.0,"代码":"SH600006","方向":1.0,"数量":21400.0,"总成本":129684.0,"成本价":6.03,"乘数":1.0,"保证金比例(%)":100.0));
EndT:=inttodate(20230810);
pfInfoData:=array(
("初始资金":10000000.0,"分红再投资":0.0,"自动参与配股":1.0,"费用类别":1.0));
return PortfolioBackTesting_Quantity_VolAfterSplit(tpGP,EndT,pfInfoData);
//结果
####### 中间函数
######## 内容
- GetContractMultiplier
- GetMarginRatio
- GetMarginRatio2
- DepositOfOption
- DepositOfSecurity
- GetTradeDeposit
- GetPriceOfUnderlying
- DepositOfOptionByGroup
- GetGroupDeposit
- BondPayMentByEndt
- GetBondMaturityTradeData
- GetLowestFee
- TSTrade_CalCC
######## GetContractMultiplier
范例
setsysparam(pn_stock(),'IF2301');
setsysparam(pn_date(),inttodate(20230105));
return GetContractMultiplier();
//结果:300
######## GetMarginRatio
范例
setsysparam(pn_stock(),'IO2306-C-3100');
setsysparam(pn_date(),inttodate(20230105));
return GetMarginRatio();
//结果:12
######## GetMarginRatio2
范例
setsysparam(pn_stock(),'IO2306-C-3100');
setsysparam(pn_date(),inttodate(20230105));
return GetMarginRatio2();
//结果:50
######## DepositOfOption
范例
setsysparam(pn_date(),inttodate(20230104));
OptionID:='OP10004679';
OptionPrice:=0.4855;
StockPrice:=2.66;
p1:=12;
p2:=7;
return DepositOfOption(OptionID,OptionPrice,StockPrice,p1,p2);
//结果:0.8047
######## DepositOfSecurity
范例
//期权保证金
setsysparam(pn_date(),inttodate(20230104));
StockID:='OP10004679';
position:=0;
price:=0.4855;
price2:=2.66;
margin:=12;
margin2:=7;
stockvol:=100;
stockunit:=10142;
return DepositOfSecurity(StockID,position,price,price2,margin,margin2,stockvol,stockunit);
//结果:816126.74
范例二:
//期货保证金
setsysparam(pn_date(),inttodate(20230104));
StockID:='IF01';
position:=1;
price:=3895;
price2 :=0;
margin:=8;
margin2:=0;
stockvol:=100;
stockunit:=300;
return DepositOfSecurity(StockID,position,price,price2,margin,margin2,stockvol,stockunit);
//结果:9348000
######## GetTradeDeposit
范例
tjy:=array(
("截止日":44930.0,"代码":"SZ000001","方向":1.0,"动作":0,"乘数":1.0,"保证金比例(%)":100.0,"保证金比例II(%)":0,"成交量":10000.0,"成交价":14.32),
("截止日":44930.0,"代码":"IF01","方向":1.0,"动作":0,"乘数":300.0,"保证金比例(%)":8.0,"保证金比例II(%)":0,"成交量":100.0,"成交价":3895.0),
("截止日":44930.0,"代码":"OP10004688","方向":1.0,"动作":0,"乘数":10142.0,"保证金比例(%)":12.0,"保证金比例II(%)":7.0,"成交量":100.0,"成交价":0.0142),
("截止日":44930.0,"代码":"OP10004679","方向":0,"动作":0,"乘数":10142.0,"保证金比例(%)":12.0,"保证金比例II(%)":7.0,"成交量":100.0,"成交价":0.473),
("截止日":44930.0,"代码":"CF307C14000","方向":0,"动作":0,"乘数":5.0,"保证金比例(%)":5.0,"保证金比例II(%)":0,"成交量":100.0,"成交价":877.0)
);
GetTradeDeposit(tjy);
Return tjy;
//结果
######## GetPriceOfUnderlying
范例
范例一:
//期权标的证券系统昨收
OptionID:='OP10004679';
EndT:=inttodate(20230104);
isOpen:=1;
return GetPriceOfUnderlying(OptionID,EndT,isOpen);
//结果:2.651
范例二:
//期权标的证券收盘
OptionID:='OP10004679';
EndT:=inttodate(20230104);
return GetPriceOfUnderlying(OptionID,EndT);
//结果:2.66
######## DepositOfOptionByGroup
范例
//这两个合约构成认沽熊市价差策略PNSJC
//PNSJC组合策略的保证金计算方式是:两个期权合约的行权价之差
setsysparam(pn_date(),inttodate(20190731));
Option:=1;
OptionID:='OP10001902';
position:=1;
OptionID2:='OP10001906';
position2:=0;
Price:=spec(settlement(),OptionID);
price2:=spec(settlement(),OptionID2);
//两个期权合约标的物SH510050
StockPrice:=spec(close(),'SH510050');
P1:=12;
P2:=7;
margin:=0;
stockvol:=5;
stockunit:=10000;
return DepositOfOptionByGroup(Option,OptionID,position,OptionID2,position2,Price,price2,StockPrice,P1,P2,margin,stockvol,stockunit);
//结果:5000
######## GetGroupDeposit
范例
//这两个合约构成认沽熊市价差策略PNSJC
setsysparam(pn_date(),inttodate(20190731));
IDTYPE:='PNSJC';
OptionID:='OP10001902';
position:=1;
OptionID2:='OP10001906';
position2:=0;
Price:=spec(settlement(),OptionID);
price2:=spec(settlement(),OptionID2);
//两个期权合约标的物SH510050
StockPrice:=spec(close(),'SH510050');
P1:=12;
P2:=7;
stockvol:=5;
stockunit:=10000;
return GetGroupDeposit(IDTYPE,OptionID,position,OptionID2,position2,Price,price2,StockPrice,P1,P2,stockvol,stockunit);
//结果:5000
######## BondPayMentByEndt
范例
Bondarr:=array('SH196237','SZ101516','SH175901');
Endt:=inttodate(20230116);
return BondPayMentByEndt(Bondarr,Endt);
//结果
######## GetBondMaturityTradeData
范例
EndT:=inttodate(20170613);
tpgp:=array(
("截止日":42734.0,"代码":"BK078020","方向":1.0,"乘数":1.0,"保证金比例(%)":100.0,"保证金比例II(%)":NIL,"数量":1330.0,"收盘":103.68,"市值":137899.32,"保证金占用":137899.32,"占净值比例(%)":0.14,"总成本":134984.59,"成本价":101.49,"浮动盈亏":2914.73,"浮盈率(%)":2.16,"证券类别":18.0,"行业名称":0.0),
("截止日":42734.0,"代码":"BK030014","方向":1.0,"乘数":1.0,"保证金比例(%)":100.0,"保证金比例II(%)":NIL,"数量":25131.0,"收盘":76.76,"市值":1929151.06,"保证金占用":1929151.06,"占净值比例(%)":1.9,"总成本":1895204.27,"成本价":75.41,"浮动盈亏":33946.78,"浮盈率(%)":1.79,"证券类别":18.0,"行业名称":0.0)
);
return GetBondMaturityTradeData(EndT,tpgp);
//结果
######## GetLowestFee
范例
return array(
'不启用最低费用':GetLowestFee(999536,0.01,0,0,100,100),
'启用最低费用': GetLowestFee(999536,0.01,0,1,100,100)
);
//结果:array("不启用最低费用":99.9536,"启用最低费用":100)
######## TSTrade_CalCC
范例
EndT:=inttodate(20150215);
tpGP:=array(
("主码":"JY020101","截止日":42049.0,"代码":"SH204014","方向":1.0,"数量":10000.0,"成本价":90.0,"总成本":900000.0,"乘数":1.0,"保证金比例(%)":100.0,"组ID":""),
("主码":"JY020102","截止日":42049.0,"代码":"SH204014","方向":1.0,"数量":3000.0,"成本价":80.0,"总成本":240000.0,"乘数":1.0,"保证金比例(%)":100.0,"组ID":""),
("主码":"JY020103","截止日":42049.0,"代码":"SZ131802","方向":1.0,"数量":3000.0,"成本价":70.0,"总成本":210000.0,"乘数":1.0,"保证金比例(%)":100.0,"组ID":""),
("主码":"JY020104","截止日":42049.0,"代码":"SZ131802","方向":1.0,"数量":4000.0,"成本价":60.0,"总成本":240000.0,"乘数":1.0,"保证金比例(%)":100.0,"组ID":"")
);
tjy:=array(
("主码":"JY021501","截止日":42050.0,"代码":"SZ131802","方向":1.0,"动作":1.0,"成交价":90.0,"成交量":4000.0,"成交金额(税前)":360000.0,"费用":36.0,"成交金额2":360000.0,"序号":1.0,"乘数":1.0,"保证金比例(%)":100.0,"利息":3600.0,"组ID":""),
("主码":"JY021502","截止日":42050.0,"代码":"SH204014","方向":1.0,"动作":1.0,"成交价":80.0,"成交量":5000.0,"成交金额(税前)":400000.0,"费用":45.0,"成交金额2":400000.0,"序号":2.0,"乘数":1.0,"保证金比例(%)":100.0,"利息":4000.0,"组ID":""),
("主码":"JY021503","截止日":42050.0,"代码":"SH204014","方向":1.0,"动作":1.0,"成交价":85.0,"成交量":6000.0,"成交金额(税前)":510000.0,"费用":80.0,"成交金额2":510000.0,"序号":3.0,"乘数":1.0,"保证金比例(%)":100.0,"利息":5100.0,"组ID":""),
("主码":"JY021504","截止日":42050.0,"代码":"SZ131802","方向":1.0,"动作":1.0,"成交价":100.0,"成交量":2000.0,"成交金额(税前)":200000.0,"费用":40.0,"成交金额2":200000.0,"序号":4.0,"乘数":1.0,"保证金比例(%)":100.0,"利息":2000.0,"组ID":""),
("主码":"JY021505","截止日":42050.0,"代码":"SH204014","方向":1.0,"动作":0.0,"成交价":95.0,"成交量":1000.0,"成交金额(税前)":95000.0,"费用":35.0,"成交金额2":95000.0,"序号":5.0,"乘数":1.0,"保证金比例(%)":100.0,"利息":950.0,"组ID":"")
);
return TSTrade_CalCC(EndT,tpGP,tjy);
//结果
####### PortfolioBackTesting_Quantity_GetClose
范例
setsysparam(pn_stock(),'IF01');
setsysparam(pn_cycle(),cy_day());
Endt:=inttodate(20230104);
Stype:=stocktype(DefaultStockID());
closePrice:=PortfolioBackTesting_Quantity_GetClose(Endt,Stype,0);
settleprice:=PortfolioBackTesting_Quantity_GetClose(Endt,Stype,1);
return array(
'收盘价':closePrice,
'结算价':settleprice
);
//结果:array("收盘价":3898.0,"结算价":3895.0);
指数基金中间函数
####### 内容
- PortfolioBackTesting_IndexFund_DataCheck
- PortfolioBackTesting_IndexFund_GetIndexSamples
- PortfolioBackTesting_IndexFund_GetIndexSamplesByMarketValue
- PortfolioBackTesting_IndexFund_GetTradingData
- PortfolioBackTesting_IndexFund_GetIndexSamplesPercent
####### PortfolioBackTesting_IndexFund_DataCheck
范例
PfInfoData:=array();
return PortfolioBackTesting_IndexFund_DataCheck(PFInfoData,'SH000300');
//结果:
####### PortfolioBackTesting_IndexFund_GetIndexSamples
范例
PfInfoData:=array(
("初始资金":2000000000.00,"指数成分数据来源":0.00,"初始建仓策略":0.00,"首日建仓比例(%)":20.00,"每日建仓比例变化(%)":0.00,"目标建仓比例(%)":0.00,"涨停不交易":1.00,"跌停不交易":1.00,"停牌不交易":1.00,"成交价类别":1.00,"成交量取整模式":1.00,"分红再投资":0.00,"最大成交金额占可交易金额比例(%)":5.00,"最小调仓比例(%)":0.01,"开仓费率(%)":0.1,"平仓费率(%)":0.1,"指数成分源数据目录":"C:\\Test\\指数成分-输入\\","指数成分输出目录":"C:\\Test\\指数成分-输出\\","指数每日交易输出目录":"C:\\Test\\指数交易-输出\\")); PortfolioBackTesting_IndexFund_GetIndexSamples(PfInfoData,'SH000300',39086,r);
return r;
//结果:
####### PortfolioBackTesting_IndexFund_GetIndexSamplesByMarketValue
范例
return PortfolioBackTesting_IndexFund_GetIndexSamplesByMarketValue(
'SH000300',
inttodate(20121029),
inttodate(20121030));
//结果:
####### PortfolioBackTesting_IndexFund_GetTradingData
范例
PfInfoData:=array(
("初始资金":2000000000.00,"指数成分数据来源":0.00,"初始建仓策略":0.00,"首日建仓比例(%)":20.00,"每日建仓比例变化(%)":0.00,"目标建仓比例(%)":0.00,"涨停不交易":1.00,"跌停不交易":1.00,"停牌不交易":1.00,"成交价类别":1.00,"成交量取整模式":1.00,"分红再投资":0.00,"最大成交金额占可交易金额比例(%)":5.00,"最小调仓比例(%)":0.01,"开仓费率(%)":0.1,"平仓费率(%)":0.1,"指数成分源数据目录":"C:\\Test\\指数成分-输入\\","指数成分输出目录":"C:\\Test\\指数成分-输出\\","指数每日交易输出目录":"C:\\Test\\指数交易-输出\\"));
PortfolioBackTesting_IndexFund_GetIndexSamples(PfInfoData,'SH000300',39086,r);
return r;
//结果:
####### PortfolioBackTesting_IndexFund_GetIndexSamplesPercent
范例
PfInfoData:=array(
("初始资金":2000000000.00,"指数成分数据来源":0.00,"初始建仓策略":0.00,"首日建仓比例(%)":20.00,"每日建仓比例变化(%)":0.00,"目标建仓比例(%)":95.00));
tpIS:=array(array('比例(%)':30));
PortfolioBackTesting_IndexFund_GetIndexSamplesPercent(PfInfoData,'SH000300',INTTODATE(20121029),INTTODATE(20121031),TPIS);
return tpIS;
//结果:
中间函数
####### 内容
- PortfolioBackTesting_InitInvestmentRatio
- PortfolioBackTesting_BenchmarkReturn
- PortfolioBackTesting_BuySellDefaultRatio
- PortfolioBackTesting_TransactionPrice
- PortfolioBackTesting_AdjustVolByBonusShare
- PortfolioBackTesting_GetBenchmarkReturn
- PortfolioBackTesting_TransactionVol
- PortfolioBackTesting_CalBenchmarkReturn
####### PortfolioBackTesting_InitInvestmentRatio
范例
return PortfolioBackTesting_InitInvestmentRatio(inttodate(20121029),100000); //对资产配资初始化
//结果:
####### PortfolioBackTesting_BenchmarkReturn
范例
t:=array(('截止日':41213,'净值收益率(%)':0.012),('截止日':41214,'净值收益率(%)':0.018),('截止日':41215,'净值收益率(%)':0.022));
PortfolioBackTesting_BenchmarkReturn('SH000300',t);
RETURN T;
//结果:
####### PortfolioBackTesting_BuySellDefaultRatio
范例
BuyRatio:=0.3;
SellRatio:=NIL;
BuyOtherFee:=NIL;
PortfolioBackTesting_BuySellDefaultRatio(
'SH000300',
inttodate(20121029),
BuyRatio,
SellRatio,
BuyOtherFee,
SellOtherFee);
return array(BuyRatio,SellRatio,BuyOtherFee);
//结果:
####### PortfolioBackTesting_TransactionPrice
范例
return PortfolioBackTesting_TransactionPrice('SH600000',inttodate(20121029),1);
//结果:7.46
####### PortfolioBackTesting_AdjustVolByBonusShare
范例
tpGP:=array(
("代码":"SH600143","名称":"金发科技","数量":288760.00),
("代码":"SH600601","名称":"方正科技","数量":1334310.00),
("代码":"SH600839","名称":"四川长虹","数量":1368608.00));
return PortfolioBackTesting_AdjustVolByBonusShare(tpGP,inttodate(20070702));
//结果:
####### PortfolioBackTesting_GetBenchmarkReturn
范例
return PortfolioBackTesting_GetBenchmarkReturn(
'SH000300',
inttodate(20070701),
inttodate(20120301),
95);
//结果:
####### PortfolioBackTesting_TransactionVol
范例
return PortfolioBackTesting_TransactionVol(1,0.3,0.2,20030); //结果:20000
####### PortfolioBackTesting_CalBenchmarkReturn
范例
范例一:
//单个市场指数作为基准:沪深300作为基准
BMinfo:=array(
"复合收益率计算方法":0,
"基准类型":0,
"基准代码":"沪深300"
);
BMArr:= array(
("截止日":44930.0,"基准收益率(%)":0.129851617552233),
("截止日":44931.0,"基准收益率(%)":1.9427566417088),
("截止日":44932.0,"基准收益率(%)":0.310201774529736),
("截止日":44935.0,"基准收益率(%)":0.809638289821103),
("截止日":44936.0,"基准收益率(%)":0.10849664186435),
("截止日":44937.0,"基准收益率(%)":-0.185260702515608),
("截止日":44938.0,"基准收益率(%)":0.19546732171066),
("截止日":44939.0,"基准收益率(%)":1.40641711283184),
("截止日":44942.0,"基准收益率(%)":1.56065815408548),
("截止日":44943.0,"基准收益率(%)":-0.017450609711639),
("截止日":44944.0,"基准收益率(%)":-0.167452125476234),
("截止日":44945.0,"基准收益率(%)":0.622068882263999),
("截止日":44946.0,"基准收益率(%)":0.614026773819506)
);
t:=array(
("截止日":44930.0,"净值收益率(%)":-0.332793457),
("截止日":44931.0,"净值收益率(%)":-0.263773111664858),
("截止日":44932.0,"净值收益率(%)":0.0354019916831471),
("截止日":44935.0,"净值收益率(%)":0.277866916531731),
("截止日":44936.0,"净值收益率(%)":0.351341637362642),
("截止日":44937.0,"净值收益率(%)":-0.857619853637283),
("截止日":44938.0,"净值收益率(%)":-0.829772904725061),
("截止日":44939.0,"净值收益率(%)":-1.37385104622509),
("截止日":44942.0,"净值收益率(%)":-0.698157299507218),
("截止日":44943.0,"净值收益率(%)":-1.30100783081455),
("截止日":44944.0,"净值收益率(%)":0.328379438447828),
("截止日":44945.0,"净值收益率(%)":0.204243778249732),
("截止日":44946.0,"净值收益率(%)":-0.398048534322399)
);
return PortfolioBackTesting_CalBenchmarkReturn(BMinfo,BMArr,t);
//结果
范例二:
//多个市场市场指数加权作为基准
//array(("代码":"SH000012","比例(%)":35),("代码":"SH000300","比例(%)":65))
BMinfo:=array(
"复合收益率计算方法":0,//累计收益率计算方式0-累成,1-累加
"基准类型":1,
"基准代码":"复合基准"
);
BMArr:= array(
("截止日":43801.0,"基准收益率(%)":0.123171172283601),
("截止日":43802.0,"基准收益率(%)":0.25829833514229),
("截止日":43803.0,"基准收益率(%)":-0.020653085113629),
("截止日":43804.0,"基准收益率(%)":0.505178796361568),
("截止日":43805.0,"基准收益率(%)":0.388033089336361),
("截止日":43808.0,"基准收益率(%)":-0.105537214736128),
("截止日":43809.0,"基准收益率(%)":0.0888504434722582),
("截止日":43810.0,"基准收益率(%)":0.0416111626986788)
);
t:=array(
("截止日":43801.0,"净值收益率(%)":-0.0021054),
("截止日":43802.0,"净值收益率(%)":0.0144003031839832),
("截止日":43803.0,"净值收益率(%)":0.0105986969326069),
("截止日":43804.0,"净值收益率(%)":0.0173960172514344),
("截止日":43805.0,"净值收益率(%)":0.0361854192300629),
("截止日":43808.0,"净值收益率(%)":0.0275789036279854),
("截止日":43809.0,"净值收益率(%)":0.0241748353018918),
("截止日":43810.0,"净值收益率(%)":0.00659154340575376)
);
return PortfolioBackTesting_CalBenchmarkReturn(BMinfo,BMArr,t);
//结果
量化选股
内容
- 股票价格形态相似性度量
股票价格形态相似性度量
####### 内容
- Stock_pricesamebyevalute
- Stock_pricesamebyofferdata
- Stock_samestockdata
- Ts_sampevalutelib
####### Stock_pricesamebyevalute
- Stock_pricesamebyevalute
- Stock_pricesamebyofferdata
- Stock_samestockdata
- Ts_sampevalutelib
####### Stock_pricesamebyofferdata
- Stock_pricesamebyevalute
- Stock_pricesamebyofferdata
- Stock_samestockdata
- Ts_sampevalutelib
####### Stock_samestockdata
- Stock_pricesamebyevalute
- Stock_pricesamebyofferdata
- Stock_samestockdata
- Ts_sampevalutelib
####### Ts_sampevalutelib
- Stock_pricesamebyevalute
- Stock_pricesamebyofferdata
- Stock_samestockdata
- Ts_sampevalutelib
股权分置
内容
- SF_PE
SF_PE
范例
endt:=inttodate(20120925);
Return SF_PE("SH600352",endt,12,0.32,2.5);
//结果:
价值评估
内容
- EV_PE
- EV_PB
- EV_FCFF_I
- EV_FCFF_II
- EV_FCFF_II_Sensitivity
- WACC
EV_PE
范例
stocks:='SH600053;SH600836;SH600963;SH600966;SZ000488;SZ000506;SZ00069';
endt:=inttodate(20120925);
Return EV_PE(endt,false,stocks);
//结果:
EV_PB
范例
stocks:='SH600053;SH600836;SH600963;SH600966;SZ000488;SZ000506;SZ00069';
endt:=inttodate(20120925);
Return EV_PB(Stocks,endt);
//结果:
EV_FCFF_I
范例
data:=array(("含义":"EBIT","数值":12834.16),("含义":"折旧与摊销","数值":2319.98),("含义":"追加营运资本","数值":534.22),("含义":"资本支出","数值":4497.2));
G:=array(
("含义":"年数","高速增长阶段":5.00,"稳定增长阶段":1.00),
("含义":"EBIT增长率(%)","高速增长阶段":10.00,"稳定增长阶段":3.00),
("含义":"折旧增长率(%)","高速增长阶段":10.00,"稳定增长阶段":3.00),
("含义":"追加运营资本增长率(%)","高速增长阶段":10.00,"稳定增长阶段":3.00),
("含义":"资本支出增长率(%)","高速增长阶段":10.00,"稳定增长阶段":3.00),
("含义":"无风险利率Rf(%)","高速增长阶段":2.8,"稳定增长阶段":3.4),
("含义":"预期收益率Rm(%)","高速增长阶段":10.00,"稳定增长阶段":10.00),
("含义":"税率T(%)","高速增长阶段":18.00,"稳定增长阶段":18.00),
("含义":"债务成本Kd(%)","高速增长阶段":4.1,"稳定增长阶段":5.33),
("含义":"资产负债率δ(%)","高速增长阶段":40.00,"稳定增长阶段":40.00));
RETURN EV_FCFF_I(Data,G,2);
//结果:
EV_FCFF_II
范例
data:=array(
("项目":"税率","第1年":0.33,"第2年":0.33,"第3年":0.33,"第4年":0.33,"第5年":0.33,"第6年":0.33,"第7年":0.33,"第8年":0.33,"第9年":0.33,"第10年":0.33,"第11年":0.33,"第12年":0.33),
("项目":"EBIT","第1年":4318.00,"第2年":5961.00,"第3年":8949.00,"第4年":10161.00,"第5年":11449.00,"第6年":13848.00,"第7年":14704.00,"第8年":15735.00,"第9年":17654.00,"第10年":16994.00,"第11年":16986.00,"第12年":16977.00),
("项目":"折旧与摊销","第1年":898.00,"第2年":1190.00,"第3年":1790.00,"第4年":2090.00,"第5年":2390.00,"第6年":2990.00,"第7年":3290.00,"第8年":3590.00,"第9年":4190.00,"第10年":4190.00,"第11年":4190.00,"第12年":4190.00),
("项目":"追加营运资本","第1年":0.00,"第2年":0.00,"第3年":0.00,"第4年":0.00,"第5年":0.00,"第6年":0.00,"第7年":0.00,"第8年":0.00,"第9年":0.00,"第10年":0.00,"第11年":0.00,"第12年":0.00),
("项目":"资本性支出","第1年":0.00,"第2年":9350.00,"第3年":18700.00,"第4年":9350.00,"第5年":9350.00,"第6年":18700.00,"第7年":9350.00,"第8年":9350.00,"第9年":18700.00,"第10年":0.00,"第11年":0.00,"第12年":0.00));
return EV_FCFF_II(data,10121,2,785600,0,3.84,inttodate(20110101),inttodate(20111231),10,4.536,15.04);
//结果:
EV_FCFF_II_Sensitivity
范例
data:=array(
("项目":"税率","第1年":0.33,"第2年":0.33,"第3年":0.33,"第4年":0.33,"第5年":0.33,"第6年":0.33,"第7年":0.33,"第8年":0.33,"第9年":0.33,"第10年":0.33,"第11年":0.33,"第12年":0.33),
("项目":"EBIT","第1年":4318.00,"第2年":5961.00,"第3年":8949.00,"第4年":10161.00,"第5年":11449.00,"第6年":13848.00,"第7年":14704.00,"第8年":15735.00,"第9年":17654.00,"第10年":16994.00,"第11年":16986.00,"第12年":16977.00),
("项目":"折旧与摊销","第1年":898.00,"第2年":1190.00,"第3年":1790.00,"第4年":2090.00,"第5年":2390.00,"第6年":2990.00,"第7年":3290.00,"第8年":3590.00,"第9年":4190.00,"第10年":4190.00,"第11年":4190.00,"第12年":4190.00),
("项目":"追加营运资本","第1年":0.00,"第2年":0.00,"第3年":0.00,"第4年":0.00,"第5年":0.00,"第6年":0.00,"第7年":0.00,"第8年":0.00,"第9年":0.00,"第10年":0.00,"第11年":0.00,"第12年":0.00),
("项目":"资本性支出","第1年":0.00,"第2年":9350.00,"第3年":18700.00,"第4年":9350.00,"第5年":9350.00,"第6年":18700.00,"第7年":9350.00,"第8年":9350.00,"第9年":18700.00,"第10年":0.00,"第11年":0.00,"第12年":0.00));
return EV_FCFF_II_Sensitivity(data,10121,2,785600,0,2,7.5,12);
//结果:
WACC
范例
return WACC(3.84,10.84,0.637,4.1,40); //结果:6.6194
期权定价
内容
- BinomialTreeOfStock
- BinomialTreeOfFuture
- BinomialTreeOfCoin
- B_SOfStock
- B_SofIndex
- B_SofCoin
- B_SofFuture
- BinomialTreeOfIndex
- B_SOfStock_1
- Black_Scholes
- B_SOfStock_IV
- BinomialTree
- sfNormal2
BinomialTreeOfStock
范例
return BinomialTreeOfStock(0,50,50,10,40,5,3);
//结果:
BinomialTreeOfFuture
范例
//用二叉树对期货美式看涨期权进行定价
Return BinomialTreeOfFuture(0,300,350,5,10,5,3);
结果如截图:
参考详细说明:期权定价基础模型
BinomialTreeOfCoin
范例
Return BinomialTreeOfCoin(0,1.61,1.6,8,10,12,12,3);
//结果:
B_SOfStock
范例
Return B_SOfStock(0,4.62,4.5,5,26,12);
//结果:
B_SofIndex
范例
Return B_SOfIndex(0,310,300,8,3,20,2);
//结果:
B_SofCoin
范例
//用B-S 对外汇看跌期权进行定价
Return B_SOfCoin(1,1.61,1.6,5,3,10,5);
结果如截图:
参考详细说明:期权定价基础模型
B_SofFuture
范例
Return B_SOfFuture(0,20,20,9,25,4);
//结果:
BinomialTreeOfIndex
范例
Return BinomialTreeOfIndex(0,1.61,1.6,8,10,12,12,3);
//结果:
B_SOfStock_1
范例
Return B_SOfStock_1(0,4.62,4,5,0.98,12);
//结果:
Black_Scholes
范例
Return Black_Scholes(0,0,42,40,10,20,0.5,0);
//结果:
B_SOfStock_IV
范例
//用 B-S 计算股票期权的隐含波动率
Return B_SOfStock_IV(0,4.62,4.5,5,0.68,12);
//结果27.8
参考详细说明:期权定价基础模型
BinomialTree
范例
Return BinomialTree(0,0,42,40,10,20,0.5,0,2);
//结果:
sfNormal2
范例
Return sf_Normal2_(0.77);
//结果:0.77935
套利
内容
- ETF50SampleData
ETF50SampleData
范例
Return ETF50SampleData();
//结果:
投资组合
内容
- FundPortfolio_Pgm
- FundPortfolio_db_Pgm
- PortfolioHVByPE
- StocksPortfolio_Pgm
- NPartPortfolio_Pgm
- PortfolioTestByAny_Pgm
- Common
- Markowitz
- Misc
- SIM
- 收益和风险
- 投资组合历史验证
- 相关系数与BetaAlpha
- 组合优化
FundPortfolio_Pgm
范例
BegTime:=IntToDate(20120912);
EndTime:=inttodate(20121023);
ClassData:=array(('代码':2,'名称':'万科A','行业名称':'房地产'),('代码':605,'名称':'韶能股份','行业名称':'电力'));
Portfolio:=array(('代码':000002,'名称':'万科A','数量':31284),('代码':000605,'名称':'洞庭','数量':31284));
return FundPortfolio_Pgm(BegTime,EndTime,ClassData,Portfolio,4,0,2,0,2);
//结果:
FundPortfolio_db_Pgm
范例
BegTime:=IntToDate(20120912);
EndTime:=inttodate(20121023);
return FundPortfolio_db_Pgm(BegTime,EndTime,'ClassData','Portfolio',4,0,2,0,2);
//结果:
PortfolioHVByPE
范例
Return PortfolioHVByPE("深证A股;上证A股",inttodate(20120912),inttodate(20121022),500,3,1,10,2,1);
//结果:
StocksPortfolio_Pgm
范例
Return
StocksPortfolio_Pgm("沪深300",inttodate(20120712),inttodate(20121022),
1,0,false,-0.3,5);
//结果:
NPartPortfolio_Pgm
范例
Return
NPartPortfolio_Pgm("申万采掘",
'',
@StockPE3_V(),
10,
0,
@(reportofall(9900000,DefaultRepID())>0),
inttodate(20120920),
inttodate(20121020),
1,
2,
"SH000001",
true);
//结果:
PortfolioTestByAny_Pgm
范例
Return PortfolioTestByAny_Pgm(
"深证A股;上证A股",
inttodate(20120920),
inttodate(20121022),
500,
30,
@StockPE3_V(),
true,
3,
0,
10,
2,
1,
@true);
//结果:
Common
####### 内容
- GetTrueRp
- PortfolioTrack
- StocksPortfolio
- pf_CallBack1
- pf_IncomeMaxCallBack
- pf_OutPut
- pf_RiskMinCallBack
- AdjustSampleByAny
- PortfolioByAny
- PortfolioTrackingByAny
- NeedAdjustSampleByDays
####### GetTrueRp
范例
a:=array(2,3,4,5,8);
SetSysParam('TZZHRiMatrix',a);
w:=array(1,4,6,3,7);
Return GetTrueRp(w); //结果:5.19048
####### PortfolioTrack
范例
Return PortfolioTrack("Data",500,inttodate(20120721),inttodate(20121022));
//结果:
####### StocksPortfolio
范例
Return StocksPortfolio(
array('SH600001','SH600000'),
inttodate(20120721),
inttodate(20121002),
0,
0,
0,
true,
"");
//结果:
####### pf_CallBack1
范例
Return pf_CallBack1(Array(3,4,5),2); //结果:0.3872
####### pf_IncomeMaxCallBack
范例
a:=array(2,3,4,5,8);
SetSysParam('TZZHRiMatrix',a);
setSysParam('TZZHRp',3);
w:=array(1,4,6,3,7);
Return pf_IncomeMaxCallBack(w,2); //结果:-4.87843
####### pf_OutPut
####### pf_RiskMinCallBack
####### AdjustSampleByAny
范例
Return AdjustSampleByAny(
"深证A股",
inttodate(20120916),
500,
@close(),
false,
0,
7,
9,
0,
@true);
//结果:
####### PortfolioByAny
范例
Return PortfolioByAny(
array("SH600718","SZ000920"),
inttodate(20120916),
@open(),
1,0,7,8,@true);
//结果:
####### PortfolioTrackingByAny
范例
StockArr:=array(('代码':"SH600718",'股数':20),('代码':"SZ000920",'股数':30));
begt:=inttodate(20121018);
endt:=inttodate(20121026);
Return PortfolioTrackingByAny(
"深证A股;上证A股",
StockArr,
begt,
endt,
3,
@stockzf3(),
false,
0,0,10,@true);
//结果:
####### NeedAdjustSampleByDays
范例
begt:=inttodate(20121018);
endt:=inttodate(20121026);
Return NeedAdjustSampleByDays(begt,endt,9); //结果:0
Markowitz
####### 内容
- MarkowitzBasicData
- MarkowitzVARRp
- pf_StocksCovMatrix
- pf_StocksZfMatrix
####### MarkowitzBasicData
范例
StockArr:=array("SZ000099","SH600000","SZ000002");
Return MarkowitzBasicData(
StockArr,
inttodate(20120818),
inttodate(20121019));
//结果:-0.01625
####### MarkowitzVARRp
范例
w:=array(1,2,3,4);
StockArr:=array("SZ000099","SH600000","SZ000001","SZ000002");
MarkowitzBasicData(StockArr,inttodate(20120818),inttodate(20121019));
return MarkowitzVARRp(w); //结果:1.8133
####### pf_StocksCovMatrix
范例
tb:=array((1,2,3),(1,3,4),(3,2,5));
return pf_StocksCovMatrix(tb);
//结果:
####### pf_StocksZfMatrix
范例
StockArr:=array("SZ000099","SH600000","SZ000001","SZ000002");
begt:=inttodate(20021015);
endt:=inttodate(20021025);
Return pf_StocksZfMatrix(StockArr,begt,endt);
//结果:
Misc
####### 内容
- EncodePortfolioName
####### EncodePortfolioName
范例
return EncodePortfolioName(
"某股票",
inttodate(20120618),i
nttodate(20120919),0,0,0,0);
//结果:’某股票,从20120618到20120919,Markowitz法,限定收益为0求风险最小’
SIM
####### 内容
- SIMBasicData
- SIMSumAlphap
- SIMSumBetap
- SIMSumVarEj
- SIMVARRp
- StockBetaAlphaMatix
- StockVAREj
####### SIMBasicData
范例
Return SIMBasicData(
Array("SH600718","SH600100"),
inttodate(20120618),
inttodate(20120919)); //结果:-0.07634
####### SIMSumAlphap
范例
SIMBasicData(
Array("SH600718","SH600100"),
inttodate(20120618),
inttodate(20120919));
//使用SIM方法计算基本数据,参考
SIMBasicData
()
return SIMSumAlphap(array(1,2));
//结果:0.00266
####### SIMSumBetap
范例
SIMBasicData(
Array("SH600718","SH600100"),
inttodate(20120618),
inttodate(20120919));
//使用SIM方法计算基本数据,参考
SIMBasicData
()
return SIMSumBetap(array(1,2)); //结果:0.03314
####### SIMSumVarEj
范例
SIMBasicData(
Array("SH600718","SH600100"),
inttodate(20120618),
inttodate(20120919));
//使用SIM方法计算基本数据, 参考
SIMBasicData
()
return SIMSumVarEj (array(1,2)); //结果:0.00045
####### SIMVARRp
范例
SIMBasicData(
Array("SH600718","SH600100"),
inttodate(20120618),
inttodate(20120919));
//使用SIM方法计算基本数据, 参考
SIMBasicData
()
return SIMVARRp(array(1,2)); //结果:0.00143
####### StockBetaAlphaMatix
范例
R:=array((1,2),(3,4),(6,7),(8,9),(3,7),(8,9),(3,6),(8,6),(7,4),(6,2));
rm:=array(1,2,3,4,5,6,7,8,3,10);
return StockBetaAlphaMatix(`R,Rm);
//结果:
####### StockVAREj
范例
N:=10;
m:=2;
R:=array((1,2),(3,4),(6,7),(8,9),(3,7),(8,9),(3,6),(8,6),(7,4),(6,2));
Alpha:=array(1,7,9,4,5,6,7,8,3,10);
Beta:=array(1,9,3,5,5,6,7,8,3,15);
rm:=array(1,4);
return StockVAREj(N,M,R,Alpha,Beta,Rm);
//结果:
收益和风险
####### 内容
- AllBKYieldAndRisk
- BKyieldAndRisk
- yieldAndRisk
####### AllBKYieldAndRisk
范例
Return AllBKYieldAndRisk(20,inttodate(20120628));
//结果:
####### BKyieldAndRisk
范例
Return BKyieldAndRisk("深证A股",20,inttodate(20120728));
//结果:
####### yieldAndRisk
范例
return yieldAndRisk("深证A股",20,inttodate(20120728));
//结果:
投资组合历史验证
####### 内容
- PortfolioByPE
- PortfolioGraph
- PortfolioPercent
- PortfolioTrack_Pgm
- PortfolioTracking
####### PortfolioByPE
范例
StockArr:=array("SH600718","SZ000920","SH600000");
EndT:=inttodate(20120828);
Return PortfolioByPE(StockArr,EndT,1,2);
//结果:
####### PortfolioGraph
范例
SetSysParam(PN_DATE(),INTTODATE(20121029));
t:=nday(100,'日期',sp_time(),'指数',spec(close(),'SZ000002'),'组合指数',SPEC(CLOSE(),'SZ000001'));
return PortfolioGraph(t);
//结果:
####### PortfolioPercent
范例
StockArr:=array("SH600718","SZ000920");
endt:=inttodate(20120918);
Return PortfolioPercent(StockArr,endt,500,0);
//结果:
####### PortfolioTrack_Pgm
范例
Return PortfolioTrack_Pgm("data",500,
inttodate(20120718),
inttodate(20121019));
//结果:
####### PortfolioTracking
范例
StockArr:=array(('代码':'SZ000002','股数':10),('代码':'SH600000','股数':30),('代码':'SZ000001','股数':20));
begt:=inttodate(20120912);
endt:=inttodate(20121022);
Return PortfolioTracking('沪深300',StockArr,begt,endt,4,2,5);
//结果:
相关系数与BetaAlpha
####### 内容
- AdjustSmaple
- BKBetaAlphaIndexRelative
- BKCorrelMatrix
- BetaAlphaIndexRelative
- CorrelMatrix
- NeedAdjustSmaple
####### AdjustSmaple
范例
Return AdjustSmaple("深证A股;上证A股",inttodate(20120926),500,11,20,0);
//结果:
####### BKBetaAlphaIndexRelative
范例
//获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
//计算当前板块“申万采掘服务“中个股与上证指数在2012-9-26日至2020-12-31日区间的相关性
setsysparam(pn_date(),20201231T);
return BKBetaAlphaIndexRelative("申万采掘服务","SH000001",inttodate(20120926));
//结果:
####### BKCorrelMatrix
范例
//计算两个股票与上证指数在2019-9-26日至2020-12-31日区间的相关系数矩阵
setsysparam(pn_date(),20201231T);
return BKCorrelMatrix("申万采掘服务",20190926T);
//结果:
####### BetaAlphaIndexRelative
范例
//获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
//计算两个股票与上证指数在2012-9-26日至2020-12-31日区间的相关性
setsysparam(pn_date(),20191231T);
stocks:=array("SH600718","SZ000920");
return BetaAlphaIndexRelative(stocks,"SH000001",20120926T);
//结果:
####### CorrelMatrix
范例
//组合个股相关矩阵
setsysparam(pn_date(),20201231T);
stocks:=array("SH600718","SZ000920");
return CorrelMatrix(stocks,inttodate(20120926));
//结果:
####### NeedAdjustSmaple
范例
Return NeedAdjustSmaple(inttodate(20120618),inttodate(20120926),4);
//结果:0
组合优化
####### 内容
- TSPortfolioOptimizer
- TSFL_ZHYH_TSPortfolioOptimizer01
- TSFL_ZHYH_TSPortfolioOptimizer02
- Tsfl_zhyh_tsportfoliooptimizer04
####### TSPortfolioOptimizer
范例参考2014-05-07-深圳天软科技-应用专题-组合优化01:天软组合优化框架TSPortfolioOptimizer
####### TSFL_ZHYH_TSPortfolioOptimizer01
参考2014-05-07-深圳天软科技-应用专题-组合优化01:天软组合优化框架TSPortfolioOptimizer
####### TSFL_ZHYH_TSPortfolioOptimizer02
参考2014-05-07-深圳天软科技-应用专题-组合优化01:天软组合优化框架TSPortfolioOptimizer
####### Tsfl_zhyh_tsportfoliooptimizer04
- TSPortfolioOptimizer
- TSFL_ZHYH_TSPortfolioOptimizer01
- TSFL_ZHYH_TSPortfolioOptimizer02
- Tsfl_zhyh_tsportfoliooptimizer04
新股定价
内容
- NSPP_HistoryVerify_Pgm
- NSPP_Pgm
- NSPP_HistoryVerify
- NewStockPredictPrice
- NewStockPredictValue
NSPP_HistoryVerify_Pgm
范例
Return NSPP_HistoryVerify_Pgm(
"深证A股;上证A股",
Inttodate(20120618),
inttodate(20120926));
//结果:
NSPP_Pgm
范例
Return NSPP_Pgm("深证A股;上证A股",
inttodate(20040307),
Inttodate(20041025),
"SH600966");
//结果:
NSPP_HistoryVerify
范例
Return NSPP_HistoryVerify(getbk('上证A股'),
inttodate(20120618),
inttodate(20120926));
//结果:
NewStockPredictPrice
范例
Return NewStockPredictPrice(array("SH600718","SZ000002"));
//结果:
NewStockPredictValue
范例
return NewStockPredictValue(getbk("深证A股;上证A股"),
inttodate(20040307),
inttodate(20041025),
"SH600966");
//结果:
指数研究
内容
- ManyBksKLine
- ManyBksKLine_II
- StockVsIndexKLine
- IndexKLine_AdjustSampleByDate_II
- 复合指数
- 股票指数
- 基金指数
- 临时指数
- 债券指数
- 中间函数
- 最新
- 景气度
ManyBksKLine
范例
return ManyBksKLine("上证A股;沪深300",
"SH000001",
-1,
inttodate(20120818),
inttodate(20120926),
0,true,2,cy_Day(),1);
//结果:
ManyBksKLine_II
范例
UserDefArr:=array(('代码':'SZ000001','名称':'平安银行','比例(%)':40),('代码':'SH6000010','名称':'浦发银行','比例(%)':30),('代码':'SZ000002','名称':'万科A','比例(%)':30));
RETURN ManyBksKLine_II(UserDefArr,
'SH000001',
-1,
inttodate(20120818),
inttodate(20120918),
CY_DAY(),1);
//结果:
StockVsIndexKLine
范例
Return StockVsIndexKLine("SH600718",
"SH000001",
"SH600567",
-1,
inttodate(20120618),
inttodate(20120926),
1,true,2,cy_day(),1);
//结果:
IndexKLine_AdjustSampleByDate_II
范例
t:=array(
("日期":39080.00,"代码":"SH600550","名称":"天威保变"),
("日期":39080.00,"代码":"SH600331","名称":"宏达股份"),
("日期":39080.00,"代码":"SH601398","名称":"工商银行"),
("日期":39080.00,"代码":"SH600030","名称":"中信证券"),
("日期":39080.00,"代码":"SH600016","名称":"民生银行"),
("日期":39080.00,"代码":"SH600036","名称":"招商银行"),
("日期":39172.00,"代码":"SH600418","名称":"江淮汽车"),
("日期":39172.00,"代码":"SH600649","名称":"原水股份"),
("日期":39172.00,"代码":"SH600362","名称":"江西铜业"),
("日期":39172.00,"代码":"SH600550","名称":"天威保变"),
("日期":39172.00,"代码":"SH600011","名称":"华能国际"),
);
return IndexKLine_AdjustSampleByDate_II(t,
'SH000001',
INTTODATE(20120613),
1000,0,1);
//结果:
复合指数
####### 内容
- Index_NoAdjustStock_Quick
- ShareStructureOfSample
- PF_Percent
####### Index_NoAdjustStock_Quick
范例
Return Index_NoAdjustStock_Quick(
array("SZ000920","SZ000002"),
1000,
inttodate(20120818),
inttodate(20120926),0,1);
//结果:
####### ShareStructureOfSample
范例
Return ShareStructureOfSample(array("SH600718"));
//结果:
####### PF_Percent
范例
return PF_Percent(array("SH600320","SH600489","SH000000"),inttodate(20120618),0);
//结果:
股票指数
####### 内容
- BkAndIndexKLine
- CalculateStockIndex
- FHSPTable
- FHSPTableOfLido
- FHSPTableOfTinysoft
- BkVsBkKLine_tab
- BkVsIndexKLine_tab
- CheckInPutData_UP
- GetInputStocks_UP
####### BkAndIndexKLine
范例
Return BkAndIndexKLine(
array("SH600718","SZ000002"),
"上证A股",
"SH600718",
1000,
inttodate(20020618),
inttodate(20020926),
0,true,2,CY_day(),1);
//结果:
####### CalculateStockIndex
范例
Return CalculateStockIndex(
array("SZ000920","SH600718"),
1000,inttodate(20120618),
inttodate(20120926),0,false,2,0);
//结果:
####### FHSPTable
范例
SetSysParam(PN_Stock(),'SZ000002');
return FHSPTable(true);
//结果:
####### FHSPTableOfLido
范例
SetSysParam(PN_Stock(),'SZ000002');
return FHSPTableOfLido (true);
//结果:
####### FHSPTableOfTinysoft
范例
SetSysParam(PN_Stock(),'SZ000002');
return FHSPTableOfTinysoft (true);
//结果:
####### BkVsBkKLine_tab
范例
Return BkVsBkKLine_tab("金融、保险业",
1000,
inttodate(20120618),
inttodate(20120926),
0,true,2,cy_day());
//结果:
####### BkVsIndexKLine_tab
范例
SetSysParam(pn_bk(),'深证A股');
Return BkVsIndexKLine_tab("SH000001",1000,inttodate(20120618),
inttodate(20120926),1,true,2,cy_day());
//结果:
####### CheckInPutData_UP
范例
t:=array(('代码':'SZ000002','比例(%)':20),('代码':'SZ000001','比例(%)':40));
return CheckInPutData_UP(t);
//检查数据表t是否含有’代码’,’比例(%)’字段 //结果:1
####### GetInputStocks_UP
范例
t:=array(('代码':'SZ000003'),('代码':'SZ000001'));
return GetInputStocks_UP(t);
//结果:
基金指数
####### 内容
- CaculateFundIndex
- FundFHSPTable
####### CaculateFundIndex
范例
Return CaculateFundIndex(
array("SH500001","SH500002","SH500003"),
1.59,
inttodate(20120618),
inttodate(20120926),
1,true,3,1);
//结果:
####### FundFHSPTable
范例
SetSysParam(PN_Stock(),'SH500001');
return FundFHSPTable (true);
//结果:
临时指数
####### 内容
- BkVsBkKLine_
- BkVsIndexKLine_
- IndexLineMergeBak
- ManyBksKLine_
- StockVsIndexKLine_
####### BkVsBkKLine_
范例
Return BkVsBkKLine_(
"申万采掘",
"申万电子",
1000,
inttodate(20120618),
inttodate(20120926),
0,true,2,cy_day(),1);
//结果:
####### BkVsIndexKLine_
范例
Return BkVsIndexKLine_(
'深证A股',
'SH000001',
1000,
inttodate(20120618),
inttodate(20120926),
1,true,2,cy_day(),1);
//结果:
####### IndexLineMergeBak
- BkVsBkKLine_
- BkVsIndexKLine_
- IndexLineMergeBak
- ManyBksKLine_
- StockVsIndexKLine_
####### ManyBksKLine_
范例
begt:=inttodate(20120618);
endt:=inttodate(20121026);
Return ManyBksKLine_(
"申万采掘;申万金融服务",
1000,
begt,endt,0,
true,2,cy_week());
//结果:
####### StockVsIndexKLine_
范例
begt:=inttodate(20120618);
endt:=inttodate(20121026);
Return StockVsIndexKLine_(
"SH600900",
"SH000001",
1000,
begt,
endt,
0,
true,
2,
cy_day(),
1);
//结果:
债券指数
####### 内容
- AddExInfoToArray
- BondTrueExDate
- DeleteBondByCriterion
####### AddExInfoToArray
范例
r:=array();
SetSysParam(PN_Stock(),'SZ00002');
AddExInfoToArray(r,inttodate(20120618),0,0);
return r;
//结果:
####### BondTrueExDate
范例
PredictDate:=inttodate(20120618);
BondTrueExDate(PredictDate);
return PredictDate;
//结果:
####### DeleteBondByCriterion
范例
BondArr:=array("SH009704","SH000896","SH010107","SH010004");
DeleteBondByCriterion(BondArr);
return BondArr; //结果:SH010107
中间函数
####### 内容
- DeleteDataOutOfScopes
- FileterValue
- FilterValueByCycle
- GetMaxListedDate
- IndexDataToShowable
- IndexLineMerge
- KLineMerge
- KLineDataForIndex
- ManyBkLineMerge
- SetToFirstValue
- VolDataForIndex
####### DeleteDataOutOfScopes
范例
t1:=array(('s':0,'time':41201),('s':6,'time':41202),('s':2,'time':41203),('s':8,'time':41204),('s':2,'time':41207),('s':3,'time':41208));
t2:=array(('s':2,'time':41101),('s':7,'time':41202),('s':9,'time':41205),('s':3,'time':41206),('s':5,'time':41207),('s':1,'time':41209));
DeleteDataOutOfScopes(t1,t2);
return array(t1,t2);
//结果:
####### FileterValue
范例
v:=array(('s':0,'time':41201),('s':6,'time':41202),('s':2,'time':41203),('s':8,'time':41204),('s':2,'time':41207),('s':3,'time':41208));
w:=array(41101,41202,41205,41206,41207,41209);
FileterValue(v,w);
//结果:
####### FilterValueByCycle
范例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(PN_DATE(),IntToDate(20121029));
t:=Nday(20,'time',datetoint(sp_time()),'c',close());
FilterValueByCycle(t,inttodate(20120918),IntToDate(20121029),cy_week());
return t;
//结果:
####### GetMaxListedDate
范例
Return GetMaxListedDate(array("SZ000920","SH600718","SH600900"));
//结果:
####### IndexDataToShowable
范例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(PN_DATE(),IntToDate(20121026));
t:=Nday(20,'Date',sp_time(),'Close',close());
Return array('转换前':t,'转换后':IndexDataToShowable(t,1000));
//结果:
####### IndexLineMerge
范例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(PN_DATE(),IntToDate(20121026));
BkValue:=nday(20,'time',sp_time(),'close',close());
SetSysParam(pn_stock(),'SH000001');
IndexValue:=nday(20,'time',sp_time(),'close',close());
RETURN IndexLineMerge('SZ000002',BkValue,'SH000001',IndexValue,1);
//结果:
####### KLineMerge
范例
SetSysParam(PN_Stock(),'SH000001');
SetSysParam(PN_DATE(),IntToDate(20121026));
BkValue:=nday(20,'time',sp_time(),'close',close());
return KLineMerge("SH000001",BkValue,"SH600718",inttodate(20120618),
inttodate(20121026),1);
//结果:
####### KLineDataForIndex
范例
Return KLineDataForIndex("SH600206",inttodate(20120618),inttodate(20120926));
//结果:
####### ManyBkLineMerge
范例
t:=array(
("time":20061229,"close":2675.47),
("time":20070104,"close":2715.72),
("time":20070105,"close":2641.33),
("time":20070108,"close":2707.2),
("time":20070109,"close":2807.8),
("time":20070110,"close":2825.58),
("time":20070111,"close":2770.11),
("time":20070112,"close":2668.11),
("time":20070115,"close":2794.7),
("time":20070116,"close":2821.02),
("time":20070117,"close":2778.9),
("time":20070118,"close":2756.98));
t1:=array(
("time":20061229,"close":1000),
("time":20070104,"close":1017.56),
("time":20070105,"close":961.42),
("time":20070108,"close":978.96),
("time":20070109,"close":1022.61),
("time":20070110,"close":1017.87),
("time":20070111,"close":986.16),
("time":20070112,"close":947.22),
("time":20070115,"close":991.12),
("time":20070116,"close":988.37),
("time":20070117,"close":971.06),
("time":20070118,"close":948.98),
("time":20070119,"close":970.16));
r:=array(("Name":"SH000001","Value":t),("Name":"复合指数","Value"
:t1));
return ManyBkLineMerge(r,1);
//结果:
####### SetToFirstValue
- DeleteDataOutOfScopes
- FileterValue
- FilterValueByCycle
- GetMaxListedDate
- IndexDataToShowable
- IndexLineMerge
- KLineMerge
- KLineDataForIndex
- ManyBkLineMerge
- SetToFirstValue
- VolDataForIndex
####### VolDataForIndex
范例
Return VolDataForIndex("SH600206",inttodate(20120618),inttodate
(20120926));
//结果:
最新
####### 内容
- StandarizeBkData_III
- CalculateBkIndex
- StandarizeBkData_II
- StandarizeBkData_I
- CalculateFundBkIndex
####### StandarizeBkData_III
范例
Return StandarizeBkData_III(array("SZ002001","SZ002020","SZ002022",
"SZ002050"),0,inttodate(20020618));
//结果:
####### CalculateBkIndex
范例
st:=20200101t;
et:=20240930t;
t:=array(
("日期":st,"代码":"SZ000001","名称":"平安银行","比例(%)":12.5),
("日期":st,"代码":"SH600418","名称":"江淮汽车","比例(%)":12.5),
("日期":st,"代码":"SH600649","名称":"原水股份","比例(%)":12.5),
("日期":st,"代码":"SH600362","名称":"江西铜业","比例(%)":12.5),
("日期":st,"代码":"SH600550","名称":"天威保变","比例(%)":12.5),
("日期":st,"代码":"SH600011","名称":"华能国际","比例(%)":12.5),
("日期":st,"代码":"SH600895","名称":"张江高科","比例(%)":12.5),
("日期":st,"代码":"SH600331","名称":"宏达股份","比例(%)":12.5));
return CalculateBkIndex(t,et);
//结果:
####### StandarizeBkData_II
范例
t:=array(('代码':'SZ000002','日期':41209),('代码':'SZ000001','日期':41209));
Return StandarizeBkData_II(t,0);
//结果:
####### StandarizeBkData_I
范例
t:=array(('代码':'SZ000003','日期':nil),('代码':'SZ000002','日期':41209),('代码':'SZ000001','日期':nil));
Return StandarizeBkData_I(t);
//结果:
####### CalculateFundBkIndex
范例
t:=array(
("日期":39994.00,"代码":"OF000031","名称":"华夏复兴","比例(%)":0.0206),
("日期":39994.00,"代码":"OF020001","名称":"国泰金鹰","比例(%)":0.00328),
("日期":39994.00,"代码":"OF020010","名称":"国泰金牛","比例(%)":0.02113),
("日期":39994.00,"代码":"OF519694","名称":"交银蓝筹","比例(%)":0.0588),
("日期":40086.00,"代码":"OF000031","名称":"华夏复兴","比例(%)":0.03068),
("日期":40086.00,"代码":"OF020001","名称":"国泰金鹰","比例(%)":0.00604),
("日期":40086.00,"代码":"OF020010","名称":"国泰金牛","比例(%)":0.03752),
("日期":40086.00,"代码":"OF070013","名称":"嘉实精选","比例(%)":0.0227),
("日期":40178.00,"代码":"OF000031","名称":"华夏复兴","比例(%)":0.02294),
("日期":40178.00,"代码":"OF020001","名称":"国泰金鹰","比例(%)":0.00532),
("日期":40178.00,"代码":"OF020010","名称":"国泰金牛","比例(%)":0.02964),
("日期":40178.00,"代码":"OF121008","名称":"国投成长","比例(%)":0.0175));
return CalculateFundBkIndex(t,inttodate(20100302));
//结果:
景气度
####### 内容
- Index_BF_Prosperity
- Stocks_BF_Prosperity
####### Index_BF_Prosperity
范例
indexID := "SH000300";
Rdate := 20210630;
RightType := 0;
setsysparam(CT_TTMData(),True);
return Index_BF_Prosperity(IndexID,RDate,RightType,oRDetail); // 结果:13
####### Stocks_BF_Prosperity
范例
StocksArr := array("SZ000001","SZ000002","SH600000");
Rdate := 20210630;
RightType := 0;
setsysparam(CT_TTMData(),True);
return stocks_BF_Prosperity(StocksArr,RDate,RightType,oRDetail); //结果:-1
基金研究
内容
- 基金仓位
- 基金池构建
- 关联度分析
基金仓位
####### 内容
- TSBF_FundBKstyleAccuracy
####### TSBF_FundBKstyleAccuracy
范例
return TSBF_FundBKstyleCurrent("普通股票型;混合型",20150101T,20201016T);
基金池构建
####### 内容
- Getsimufundbk
- Openendfundfilter
- Fund_ff3purealpha
- Funds_GetJZModifiedList
- OpenEndFundFilterByFundIndex
####### Getsimufundbk
- Getsimufundbk
- Openendfundfilter
- Fund_ff3purealpha
- Funds_GetJZModifiedList
- OpenEndFundFilterByFundIndex
####### Openendfundfilter
- Getsimufundbk
- Openendfundfilter
- Fund_ff3purealpha
- Funds_GetJZModifiedList
- OpenEndFundFilterByFundIndex
####### Fund_ff3purealpha
- Getsimufundbk
- Openendfundfilter
- Fund_ff3purealpha
- Funds_GetJZModifiedList
- OpenEndFundFilterByFundIndex
####### Funds_GetJZModifiedList
范例
FundInds := array("TSJJ0201","TSJJ0203");
EndT := 20250409T;
NType := 1;
N := 5;
DTime := 20250408T+15/24;
return Funds_GetJZModifiedList(FundInds,EndT,NType,N,DTime);
####### OpenEndFundFilterByFundIndex
范例
sp_s(pn_date(),today());
return OpenEndFundFilterByFundIndex(array('TSJJ0203','TSJJ0201')); //股、混
关联度分析
####### 内容
- 关联矩阵
####### 关联矩阵
######## 内容
- 矩阵转化
######## 矩阵转化
######### 内容
- Network_Conv_AdjDir
- Network_Conv_ToDist
######### Network_Conv_AdjDir
范例
matrix := array((0.0,5.1,19.36,0.0,0.0),
(5.1,0.0,10.26,0.0,0.0),
(19.36,10.26,0.0,0.0,0.0),
(0.0,0.0,0.0,0.0,5.26),
(0.0,0.0,0.0,5.26,0.0));
matrixType := 2;//2:距离类矩阵
dirType := 1;//目标方向:1-正向
return Network_Conv_AdjDir(matrix,matrixType,dirType);
结果:
######### Network_Conv_ToDist
范例
matrix := array((0.0,5.1,19.36,0.0,0.0),
(5.1,0.0,10.26,0.0,0.0),
(19.36,10.26,0.0,0.0,0.0),
(0.0,0.0,0.0,0.0,5.26),
(0.0,0.0,0.0,5.26,0.0));
return Network_Conv_ToDist(matrix);
结果:
量化数据接口
内容
- 高频因子
- 风险模型(CNE5)
- 基金拓展
高频因子
####### 内容
- TSBF_QMD_Ext
- TSBF_QMD_QK
- TSBF_QMD_MNdays
- TSBF_QMD_Ndays
- 仓库信息
- 统计函数
- Tsbf_qmd_mks
####### TSBF_QMD_Ext
范例
范例一:提取 OF00001 在 20200317 日的测算仓位(%)
sp_s(PN_Date(),20200317T);
sp_s(PN_Stock(),'OF000001');
return TSBF_QMD_Ext(9802001001);//返回 76.40605
范例二:提取 OF00001 在 20200317 日的仓位测算详情表
sp_s(PN_Date(),20200317T);
sp_s(PN_Stock(),'OF000001');
return TSBF_QMD_Ext(9802001);
返回结果:
####### TSBF_QMD_QK
范例
//提取 OF00001 在 20200317 日至20200321日的测算仓位(%)
sp_s(PN_Stock(),'OF000001');
return TSBF_QMD_QK(9802001001,20200317T,20200321T);
//返回:
| 76.40605 |
| 74.88955 |
| 70.62129 |
| 72.88006 |
####### TSBF_QMD_MNdays
范例
// 在 20200317 日同时提取前 5 日的活力指数表、 市场涨停统计信息
sp_s(PN_Date(),20200317T);
sp_s(PN_Stock(),'QT001');//QT001 即自编代码
return TSBF_QMD_MNdays(array(9802001,9802007,9802007003),5);
//返回:
####### TSBF_QMD_Ndays
范例
//获取OF000001连续5日的测算仓位,常数项及R2的指标值
sp_s(PN_Date(),20200317T);
sp_s(PN_Stock(),'OF000001');
return TSBF_QMD_Ndays(array(9802001000,9802001001,9802001002,9802001004),5);
//返回:
| 截止日 | 测算仓位(%) | 常数项 | R2 |
| 2020-03-11 | 72.44629 | -0.0119 | 0.8485 |
| 2020-03-12 | 73.62084 | -0.06691 | 0.86713 |
| 2020-03-13 | 74.32688 | -0.10526 | 0.86676 |
| 2020-03-16 | 75.37592 | -0.13947 | 0.87897 |
| 2020-03-17 | 76.40605 | -0.14072 | 0.8798 |
####### 仓库信息
######## 内容
- Tsbf_qmd_tablefield
- Tsbf_qmd_alltable
- Tsbf_qmd_diystockid
######## Tsbf_qmd_tablefield
范例
//获取基金仓位表结构
return TSBF_QMD_TableField(9802001);
返回:
| ID | 名称 | 表ID | 表名称 |
| 9802001000 | 截止日 | 9802001 | 基金仓位表 |
| 9802001001 | 测算仓位(%) | 9802001 | 基金仓位表 |
| 9802001002 | 常数项 | 9802001 | 基金仓位表 |
| 9802001003 | 债券仓位(%) | 9802001 | 基金仓位表 |
| 9802001004 | R2 | 9802001 | 基金仓位表 |
| 9802001005 | 回归仓位1(%) | 9802001 | 基金仓位表 |
| 9802001006 | 回归仓位2(%) | 9802001 | 基金仓位表 |
| 9802001007 | 回归仓位3(%) | 9802001 | 基金仓位表 |
| 9802001008 | 残差 | 9802001 | 基金仓位表 |
| 9802001009 | t值@常数项 | 9802001 | 基金仓位表 |
| 9802001010 | t值@回归仓位1(%) | 9802001 | 基金仓位表 |
| 9802001011 | t值@回归仓位2(%) | 9802001 | 基金仓位表 |
| 9802001012 | t值@回归仓位3(%) | 9802001 | 基金仓位表 |
| 9802001013 | t值@债券仓位(%) | 9802001 | 基金仓位表 |
######## Tsbf_qmd_alltable
范例
return TSBF_QMD_AllTable();
//返回:
| ID | 名称 | 表ID | 表名称 |
| 9802001 | 基金仓位表 | 9802001 | 基金仓位表 |
| 9802002 | 股票涨停统计 | 9802002 | 股票涨停统计 |
| 9802003 | 指数换手率 | 9802003 | 指数换手率 |
| 9802004 | 破净占比表 | 9802004 | 破净占比表 |
| 9802005 | 活力指数 | 9802005 | 活力指数 |
| 9802006 | 指数高低价股数据表 | 9802006 | 指数高低价股数据表 |
| 9802007 | 创新高创新低占比数据表 | 9802007 | 创新高创新低占比数据表 |
| 9802008 | 超跌个股数据表 | 9802008 | 超跌个股数据表 |
| 9803001 | 191因子 | 9803001 | 191因子 |
| 9803002 | Barra系列描述因子 | 9803002 | Barra系列描述因子 |
| 9803003 | BarraCNE5因子 | 9803003 | BarraCNE5因子 |
| 9803004 | 筹码分布衍生指标 | 9803004 | 筹码分布衍生指标 |
| 9803005 | 三四五因子数据 | 9803005 | 三四五因子数据 |
| 9803006 | 风险模型因子收益率 | 9803006 | 风险模型因子收益率 |
| 9803007 | 特质收益率数据 | 9803007 | 特质收益率数据 |
| 9803008 | 聪明钱因子 | 9803008 | 聪明钱因子 |
| 9809001 | 基金行业仓位表 | 9809001 | 基金行业仓位表 |
| 9809002 | 净值收益率_固定周期 | 9809002 | 净值收益率_固定周期 |
| 9810001 | 可转债指标 | 9810001 | 可转债指标 |
######## Tsbf_qmd_diystockid
范例
//返回字段ID9802001001所在表结构的具体信息
return TSBF_QMD_DIYStockID(9802001001);
//返回:
| 表ID | 表名 | 代码 | 范围 | 投资风格 | 加权方式 | 板块 |
| 9802001 | 基金仓位表 | QT001 | 基金 | 整体 | 50% | |
| 9802001 | 基金仓位表 | QT002 | 基金 | 整体 | 25% | |
| 9802001 | 基金仓位表 | QT003 | 基金 | 整体 | 75% | |
| 9802001 | 基金仓位表 | QT004 | 基金 | 整体 | 平均值 | |
| 9802001 | 基金仓位表 | QT005 | 基金 | 整体 | 去头尾5%平均值 | |
| 9802001 | 基金仓位表 | QT006 | 基金 | 整体 | 最新资产净值加权 | |
| 9802001 | 基金仓位表 | QT007 | 基金 | 混合型 | 25% | |
| 9802001 | 基金仓位表 | QT008 | 基金 | 混合型 | 50% | |
| 9802001 | 基金仓位表 | QT009 | 基金 | 混合型 | 75% | |
| 9802001 | 基金仓位表 | QT010 | 基金 | 混合型 | 平均值 | |
| 9802001 | 基金仓位表 | QT011 | 基金 | 混合型 | 去头尾5%平均值 | |
| 9802001 | 基金仓位表 | QT012 | 基金 | 混合型 | 最新资产净值加权 | |
| 9802001 | 基金仓位表 | QT013 | 基金 | 股票型 | 25% | |
| 9802001 | 基金仓位表 | QT014 | 基金 | 股票型 | 50% | |
| 9802001 | 基金仓位表 | QT015 | 基金 | 股票型 | 75% | |
| 9802001 | 基金仓位表 | QT016 | 基金 | 股票型 | 平均值 | |
| 9802001 | 基金仓位表 | QT017 | 基金 | 股票型 | 去头尾5%平均值 | |
| 9802001 | 基金仓位表 | QT018 | 基金 | 股票型 | 最新资产净值加权 | |
| 9802001 | 基金仓位表 | QT019 | 基金 | A股 |
####### 统计函数
######## 内容
- 中间函数
- Tsbf_qmd_ma
- Tsbf_qmd_percentrank
######## 中间函数
######### 内容
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Emptyvalue
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_md_getexdata
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_qmd_firstay
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_qmd_lastupday
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_qmd_qknum
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_qmd_refnday
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######### Tsbf_qtmd_unit
- Emptyvalue
- Tsbf_md_getexdata
- Tsbf_qmd_firstay
- Tsbf_qmd_lastupday
- Tsbf_qmd_qknum
- Tsbf_qmd_refnday
- Tsbf_qtmd_unit
######## Tsbf_qmd_ma
范例
//求全A股在20191112T的过去250日破净占比(%)的平均值
N:=250;
setsysparam(pn_stock(),'QT001');
setsysparam(pn_date(),20191112T);
return TSBF_QMD_Ma(9802004001,250); //返回:8.09367
######## Tsbf_qmd_percentrank
范例
//全A股在20191112T的破净占比历史百分位(%)
N:=250;
setsysparam(pn_stock(),'QT001');
setsysparam(pn_date(),20191112T);
return TSBF_QMD_Percentrank(9802004001,250); //94.7791
####### Tsbf_qmd_mks
范例
//获取OF000001与OF510050在20200317日的测算仓位,常数项及R2的指标值
sp_s(PN_Date(),20200317T);
return Tsbf_qmd_mks(array(9802001000,9802001001,9802001002,9802001004),array('OF000001','OF510050'));
//返回:
| 代码 | 截止日 | 测算仓位(%) | 常数项 | R2 |
| OF000001 | 2020-03-17 | 76.40605 | -0.14072 | 0.8798 |
| OF510050 | 2020-03-17 | 90.24782 | -0.0244 | 0.96051 |
风险模型(CNE5)
####### 内容
- Index_stylefactor
- Pf_stylefactor
- Stockstylefactor
- Stocks_stylefactor
####### Index_stylefactor
范例
oV:=BackUpSystemParameters2();
SetSysParam(pn_stock(),'SH000300');
SetSysParam(pn_date(),2020601T);
return Index_StyleFactor(2);
####### Pf_stylefactor
范例
Portfolio:=array(("代码":"SZ000001","比例(%)":50),
("代码":"SZ000002","比例(%)":50));
EndT:=20200601T;
DType:=2;
return pf_StyleFactor(Portfolio,EndT,DType);
####### Stockstylefactor
范例
SetSysParam(pn_stock(),'SH600000');
SetSysParam(pn_date(),20200509T);
return StockStyleFactor(1);
####### Stocks_stylefactor
基金拓展
####### 内容
- 风险调整收益及风险
####### 风险调整收益及风险
量化套利
内容
- 事件套利
事件套利
####### 内容
- 事件因子
####### 事件因子
######## 内容
- ET_Amount_Ratio
- ET_Hsl_Ratio
- ET_Vol_Ratio
- ET_Zf_Ratio
- Stock_EventEffect
- Stock_Event_IndicatorChange
######## ET_Amount_Ratio
范例
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
N:=120; M:=10; cType:=0;
r:=ET_Amount_Ratio(N,M,cType);
return r;
//0.11064783
######## ET_Hsl_Ratio
范例
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
N:=120; M:=10; cType:=0;
r:=ET_Hsl_Ratio(N,M,cType);
return r; //0.11247812
######## ET_Vol_Ratio
范例
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
N:=120; M:=10; cType:=0;
r:=ET_Vol_Ratio(N,M,cType);
return r;
//0.11247812
######## ET_Zf_Ratio
范例
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
N:=120; M:=10; cType:=0;
r:=ET_Zf_Ratio(N,M,cType);
return r;
//0.25091065
######## Stock_EventEffect
范例
//返回事件窗口日为3,基准指数为沪深300的累计超额收益率
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
EventDay:=3;
IndexID:="SH000300";
IndicatorType:=0;
IndicatorRelativeType:=2;
IndicatorRelativeType:=0;
r:=Stock_EventEffect(EventDay,IndexID,IndicatorType,IndicatorRelativeType,IndicatorCountType);
return r; // 3.66449511
######## Stock_Event_IndicatorChange
范例
//返回事件后10天日均换手率比时间前120天日均换手率
SetSysParam(pn_stock(),"SZ000001");
SetSysParam(pn_Date(),20230426T);
N:=120;
M:=10;
IndicatorType:=1;
IndicatorCountType:=1;
r:=Stock_Event_IndicatorChange(N,M,IndicatorType,IndicatorCountType);
return r; // 1.22703407
债券研究
内容
- 利率期限结构
- 利率因子
- 利差因子
利率期限结构
####### 内容
- Bonds_NSBetaSensRet
- Bonds_NSModelBeta
- Bonds_NSModelBetaNL
- Bond_NSBetaSensitivity
- NSBetaSensitivityCal
####### Bonds_NSBetaSensRet
范例
PBondID := "BTS000033";
Begt := 20230724t;
Endt := 20230725t;
Delta := 20;
Constant := 0;
lambda := 0.5;
return Bonds_NSBetaSensRet(PBondID,Begt,Endt,Delta,Constant,lambda);
结果:
####### Bonds_NSModelBeta
范例
PBondID := "BTS000033";//国债
Endt := 20230725t;
Lambda := 0.5;
return Bonds_NSModelBeta(PBondID,Endt,Lambda);
// array(3.08,-1.43,-0.58)
####### Bonds_NSModelBetaNL
范例
BondArr := array("SH020564","SH019644","SH019694","SH019685","SH019693","SH019643","SH019667","SH019647","SH019625","SH019684");
Endt := 20230725t;
Lambda := 0.5;
return Bonds_NSModelBetaNL(BondArr,Endt,Lambda);
//array(2.8,-1.46,0.95)
####### Bond_NSBetaSensitivity
范例
BondID := "SH019680";
Endt := 20230725t;
NSParamArr:=array("lambda":0.5,"beta0":4,"beta1":-1,"beta2":1);
Delta := 20;
return Bond_NSBetaSensitivity(BondID,Endt,NSParamArr,Delta);
//array(0.57,0.49,0.07)
####### NSBetaSensitivityCal
范例
范例1
CashData := array(("现金流":1.7,"剩余期限":1),("现金流":1.7,"剩余期限":2),("现金流":1.7,"剩余期限":3),("现金流":1.7,"剩余期限":4),("现金流":1.7,"剩余期限":5),("现金流":1.7,"剩余期限":6),("现金流":1.7,"剩余期限":7),("现金流":1.7,"剩余期限":8),("现金流":1.7,"剩余期限":9),("现金流":101.7,"剩余期限":10));
Endt := 20230725t;
NSParamArr :=array("lambda":0.5,"beta0":4,"beta1":-1,"beta2":1);
Delta := 20;
return NSBetaSensitivityCal(CashData,Endt,NSParamArr,Delta);
// array(1.02,0.8,0.19)
利率因子
####### 内容
- Bond_EffectiveDuration
- Bond_EffectiveConvexity
- Bond_KeyRateDuration
####### Bond_EffectiveDuration
算法ED=(P_ - P+)/(2 _ P0 _ Δy),
P0表示债券现金流贴现价格,
Δy表示利率变动值,
P_ 、P+分别表示债券收益率曲线向下或向上平移若干个基点后的债券价格范例
Setsysparam(PN_Stock(),'SH194037');
endt:=20200101T;
return Bond_EffectiveDuration(EndT,0.0001,'BTS000033',2);
//执行结果:4.92925411770183
####### Bond_EffectiveConvexity
算法EC=(P_ + P+ - 2 _ P0)/(P0 _ (Δy)2)
P0表示债券现金流贴现价格,
Δy表示利率变动值,
P_ 、P+分别表示债券收益率曲线向下或向上平移若干个基点后的债券价格范例
Setsysparam(PN_Stock(),'SH194037');
endt:=20200101T;
return Bond_EffectiveConvexity(EndT,0.0001,'BTS000033',2);
//执行结果:29.2364563483935
####### Bond_KeyRateDuration
算法
首先提取指定日债券收益率曲线数据,使用线性插值法获得关键年期即期利率。提取指定债券现金流数据,并通过权重分配计算前后关键年期的现金流映射数据,得到债券现金流对应的关键年期现金流数据。最后通过公式计算关键利率久期。关键利率久期的计算公式如下:
Dkrd,i=-1PPyi=P-,i-P+,i2P0?yi
其中,Dkrd,i为第i个关键期限点的关键利率久期;n为关键期限点个数;yi分别为第i个关键期限点的利率变动;P0为债券的估值全价,P-,i、P+,i为第i个关键期限点利率变动yi后对应的债券估值全价。范例
endt:=20200902T;
Ayear:=5;
RateChange:=0.0001;
keyyear:=array(0,0.25,0.5,1,3,5,7,10,15,20,30,50);
PBondID:="BTS000033";
Stockid:="BK020005";
N:=60;
Setsysparam(pn_Stock(),Stockid);
KRD:= Bond_KeyRateDuration(Endt,Ayear,RateChange,keyyear,PbondID,N);
return KRD;
//执行结果:0.248959583004042
利差因子
####### 内容
- Bond_GSpread
- Bond_ZSpread
####### Bond_GSpread
算法个券到期收益率与同期限基准曲线收益率的差值范例
Setsysparam(PN_Stock(),'SH194037');
endt:=20230103T;
return Bond_GSpread(EndT,'BTS000033',2);
//执行结果:1.16479423315908
####### Bond_ZSpread
算法在收益率曲线的基础上,使得债券现金流贴现价格等于全价时所需添加的利差
P=t=1nCFt(1+ft+ZSpread)t范例
Setsysparam(PN_Stock(),'SH194037');
endt:=20230103T;
return Bond_ZSpread(EndT,'BTS000033',2);//1.17
绩效分析
内容
- 权重运算
权重运算
####### 内容
- fipwc_CalEndWeight
- fipwc_CalportfolioZF
- fipwc_DerBeginWeight
####### fipwc_CalEndWeight
范例
sw := Array(200, 50);
zf := Array(50,0);
return fipwc_CalEndWeight(sw,zf);
//结果:array(150.0,25.0)
####### fipwc_CalportfolioZF
范例
sw := Array(200, 50);
zf := Array(50,0);
return fipwc_CalportfolioZF(sw,zf);
//结果:100
####### fipwc_DerBeginWeight
范例
w := Array(50, 33.3);
zf := Array(20,33.3);
return fipwc_DerBeginWeight(w,zf);
//结果:array(49.99,29.97)
风险模型
内容
- 应用
应用
####### 内容
- 风险分析
####### 风险分析
######## 内容
- RM_ES
- RM_pfBeta
- RM_Sigma
- RM_StockBeta
- RM_VaR
- 算法层
######## RM_ES
范例
PData := array(("代码":"SH600519","比例(%)":2),
("代码":"SH601318","比例(%)":2),
("代码":"SH600036","比例(%)":2),
("代码":"SH600276","比例(%)":2),
("代码":"SH601166","比例(%)":2));
FactorExp := array(
("代码":"SH600519","市值因子":1.15,"贝塔因子":-0.50,"动量因子":0.46), ("代码":"SH601318","市值因子":1.15,"贝塔因子":-0.44,"动量因子":-0.17),
("代码":"SH600036","市值因子":1.15,"贝塔因子":-0.63,"动量因子":0.28),
("代码":"SH600276","市值因子":1.15,"贝塔因子":-0.59,"动量因子":-0.40),
("代码":"SH601166","市值因子":1.15,"贝塔因子":-1.33,"动量因子":0.10));
FactorRetCov := array(
"市值因子":("市值因子":0.07,"贝塔因子":0.01,"动量因子":0.03),
"贝塔因子":("市值因子":0.01,"贝塔因子":0.07,"动量因子":-0.01),
"动量因子":("市值因子":0.03,"贝塔因子":-0.01,"动量因子":0.09));
SpecificRetVar := array(("代码":"SH600036","特质收益方差":6.59),
("代码":"SH600276","特质收益方差":15.43),
("代码":"SH600519","特质收益方差":7.66),
("代码":"SH601166","特质收益方差":6.07),
("代码":"SH601318","特质收益方差":6.66));
ConfidenceInterval := 95;
return RM_ES(PData,FactorExp,FactorRetCov,SpecificRetVar,ConfidenceInterval);
//返回:0.28
######## RM_pfBeta
范例
PData := array(("代码":"SH600519","比例(%)":2),
("代码":"SH601318","比例(%)":2),
("代码":"SH600036","比例(%)":2),
("代码":"SH600276","比例(%)":2),
("代码":"SH601166","比例(%)":2));
BData := array(("代码":"SH600519","比例(%)":13.22),
("代码":"SH601318","比例(%)":12.40),
("代码":"SH600036","比例(%)":7.16),
("代码":"SH600276","比例(%)":5.48),
("代码":"SH601166","比例(%)":4.00));
FactorExp := array(
("代码":"SH600519","市值因子":1.15,"贝塔因子":-0.50,"动量因子":0.46), ("代码":"SH601318","市值因子":1.15,"贝塔因子":-0.44,"动量因子":-0.17),
("代码":"SH600036","市值因子":1.15,"贝塔因子":-0.63,"动量因子":0.28),
("代码":"SH600276","市值因子":1.15,"贝塔因子":-0.59,"动量因子":-0.40),
("代码":"SH601166","市值因子":1.15,"贝塔因子":-1.33,"动量因子":0.10));
FactorRetCov := array(
"市值因子":("市值因子":0.07,"贝塔因子":0.01,"动量因子":0.03),
"贝塔因子":("市值因子":0.01,"贝塔因子":0.07,"动量因子":-0.01),
"动量因子":("市值因子":0.03,"贝塔因子":-0.01,"动量因子":0.09));
SpecificRetVar := array(("代码":"SH600036","特质收益方差":6.59),
("代码":"SH600276","特质收益方差":15.43),
("代码":"SH600519","特质收益方差":7.66),
("代码":"SH601166","特质收益方差":6.07),
("代码":"SH601318","特质收益方差":6.66));
return RM_pfBeta(PData,BData,FactorExp,FactorRetCov,SpecificRetVar);
//返回:0.21
######## RM_Sigma
范例
PData := array(("代码":"SH600519","比例(%)":2),
("代码":"SH601318","比例(%)":2),
("代码":"SH600036","比例(%)":2),
("代码":"SH600276","比例(%)":2),
("代码":"SH601166","比例(%)":2));
FactorExp := array(
("代码":"SH600519","市值因子":1.15,"贝塔因子":-0.50,"动量因子":0.46), ("代码":"SH601318","市值因子":1.15,"贝塔因子":-0.44,"动量因子":-0.17),
("代码":"SH600036","市值因子":1.15,"贝塔因子":-0.63,"动量因子":0.28),
("代码":"SH600276","市值因子":1.15,"贝塔因子":-0.59,"动量因子":-0.40),
("代码":"SH601166","市值因子":1.15,"贝塔因子":-1.33,"动量因子":0.10));
FactorRetCov := array(
"市值因子":("市值因子":0.07,"贝塔因子":0.01,"动量因子":0.03),
"贝塔因子":("市值因子":0.01,"贝塔因子":0.07,"动量因子":-0.01),
"动量因子":("市值因子":0.03,"贝塔因子":-0.01,"动量因子":0.09));
SpecificRetVar := array(("代码":"SH600036","特质收益方差":6.59),
("代码":"SH600276","特质收益方差":15.43),
("代码":"SH600519","特质收益方差":7.66),
("代码":"SH601166","特质收益方差":6.07),
("代码":"SH601318","特质收益方差":6.66));
return RM_Sigma(PData,FactorExp,FactorRetCov,SpecificRetVar);
//返回:0.13
######## RM_StockBeta
范例
BData := array(("代码":"SH600519","比例(%)":13.22),
("代码":"SH601318","比例(%)":12.40),
("代码":"SH600036","比例(%)":7.16),
("代码":"SH600276","比例(%)":5.48),
("代码":"SH601166","比例(%)":4.00));
FactorExp := array(
("代码":"SH600519","市值因子":1.15,"贝塔因子":-0.50,"动量因子":0.46), ("代码":"SH601318","市值因子":1.15,"贝塔因子":-0.44,"动量因子":-0.17),
("代码":"SH600036","市值因子":1.15,"贝塔因子":-0.63,"动量因子":0.28),
("代码":"SH600276","市值因子":1.15,"贝塔因子":-0.59,"动量因子":-0.40),
("代码":"SH601166","市值因子":1.15,"贝塔因子":-1.33,"动量因子":0.10));
FactorRetCov := array(
"市值因子":("市值因子":0.07,"贝塔因子":0.01,"动量因子":0.03),
"贝塔因子":("市值因子":0.01,"贝塔因子":0.07,"动量因子":-0.01),
"动量因子":("市值因子":0.03,"贝塔因子":-0.01,"动量因子":0.09));
SpecificRetVar := array(("代码":"SH600036","特质收益方差":6.59),
("代码":"SH600276","特质收益方差":15.43),
("代码":"SH600519","特质收益方差":7.66),
("代码":"SH601166","特质收益方差":6.07),
("代码":"SH601318","特质收益方差":6.66));
return RM_StockBeta(BData,FactorExp,FactorRetCov,SpecificRetVar);
//返回:
######## RM_VaR
范例
PData := array(("代码":"SH600519","比例(%)":2),
("代码":"SH601318","比例(%)":2),
("代码":"SH600036","比例(%)":2),
("代码":"SH600276","比例(%)":2),
("代码":"SH601166","比例(%)":2));
FactorExp := array(
("代码":"SH600519","市值因子":1.15,"贝塔因子":-0.50,"动量因子":0.46), ("代码":"SH601318","市值因子":1.15,"贝塔因子":-0.44,"动量因子":-0.17),
("代码":"SH600036","市值因子":1.15,"贝塔因子":-0.63,"动量因子":0.28),
("代码":"SH600276","市值因子":1.15,"贝塔因子":-0.59,"动量因子":-0.40),
("代码":"SH601166","市值因子":1.15,"贝塔因子":-1.33,"动量因子":0.10));
FactorRetCov := array(
"市值因子":("市值因子":0.07,"贝塔因子":0.01,"动量因子":0.03),
"贝塔因子":("市值因子":0.01,"贝塔因子":0.07,"动量因子":-0.01),
"动量因子":("市值因子":0.03,"贝塔因子":-0.01,"动量因子":0.09));
SpecificRetVar := array(("代码":"SH600036","特质收益方差":6.59),
("代码":"SH600276","特质收益方差":15.43),
("代码":"SH600519","特质收益方差":7.66),
("代码":"SH601166","特质收益方差":6.07),
("代码":"SH601318","特质收益方差":6.66));
ConfidenceInterval := 95;
return RM_VaR(PData,FactorExp,FactorRetCov,SpecificRetVar,ConfidenceInterval);
//返回:0.22
######## 算法层
######### 内容
- FFI_ES
- FFI_pfBeta
- FFI_Sigma
- FFI_StockBeta
- FFI_VaR
######### FFI_ES
范例
w_p := array(0.02,0.02,0.02,0.02,0.02);
X := array((1.149137, -1.274572),(1.006287, -1.158997),
(1.149137, -1.737788),(1.149137, 0.195703),
(0.878002, 0.686087)
);
F := array((0.047695, 0.008424),(0.008424, 0.051119));
Delta := array(7.662437, 6.661245,6.594110,15.436516,6.071548);
ConfidenceInterval := 95;
return FFI_ES(w_p,X,F,Delta,ConfidenceInterval);
//返回:0.27
######### FFI_pfBeta
范例
w_b := array(0.13215, 0.12403, 0.0716, 0.05476, 0.03995);
w_p := array(0.02, 0.02, 0.02, 0.02, 0.02);
X := array((1.149137, -1.274572),(1.006287, -1.158997),
(1.149137, -1.737788),(1.149137, 0.195703),
(0.878002, 0.686087)
);
F := array((0.047695, 0.008424),(0.008424, 0.051119));
Delta := array(7.662437, 6.661245,6.594110,15.436516,6.071548);
return FFI_pfBeta(w_b,w_p,X,F,Delta);
//返回:4.03
######### FFI_Sigma
范例
w_p := array(0.02,0.02,0.02,0.02,0.02);
X := array((1.149137, -1.274572),(1.006287, -1.158997),
(1.149137, -1.737788),(1.149137, 0.195703),
(0.878002, 0.686087)
);
F := array((0.047695, 0.008424),(0.008424, 0.051119));
Delta := array(7.662437, 6.661245,6.594110,15.436516,6.071548);
return FFI_Sigma(w_p,X,F,Delta);
//返回:0.13
######### FFI_StockBeta
范例
w_b := array(0.13215, 0.12403, 0.0716, 0.05476, 0.03995);
X := array((1.149137, -1.274572),(1.006287, -1.158997),
(1.149137, -1.737788),(1.149137, 0.195703),
(0.878002, 0.686087)
);
F := array((0.047695, 0.008424),(0.008424, 0.051119));
Delta := array(7.662437, 6.661245,6.594110,15.436516,6.071548);
return FFI_StockBeta(w_b,X,F,Delta);
//返回:
######### FFI_VaR
范例
w_p := array(0.02,0.02,0.02,0.02,0.02);
X := array((1.149137, -1.274572),(1.006287, -1.158997),
(1.149137, -1.737788),(1.149137, 0.195703),
(0.878002, 0.686087));
F := array((0.047695, 0.008424),(0.008424, 0.051119));
Delta := array(7.662437, 6.661245,6.594110,15.436516,6.071548);
ConfidenceInterval := 95;
return FFI_VaR(w_p,X,F,Delta,ConfidenceInterval);
//返回:0.22
因子研究
内容
- 因子计算
- 绩效分析
- 因子组
因子计算
####### 内容
- 数据获取
####### 数据获取
######## 内容
- 中间函数
######## 中间函数
######### 内容
- MF_GetBenchmarketRate
- MF_Industry_Current
- MF_Industry_New
######### MF_GetBenchmarketRate
范例
范例1:单个指数作为基准
IndexID := "SH000300";
BegT := 20230801t;
EndT := 20230901t;
ReturnMethod := 1;//涨幅法
return MF_GetBenchmarketRate(IndexID,BegT,EndT,ReturnMethod);
返回:
范例2:多个券合成基准
IndexID := array("SZ00001","SH600000","SZ000002");
BegT := 20230801t;
EndT := 20230901t;
ReturnMethod := 1;//涨幅法
return MF_GetBenchmarketRate(IndexID,BegT,EndT,ReturnMethod);
返回:
######### MF_Industry_Current
范例
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH601318');
setsysparam(pn_date(),20241206T);
IndustryType := 1;
type := 2;
level := 1;
return MF_Industry_Current(IndustryType,type,level);// "SWHY490000"
######### MF_Industry_New
范例
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SH601318');
setsysparam(pn_date(),20241206T);
IndustryType := 1;
type := 2;
level := 1;
return MF_Industry_New(IndustryType,type,level);// "SW801790"
绩效分析
####### 内容
- 净值趋势评价
####### 净值趋势评价
######## 内容
- FIP_Trend_CrossMAPercent
- FIP_Trend_NHPercent
- FIP_Trend_OverMAPercent
- FIP_Trend_TrendPower
- FI_Trend_CrossMAPercent
- FI_Trend_NHPercent
- FI_Trend_OverMAPercent
- FI_Trend_TrendPower
######## FIP_Trend_CrossMAPercent
范例
p := array(10,20,50,40,20,30);
MAnum := 3;
return FIP_Trend_CrossMAPercent(p,MAnum); // 20
######## FIP_Trend_NHPercent
范例
p := array(10,20,50,40,20,30);
return FIP_Trend_NHPercent(p); // 40
######## FIP_Trend_OverMAPercent
范例
p := array(10,20,50,40,20,30);
MAnum := 3;
return FIP_Trend_OverMAPercent(p,MAnum); // 60
######## FIP_Trend_TrendPower
范例
p := array(10,20,50,40,20,30);
delta := 2;
return FIP_Trend_TrendPower(p,delta);// 25
######## FI_Trend_CrossMAPercent
范例
r := array(4.5,2.3,-1.5,2.5,-3.3,3);
MAnum := 3;
return FI_Trend_CrossMAPercent(r,MAnum); // 66.6666666666667
######## FI_Trend_NHPercent
范例
r := array(4.5,2.3,-1.5,2.5,-3.3,3);
return FI_Trend_NHPercent(r); // 50
######## FI_Trend_OverMAPercent
范例
r := array(4.5,2.3,-1.5,2.5,-3.3,3);
MAnum := 3;
return FIP_Trend_OverMAPercent(r,MAnum);// 40
######## FI_Trend_TrendPower
范例
r := array(4.5,2.3,-1.5,2.5,-3.3,3);
delta := 2;
return FI_Trend_TrendPower(r,delta);// 89.7011722230414
因子组
####### 内容
- TS_GroupFactorReturn
####### TS_GroupFactorReturn
范例
return?TS_GroupFactorReturn(1004,20240401T,20240405T,cy_day());
执行结果:
量化择时
内容
- 市场结构
市场结构
####### 内容
- 涨停股
####### 涨停股
######## 内容
- 中间函数
######## 中间函数
######### 内容
- StockDTLBNumByEndt
- StockZtLBNumByEndt2
######### StockDTLBNumByEndt
范例
//SZ002123在20250218跌停连板次数统计
SetSysParam(pn_stock(),"SZ002123");
return StockDTLBNumByEndt(20250218T);
//结果:2
######### StockZtLBNumByEndt2
范例
// "SH603139"在20250320的连板次数
setsysparam(pn_stock(),"SH603139");
return StockZtLBNumByEndt2(20250320T);//结果:2
期权基本函数
内容
- 期权板块
期权板块
####### 内容
- OP_GetOptionList
####### OP_GetOptionList
范例
//获取20250806标的为上证50etf在市的期权合约
stockid:='SH510050';
endt:=20250806T;
return OP_GetOptionList(StockID,endt);