playbook/docs/tsl/syntax_book/function/financial/financial_engineering.md

144 KiB
Raw Blame History

金融工程

内容
  • CAPM
  • Dev
  • 策略验证
  • 量化选股
  • 股权分置
  • 价值评估
  • 期权定价
  • 套利
  • 投资组合
  • 新股定价
  • 指数研究
  • 基金研究
  • 量化数据接口
  • 量化套利
  • 债券研究
  • 绩效分析
  • 风险模型
  • 因子研究
  • 量化择时
  • 期权基本函数
CAPM
内容
  • BkRiskAndReturn_Pgm
  • BksRiskAndReturn_Pgm
  • StocksAlpha
  • StocksBeta
  • StocksBetaAlpha
  • StocksExpectedReturn
  • StocksResidual
BkRiskAndReturn_Pgm

用途CAPM相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:处理后的结果值。

范例

// 返回深证A股板块及其下个股加权beta/alpha/平均收益率/标准差/残差标准差/相关系数
bkname := "深证A股";
indexid := 'SH000001';
begt := inttodate(20120425);
endt := inttodate(20121017);
return BkRiskAndReturn_Pgm(bkname, indexid, begt, endt, 1);
BksRiskAndReturn_Pgm

用途CAPM相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

// 返回深证A股及上证A股的风险指标
bkname := "深证A股;上证A股";
indexid := 'SH000001';
begt := inttodate(20120425);
endt := inttodate(20121017);
return BksRiskAndReturn_Pgm(bkname, indexid, begt, endt);
StocksAlpha

用途CAPM相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

算法在已知个股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

用途CAPM相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

算法在已知个股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

用途CAPM相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

// 返回一组股票的α系数、β系数、平均收益率、收益率标准差、残差标准差及相关系数
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

用途CAPM相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

SetSysParam(PN_Stock(), 'SZ000002');
SetSysParam(pn_date(), inttodate(20121017));
return BuySample();
// 结果0
SelectStockIndex

用途Dev相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

SetSysParam(PN_CYCLE(), cy_day());
return SelectStockIndex("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

用途Dev相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetSysParam(PN_Stock(), 'SZ000002');
SetSysParam(pn_date(), inttodate(20121017));
return sellSample(); // 判断万科A在2012-10-17在卖出策略sellSample()下是否卖出, 结果0
TradingStrategyByBk

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

return TradingStrategyByBk("上证180;中证800",
inttodate(20120625),
inttodate(20121017),
"SH000001",
@BK_UpPercent3() >= 60,
@StockZf3(), 1, 10, 10, 1);
TradingStrategyByBk2

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

return TradingStrategyByBk2(
"上证180",
inttodate(20120725),
inttodate(20121017),
"SH000001",
"BK_UpPercent3()+Ref(BK_UpPercent3(),1)+Ref(BK_UpPercent3(),2)",
3, 20);
TradingByJSZB

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

return TradingByJSZB(
"SZ000002;SH600718;SH600000;SH600001",
inttodate(20100125),
inttodate(20101017),
@IsHighOfNDay(0),
@Close() < hhv(High(), 0) - 10 * ATR_v(45),
-10, 20, 20);
PortfolioCalcSys

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

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

用途Dev相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetRetBuyPrice(20);
return GetSysParam('tmpBuyPrice'); // 结果20
SetRetSellPrice

用途Dev相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetRetSellPrice(50);
return GetSysParam('tmpSellPrice'); // 结果50
SetStockBuyInfo

用途Dev相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

SetStockBuyInfo("SZ000002", 'BuyPrice', 8);
return GetSysParam('BuyPrice');
StockBuyInfo

用途Dev相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetStockBuyInfo("SZ000002", 'BuyPrice', 'kkkk');
SetSysParam(pn_stock(), 'SZ000002');
return StockBuyInfo("BuyPrice"); // 结果kkkk
SetStockBuyPrice

范例

SetStockBuyTime('SZ000002', inttodate(20121023));
return GetSysParam("BuyTime");
StockBuyPrice

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

SetStockBuyInfo('SZ000002', 'BuyPrice', 5);
SetSysParam(PN_Stock(), 'SZ000002');
return StockBuyPrice(); // 结果5
SetStockBuyTime

用途:日期时间处理函数。 参数arg1arg2按示例顺序传入。 返回:日期或时间值。

范例

SetStockBuyTime('SZ000002', inttodate(20121023));
return GetSysParam("BuyTime");
StockBuyTime

用途:日期时间处理函数。 参数:无。 返回:日期或时间值。

范例

SetStockBuyInfo('SZ000002', 'BuyTime', inttodate(20121023));
SetSysParam(Pn_Stock(), 'SZ000002');
return StockBuyTime(); // 结果41205
StockHoldingCount

用途Dev相关函数。 参数:无。 返回:整数。

范例

SetStockBuyInfo('SZ000002', 'HoldingInfo', 9);
SetSysParam(Pn_Stock(), 'SZ000002');
return StockHoldingCount();

结果9

SelectStockIndex_Call

用途Dev相关函数。 参数:无。 返回:整数。

范例

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

用途Dev相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

return TSB_Data1("上证180", inttodate(20120625), inttodate(20121017),
"BK_UpPercent3()+Ref(BK_UpPercent3(),1)+Ref(BK_UpPercent3(),2)",
3, 20);
TSB_Data2

用途Dev相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

return TSB_Data2("上证180;中证500", inttodate(20120925),
inttodate(20121017));
StockBuyDiff

用途Dev相关函数。 参数:无。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:整数。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10arg11arg12按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8按示例顺序传入。 返回:处理后的结果值。

范例

PortfolioBackTesting_Quantity_CashAllocation(10000000, 5, 4, 10, 5, 0, Number, CashPerUnit);
return array('实际可买入个数':Number, '分配资金':CashPerUnit);

####### PortfolioBackTesting_Quantity_SellByCommonCondition

用途:策略验证相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:进行字符串提取或替换处理。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

// 换股退市
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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

PfInfoData := array();
return PortfolioBackTesting_IndexFund_DataCheck(PFInfoData, 'SH000300');

####### PortfolioBackTesting_IndexFund_GetIndexSamples

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:整数。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:整数。

范例

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

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

return PortfolioBackTesting_InitInvestmentRatio(inttodate(20121029), 100000); // 对资产配资初始化

####### PortfolioBackTesting_BenchmarkReturn

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

return PortfolioBackTesting_TransactionPrice('SH600000', inttodate(20121029), 1);
// 结果7.46

####### PortfolioBackTesting_AdjustVolByBonusShare

用途:策略验证相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:策略验证相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

return PortfolioBackTesting_TransactionVol(1, 0.3, 0.2, 20030); // 结果20000

####### PortfolioBackTesting_CalBenchmarkReturn

用途:策略验证相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

范例一:

// 单个市场指数作为基准沪深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

用途:股权分置相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:价值评估相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

stocks := 'SH600053;SH600836;SH600963;SH600966;SZ000488;SZ000506;SZ00069';
endt := inttodate(20120925);
return EV_PE(endt, false, stocks);
EV_PB

用途:价值评估相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

stocks := 'SH600053;SH600836;SH600963;SH600966;SZ000488;SZ000506;SZ00069';
endt := inttodate(20120925);
return EV_PB(Stocks, endt);
EV_FCFF_I

用途:价值评估相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:价值评估相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10arg11按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:价值评估相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:价值评估相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:处理后的结果值。

范例

return BinomialTreeOfStock(0, 50, 50, 10, 40, 5, 3);
BinomialTreeOfFuture

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:处理后的结果值。

范例

// 用二叉树对期货美式看涨期权进行定价
return BinomialTreeOfFuture(0, 300, 350, 5, 10, 5, 3);

结果如截图:

参考详细说明:期权定价基础模型

BinomialTreeOfCoin

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8按示例顺序传入。 返回:处理后的结果值。

范例

return BinomialTreeOfCoin(0, 1.61, 1.6, 8, 10, 12, 12, 3);
B_SOfStock

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

return B_SOfStock(0, 4.62, 4.5, 5, 26, 12);
B_SofIndex

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:整数。

范例

return B_SOfIndex(0, 310, 300, 8, 3, 20, 2);
B_SofCoin

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:处理后的结果值。

范例

// 用B-S 对外汇看跌期权进行定价
return B_SOfCoin(1, 1.61, 1.6, 5, 3, 10, 5);

结果如截图:

参考详细说明:期权定价基础模型

B_SofFuture

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

return B_SOfFuture(0, 20, 20, 9, 25, 4);
BinomialTreeOfIndex

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8按示例顺序传入。 返回:整数。

范例

return BinomialTreeOfIndex(0, 1.61, 1.6, 8, 10, 12, 12, 3);
B_SOfStock_1

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

return B_SOfStock_1(0, 4.62, 4, 5, 0.98, 12);
Black_Scholes

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8按示例顺序传入。 返回:处理后的结果值。

范例

return Black_Scholes(0, 0, 42, 40, 10, 20, 0.5, 0);
B_SOfStock_IV

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

// 用 B-S 计算股票期权的隐含波动率
return B_SOfStock_IV(0, 4.62, 4.5, 5, 0.68, 12);
// 结果27.8

参考详细说明:期权定价基础模型

BinomialTree

用途:期权定价相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入。 返回:处理后的结果值。

范例

BegTime := IntToDate(20120912);
EndTime := inttodate(20121023);
return FundPortfolio_db_Pgm(BegTime, EndTime, 'ClassData', 'Portfolio', 4, 0, 2, 0, 2);
PortfolioHVByPE

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入。 返回:处理后的结果值。

范例

return PortfolioHVByPE("深证A股;上证A股", inttodate(20120912), inttodate(20121022), 500, 3, 1, 10, 2, 1);
StocksPortfolio_Pgm

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

a := array(2, 3, 4, 5, 8);
SetSysParam('TZZHRiMatrix', a);
w := array(1, 4, 6, 3, 7);
return GetTrueRp(w); // 结果5.19048

####### PortfolioTrack

用途:投资组合相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

return PortfolioTrack("Data", 500, inttodate(20120721), inttodate(20121022));

####### StocksPortfolio

用途:投资组合相关函数。 参数:无。 返回:处理后的结果值。

范例

return StocksPortfolio(
array('SH600001', 'SH600000'),
inttodate(20120721),
inttodate(20121002),
0,
0,
0,
true,
"");

####### pf_CallBack1

用途:投资组合相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

return pf_CallBack1(array(3, 4, 5), 2); // 结果0.3872

####### pf_IncomeMaxCallBack

用途:进行数值统计计算。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

begt := inttodate(20121018);
endt := inttodate(20121026);
return NeedAdjustSampleByDays(begt, endt, 9); // 结果0
Markowitz

####### 内容

  • MarkowitzBasicData
  • MarkowitzVARRp
  • pf_StocksCovMatrix
  • pf_StocksZfMatrix

####### MarkowitzBasicData

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

StockArr := array("SZ000099", "SH600000", "SZ000002");
return MarkowitzBasicData(
StockArr,
inttodate(20120818),
inttodate(20121019));
// 结果:-0.01625

####### MarkowitzVARRp

用途:投资组合相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

tb := array((1, 2, 3), (1, 3, 4), (3, 2, 5));
return pf_StocksCovMatrix(tb);

####### pf_StocksZfMatrix

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:进行数值统计计算。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SIMBasicData(
array("SH600718", "SH600100"),
inttodate(20120618),
inttodate(20120919));
// 使用SIM方法计算基本数据,参考
SIMBasicData
()
return SIMSumAlphap(array(1, 2));

结果0.00266

####### SIMSumBetap

用途:进行数值统计计算。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SIMBasicData(
array("SH600718", "SH600100"),
inttodate(20120618),
inttodate(20120919));
// 使用SIM方法计算基本数据,参考
SIMBasicData
()
return SIMSumBetap(array(1, 2)); // 结果0.03314

####### SIMSumVarEj

用途:进行数值统计计算。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SIMBasicData(
array("SH600718", "SH600100"),
inttodate(20120618),
inttodate(20120919));
// 使用SIM方法计算基本数据, 参考
SIMBasicData
()
return SIMSumVarEj (array(1, 2)); // 结果0.00045

####### SIMVARRp

用途:投资组合相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SIMBasicData(
array("SH600718", "SH600100"),
inttodate(20120618),
inttodate(20120919));
// 使用SIM方法计算基本数据, 参考
SIMBasicData
()
return SIMVARRp(array(1, 2)); // 结果0.00143

####### StockBetaAlphaMatix

用途:投资组合相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

return AllBKYieldAndRisk(20, inttodate(20120628));

####### BKyieldAndRisk

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

return BKyieldAndRisk("深证A股", 20, inttodate(20120728));

####### yieldAndRisk

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

return yieldAndRisk("深证A股", 20, inttodate(20120728));
投资组合历史验证

####### 内容

  • PortfolioByPE
  • PortfolioGraph
  • PortfolioPercent
  • PortfolioTrack_Pgm
  • PortfolioTracking

####### PortfolioByPE

用途:投资组合相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

StockArr := array("SH600718", "SZ000920", "SH600000");
EndT := inttodate(20120828);
return PortfolioByPE(StockArr, EndT, 1, 2);

####### PortfolioGraph

用途:投资组合相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetSysParam(PN_DATE(), INTTODATE(20121029));
t := nday(100, '日期', sp_time(), '指数', spec(close(), 'SZ000002'), '组合指数', SPEC(CLOSE(), 'SZ000001'));
return PortfolioGraph(t);

####### PortfolioPercent

用途:投资组合相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6arg7按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:投资组合相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

return AdjustSmaple("深证A股;上证A股", inttodate(20120926), 500, 11, 20, 0);

####### BKBetaAlphaIndexRelative

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:整数。

范例

// 获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
// 计算当前板块“申万采掘服务“中个股与上证指数在2012-9-26日至2020-12-31日区间的相关性
setsysparam(pn_date(), 20201231T);
return BKBetaAlphaIndexRelative("申万采掘服务", "SH000001", inttodate(20120926));

####### BKCorrelMatrix

用途:投资组合相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 计算两个股票与上证指数在2019-9-26日至2020-12-31日区间的相关系数矩阵
setsysparam(pn_date(), 20201231T);
return BKCorrelMatrix("申万采掘服务", 20190926T);

####### BetaAlphaIndexRelative

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:整数。

范例

// 获取当前组合中个股与指数的Beta系数、Alpha值与相关系数
// 计算两个股票与上证指数在2012-9-26日至2020-12-31日区间的相关性
setsysparam(pn_date(), 20191231T);
stocks := array("SH600718", "SZ000920");
return BetaAlphaIndexRelative(stocks, "SH000001", 20120926T);

####### CorrelMatrix

用途:投资组合相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 组合个股相关矩阵
setsysparam(pn_date(), 20201231T);
stocks := array("SH600718", "SZ000920");
return CorrelMatrix(stocks, inttodate(20120926));

####### NeedAdjustSmaple

用途:投资组合相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:新股定价相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

return NSPP_HistoryVerify(getbk('上证A股'),
inttodate(20120618),
inttodate(20120926));
NewStockPredictPrice

用途:新股定价相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

return NewStockPredictPrice(array("SH600718", "SZ000002"));
NewStockPredictValue

用途:新股定价相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

return ShareStructureOfSample(array("SH600718"));

####### PF_Percent

用途:指数研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetSysParam(PN_Stock(), 'SZ000002');
return FHSPTable(true);

####### FHSPTableOfLido

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetSysParam(PN_Stock(), 'SZ000002');
return FHSPTableOfLido (true);

####### FHSPTableOfTinysoft

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

SetSysParam(PN_Stock(), 'SZ000002');
return FHSPTableOfTinysoft (true);

####### BkVsBkKLine_tab

用途:指数研究相关函数。 参数:无。 返回:处理后的结果值。

范例

return BkVsBkKLine_tab("金融、保险业",
1000,
inttodate(20120618),
inttodate(20120926),
0, true, 2, cy_day());

####### BkVsIndexKLine_tab

用途:指数研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:整数。

范例

SetSysParam(pn_bk(), '深证A股');
return BkVsIndexKLine_tab("SH000001", 1000, inttodate(20120618),
inttodate(20120926), 1, true, 2, cy_day());

####### CheckInPutData_UP

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

t := array(('代码':'SZ000002', '比例(%)':20), ('代码':'SZ000001', '比例(%)':40));
return CheckInPutData_UP(t);
// 检查数据表t是否含有代码,’比例(%)’字段 //结果1

####### GetInputStocks_UP

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

r := array();
SetSysParam(PN_Stock(), 'SZ00002');
AddExInfoToArray(r, inttodate(20120618), 0, 0);
return r;

####### BondTrueExDate

用途:日期时间处理函数。 参数arg1按示例顺序传入。 返回:日期或时间值。

范例

PredictDate := inttodate(20120618);
BondTrueExDate(PredictDate);
return PredictDate;

####### DeleteBondByCriterion

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

BondArr := array("SH009704", "SH000896", "SH010107", "SH010004");
DeleteBondByCriterion(BondArr);
return BondArr; // 结果SH010107
中间函数

####### 内容

  • DeleteDataOutOfScopes
  • FileterValue
  • FilterValueByCycle
  • GetMaxListedDate
  • IndexDataToShowable
  • IndexLineMerge
  • KLineMerge
  • KLineDataForIndex
  • ManyBkLineMerge
  • SetToFirstValue
  • VolDataForIndex

####### DeleteDataOutOfScopes

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:日期时间处理函数。 参数arg1按示例顺序传入。 返回:日期或时间值。

范例

return GetMaxListedDate(array("SZ000920", "SH600718", "SH600900"));

####### IndexDataToShowable

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

SetSysParam(PN_Stock(), 'SZ000002');
SetSysParam(PN_DATE(), IntToDate(20121026));
t := Nday(20, 'Date', sp_time(), 'Close', close());
return array('转换前':t, '转换后':IndexDataToShowable(t, 1000));

####### IndexLineMerge

用途:指数研究相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:整数。

范例

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

用途:指数研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:整数。

范例

return KLineDataForIndex("SH600206", inttodate(20120618), inttodate(20120926));

####### ManyBkLineMerge

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

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

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

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

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

t := array(('代码':'SZ000002', '日期':41209), ('代码':'SZ000001', '日期':41209));
return StandarizeBkData_II(t, 0);

####### StandarizeBkData_I

用途:指数研究相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

t := array(('代码':'SZ000003', '日期':nil), ('代码':'SZ000002', '日期':41209), ('代码':'SZ000001', '日期':nil));
return StandarizeBkData_I(t);

####### CalculateFundBkIndex

用途:指数研究相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

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

用途:指数研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:整数。

范例

indexID := "SH000300";
Rdate := 20210630;
RightType := 0;
setsysparam(CT_TTMData(), true);
return Index_BF_Prosperity(IndexID, RDate, RightType, oRDetail); // 结果13

####### Stocks_BF_Prosperity

用途:指数研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:基金研究相关函数。 参数arg1arg2arg3arg4arg5按示例顺序传入。 返回:处理后的结果值。

范例

FundInds := array("TSJJ0201", "TSJJ0203");
EndT := 20250409T;
NType := 1;
N := 5;
DTime := 20250408T + 15 / 24;
return Funds_GetJZModifiedList(FundInds, EndT, NType, N, DTime);

####### OpenEndFundFilterByFundIndex

用途:基金研究相关函数。 参数arg1按示例顺序传入。 返回:整数。

范例

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

用途:量化数据接口相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

范例一:提取 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

用途:量化数据接口相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

// 提取 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

用途:量化数据接口相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 在 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

用途:量化数据接口相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 获取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

用途:量化数据接口相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 获取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

用途:量化数据接口相关函数。 参数arg1按示例顺序传入。 返回:整数。

范例

oV := BackUpSystemParameters2();
SetSysParam(pn_stock(), 'SH000300');
SetSysParam(pn_date(), 2020601T);
return Index_StyleFactor(2);

####### Pf_stylefactor

用途:量化数据接口相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

Portfolio := array(("代码":"SZ000001", "比例(%)":50),
("代码":"SZ000002", "比例(%)":50));
EndT := 20200601T;
DType := 2;
return pf_StyleFactor(Portfolio, EndT, DType);

####### Stockstylefactor

用途:量化数据接口相关函数。 参数arg1按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:债券研究相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

范例

PBondID := "BTS000033";
Begt := 20230724t;
Endt := 20230725t;
Delta := 20;
Constant := 0;
lambda := 0.5;
return Bonds_NSBetaSensRet(PBondID, Begt, Endt, Delta, Constant, lambda);

####### Bonds_NSModelBeta

用途:债券研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

PBondID := "BTS000033"; // 国债
Endt := 20230725t;
Lambda := 0.5;
return Bonds_NSModelBeta(PBondID, Endt, Lambda);
// array(3.08,-1.43,-0.58)

####### Bonds_NSModelBetaNL

用途:债券研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:债券研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:债券研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

范例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

用途:债券研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

算法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

用途:债券研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

算法EC=P_ + P+ - 2 _ P0/P0 _ Δy2

P0表示债券现金流贴现价格

Δy表示利率变动值

P_ 、P+分别表示债券收益率曲线向下或向上平移若干个基点后的债券价格范例

Setsysparam(PN_Stock(), 'SH194037');
endt := 20200101T;
return Bond_EffectiveConvexity(EndT, 0.0001, 'BTS000033', 2);
// 执行结果29.2364563483935

####### Bond_KeyRateDuration

用途:债券研究相关函数。 参数arg1arg2arg3arg4arg5arg6按示例顺序传入。 返回:处理后的结果值。

算法

首先提取指定日债券收益率曲线数据,使用线性插值法获得关键年期即期利率。提取指定债券现金流数据,并通过权重分配计算前后关键年期的现金流映射数据,得到债券现金流对应的关键年期现金流数据。最后通过公式计算关键利率久期。关键利率久期的计算公式如下:

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

用途:债券研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

算法个券到期收益率与同期限基准曲线收益率的差值范例

Setsysparam(PN_Stock(), 'SH194037');
endt := 20230103T;
return Bond_GSpread(EndT, 'BTS000033', 2);
// 执行结果1.16479423315908

####### Bond_ZSpread

用途:债券研究相关函数。 参数arg1arg2arg3按示例顺序传入。 返回:处理后的结果值。

算法在收益率曲线的基础上,使得债券现金流贴现价格等于全价时所需添加的利差

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

用途:绩效分析相关函数。 参数arg1arg2按示例顺序传入。 返回:整数。

范例

sw := array(200, 50);
zf := array(50, 0);
return fipwc_CalEndWeight(sw, zf);
// 结果array(150.0,25.0)

####### fipwc_CalportfolioZF

用途:绩效分析相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

sw := array(200, 50);
zf := array(50, 0);
return fipwc_CalportfolioZF(sw, zf);
// 结果100

####### fipwc_DerBeginWeight

用途:绩效分析相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

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;
return Method := 1; // 涨幅法
return MF_GetBenchmarketRate(IndexID, BegT, EndT, return Method);

返回:

范例2多个券合成基准

IndexID := array("SZ00001", "SH600000", "SZ000002");
BegT := 20230801t;
EndT := 20230901t;
return Method := 1; // 涨幅法
return MF_GetBenchmarketRate(IndexID, BegT, EndT, return Method);

返回:

######### 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

用途:因子研究相关函数。 参数arg1arg2arg3arg4按示例顺序传入。 返回:处理后的结果值。

范例

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

用途:期权基本函数相关函数。 参数arg1arg2按示例顺序传入。 返回:处理后的结果值。

范例

// 获取20250806标的为上证50etf在市的期权合约
stockid := 'SH510050';
endt := 20250806T;
return OP_GetOptionList(StockID, endt);