31 KiB
金融 / 金融工程 / 策略验证
portfolioBackTesting_indexFund(pf_info_data, index_id, begt, end_t)
声明:function
返回策略验证-指数基金-历史模拟
| 参数 | 类型 | 说明 |
|---|---|---|
pf_info_data |
table_array | 数据表类型,组合基本信息(in) |
index_id |
string | 字符串,验证代码 |
begt |
datetime | 日期型时间,验证开始日(in) |
end_t |
datetime | 日期型时间,验证截止日(in) |
返回:table_array
示例
范例01:调用 PortfolioBackTesting_IndexFund
PFInfoData := array((
"初始资金":2000000000.0,
"指数成分数据来源":0.0,
"初始建仓策略":0.0,
"首日建仓比例(%)":20.0,
"每日建仓比例变化(%)":0.0,
"目标建仓比例(%)":95.0,
"涨停不交易":1.0,
"跌停不交易":1.0,
"停牌不交易":1.0,
"成交价类别":1.0,
"成交量取整模式":1.0,
"分红再投资":0.0,
"最大成交金额占可交易金额比例(%)":5.0,
"最小调仓比例(%)":0.01,
"开仓费率(%)":0.1,
"平仓费率(%)":0.1,
"滚动跟踪误差计算天数":60.0,
"指数成分源数据目录":"C:\\Test\\000300\\指数成分-输入\\",
"退市源数据目录":"C:\\Test\\000300\\",
"指数成分输出目录":"C:\\Test\\000300\\指数成分-输出\\",
"交易明细输出目录":"C:\\Test\\000300\\交易明细-输出\\",
"持仓明细输出目录":"C:\\Test\\000300\\持仓明细-输出\\",
"行业配置输出目录":"C:\\Test\\000300\\行业配置-输出\\",
"结果输出目录":"C:\\Test\\000300\\结果-输出\\"));
IndexId := "SH000300";
BegT := 20250101T;
EndT := 20251231T;
return PortfolioBackTesting_IndexFund(PFInfoData, IndexId, BegT, EndT);
portfolioBackTesting_percent(pf_info_data, t_all_percent, t_all_ta, index_id, end_t, rate_type, t_all_zcpz, t_all_hypz, t_all_ccmx, t_all_jz, t_all_ls, t_all_jymx)
声明:function
返回策略验证-配置类组合,配置类的策略的回测,参考平台首页-》2011-12-19-模型更新-策略验证(配置类)ToolBox使用说明
| 参数 | 类型 | 说明 |
|---|---|---|
pf_info_data |
table_array | 数据表类型,组合基本信息(in) |
t_all_percent |
table_array | 数据表类型,所有配置比例(in) |
t_all_ta |
table_array | 数据表类型,所有申购、赎回(in) |
index_id |
string | 字符串,指数代码,Benchmark(in) |
end_t |
datetime | 日期型时间,验证截止日(in) |
rate_type |
integer | 整数,用户自定义,资金配比方式(in),含义如下表: |
t_all_zcpz |
table_array | 数据表类型,资产配置 |
t_all_hypz |
table_array | 数据表类型,行业配置 |
t_all_ccmx |
table_array | 数据表类型,持仓明细 |
t_all_jz |
table_array | 数据表类型,资产净值 |
t_all_ls |
table_array | 数据表类型,交易流水 |
t_all_jymx |
table_array | 数据表类型,交易明细 |
返回:table_array
示例
范例01:调用 PortfolioBackTesting_Percent
PFInfoData := array(("组合名称":"我的比例组合", "初始资金":3000000.0, "成交价类别":0.0, "成交量取整模式":-1.0, "分红再投资":0.0));
tAllPercent := array(
("日期":40543.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":25.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40543.0, "代码":"SH600004", "名称":"白云机场", "方向":1.0, "比例(%)":25.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40543.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":25.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40543.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":25.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40633.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":20.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40633.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":20.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40633.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":20.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40633.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40633.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40724.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40724.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40724.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40724.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40724.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40753.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":24.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40753.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":8.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40753.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40753.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":18.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40753.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":10.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975, "乘数":1.0, "保证金比例(%)":100.0),
("日期":40816.0, "代码":"SH000000", "名称":"现金", "方向":1.0, "比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065, "乘数":1.0, "保证金比例(%)":100.0));
tAllTA := array();
IndexId := "SH000300";
EndT := MaxValue(tAllPercent[:, "日期"]);
RateType := 4;
PortfolioBackTesting_Percent(PFInfoData, tAllPercent, tAllTA, IndexId, EndT, RateType, tAllZCPZ, tAllHYPZ, tAllCCMX, tAllJZ, tAllLS, tAllJYMX);
return array('持股明细':tAllJYMX);
portfolioBackTesting_quantity(pf_info_data, begt, end_t, t_all_jymx, t_all_ta, t_all_zcpz, t_all_hypz, t_all_ccmx, t_all_jz, t_all_ls)
声明:function
返回策略验证-数量类组合,数量类的策略的回测
| 参数 | 类型 | 说明 |
|---|---|---|
pf_info_data |
table_array | 数据表类型,组合基本信息(in) |
begt |
datetime | 日期型时间,验证开始日(in) |
end_t |
datetime | 日期型时间,验证截止日(in) |
t_all_jymx |
table_array | 数据表类型,交易明细 |
t_all_ta |
table_array | 数据表类型,所有申购、赎回(in) |
t_all_zcpz |
table_array | 数据表类型,资产配置 |
t_all_hypz |
table_array | 数据表类型,行业配置 |
t_all_ccmx |
table_array | 数据表类型,持仓明细 |
t_all_jz |
table_array | 数据表类型,资产净值 |
t_all_ls |
table_array | 数据表类型,交易流水 |
返回:table_array
示例
范例01:调用 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);
portfolioBackTesting_trading(pf_info_data, t, return_type)
声明:function
返回交易类策略的回测,返回交易类系统的成功率,最大连续盈利次数等交易详情信息,参考平台首页-》2011-11-21-模型更新-策略验证(交易类)ToolBox使用说明
| 参数 | 类型 | 说明 |
|---|---|---|
pf_info_data |
table_array | 数据表类型,组合基本信息 |
t |
table_array | 数据表类型,源数据 |
return_type |
integer | 整数,用户自定义,返回类型,0表示交易评价 |
返回:table_array
示例
范例01:调用 PortfolioBackTesting_Trading
PfInfoData := array(("源数据类型":0));
t := array(
("代码":"CU1201", "名称":"CU1201", "乘数":5.0, "方向":1.0, "开仓日期":40724.0, "开仓价":69450.0, "开仓数量":1.0, "开仓费率(%)":0.0125, "开仓其他费用":0.0, "平仓日期":40763.0, "平仓价":67740.0, "平仓数量":1.0, "平仓费率(%)":0.0125, "平仓其他费用":0.0),
("代码":"CU1201", "名称":"CU1201", "乘数":5.0, "方向":0.0, "开仓日期":40787.0, "开仓价":68200.0, "开仓数量":1.0, "开仓费率(%)":0.0125, "开仓其他费用":0.0, "平仓日期":40801.0, "平仓价":65020.0, "平仓数量":1.0, "平仓费率(%)":0.0125, "平仓其他费用":0.0),
("代码":"RU1201", "名称":"RU1201", "乘数":5.0, "方向":1.0, "开仓日期":40695.0, "开仓价":33365.0, "开仓数量":2.0, "开仓费率(%)":0.02, "开仓其他费用":0.0, "平仓日期":40725.0, "平仓价":32175.0, "平仓数量":2.0, "平仓费率(%)":0.02, "平仓其他费用":0.0),
("代码":"RU1201", "名称":"RU1201", "乘数":5.0, "方向":1.0, "开仓日期":40805.0, "开仓价":31925.0, "开仓数量":3.0, "开仓费率(%)":0.02, "开仓其他费用":0.0, "平仓日期":40847.0, "平仓价":27105.0, "平仓数量":3.0, "平仓费率(%)":0.02, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40556.0, "开仓价":9.01, "开仓数量":1100.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40569.0, "平仓价":8.5, "平仓数量":1100.0, "平仓费率(%)":0.01, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40596.0, "开仓价":8.17, "开仓数量":1200.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40604.0, "平仓价":8.19, "平仓数量":1200.0, "平仓费率(%)":0.01, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40616.0, "开仓价":8.28, "开仓数量":1200.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40627.0, "平仓价":8.67, "平仓数量":1200.0, "平仓费率(%)":0.01, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40630.0, "开仓价":8.82, "开仓数量":1100.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40660.0, "平仓价":8.45, "平仓数量":1100.0, "平仓费率(%)":0.01, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40714.0, "开仓价":8.16, "开仓数量":1200.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40746.0, "平仓价":8.41, "平仓数量":1200.0, "平仓费率(%)":0.01, "平仓其他费用":0.0),
("代码":"SZ000002", "名称":"万 科A", "乘数":1.0, "方向":1.0, "开仓日期":40770.0, "开仓价":8.44, "开仓数量":1100.0, "开仓费率(%)":0.01, "开仓其他费用":0.0, "平仓日期":40781.0, "平仓价":8.38, "平仓数量":1100.0, "平仓费率(%)":0.01, "平仓其他费用":0.0));
ReturnType := 0;
return PortfolioBackTesting_Trading(PfInfoData, t, ReturnType);
tsFl_tsBackTesting_file(end_t, my_portfolio_arr, index_id, ini_cash, price_type, vol_mod_type, dividend_type, allotment_type)
声明:function
返回TSBackTesting策略回测框架的使用范例,实现从外部导入组合配置数据进行回测
| 参数 | 类型 | 说明 |
|---|---|---|
end_t |
datetime | 回测截止日期 |
my_portfolio_arr |
array | 组合配置信息 |
index_id |
string | 基准指数 |
ini_cash |
float | 初始资金 |
price_type |
int | 成交价类别 |
vol_mod_type |
int | 成交量取整模式 |
dividend_type |
bool | 是否分红再投资 |
allotment_type |
bool | 是否参与配股 |
返回:array
示例
范例01:调用 TSFL_TSBackTesting_File
MyPortfolioArr := array(
("截止日":40543.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":11.25, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40543.0, "代码":"SH600004", "名称":"白云机场", "方向":1.0, "比例(%)":11.25, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40543.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":11.25, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40543.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":11.25, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40543.0, "代码":"IF01", "名称":"股指期货", "方向":0.0, "比例(%)":45.0, "乘数":300.0, "保证金比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40633.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":9.6, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40633.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":9.6, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40633.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":9.6, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40633.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":9.6, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40633.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":9.6, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40633.0, "代码":"SH600004", "名称":"白云机场", "方向":1.0, "比例(%)":0.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40633.0, "代码":"IF01", "名称":NIL, "方向":0.0, "比例(%)":48.0, "乘数":300.0, "保证金比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40724.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40724.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40724.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40724.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40724.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40724.0, "代码":"IF01", "名称":NIL, "方向":0.0, "比例(%)":25.0, "乘数":300.0, "保证金比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40753.0, "代码":"SH600000", "名称":"浦发银行", "方向":1.0, "比例(%)":12, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40753.0, "代码":"SH600031", "名称":"三一重工", "方向":1.0, "比例(%)":4.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40753.0, "代码":"SH600036", "名称":"招商银行", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.165, "平仓费率(%)":0.065),
("截止日":40753.0, "代码":"SZ000001", "名称":"深发展A", "方向":1.0, "比例(%)":9.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40753.0, "代码":"SZ000002", "名称":"万 科A", "方向":1.0, "比例(%)":5.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40753.0, "代码":"IF01", "名称":NIL, "方向":0.0, "比例(%)":35.0, "乘数":300.0, "保证金比例(%)":20.0, "开仓费率(%)":0.11975, "平仓费率(%)":0.01975),
("截止日":40816.0, "代码":"SH000000", "名称":NIL, "方向":1.0, "比例(%)":100.0, "乘数":1.0, "保证金比例(%)":100.0, "开仓费率(%)":0.0, "平仓费率(%)":0.0));
EndT := vselect maxof(['截止日']) from MyPortfolioArr end;
IndexId := "SH000300";
IniCash := 10000000;
PriceType := 2;
VolModType := 0;
DividendType := 0;
AllotmentType := 0;
return TSFL_TSBackTesting_File(EndT, MyPortfolioArr, IndexId, IniCash, PriceType, VolModType, DividendType, AllotmentType);
tsFl_tsBackTesting_percentPortfolio(bk_name, beg_t, end_t, index_id, ini_cash, rate_type, price_type, vol_mod_type, dividend_type, allotment_type, fee_rate, top_n)
声明:function
返回TSBackTesting回测框架的一个范例,简单的单因子PE选股回测模型。该函数只作为框架调用示例,用户可参考该函数的调用过程,详见函数代码
| 参数 | 类型 | 说明 |
|---|---|---|
bk_name |
string | 板块名称 |
beg_t |
datetime | 开始日 |
end_t |
datetime | 截止日 |
index_id |
string | 基准指数 |
ini_cash |
float | 初始资金 |
rate_type |
int | 资金配比方式 |
price_type |
int | 成交价类别 |
vol_mod_type |
bool | 成交量取整模式 |
dividend_type |
bool | 是否分红再投资 |
allotment_type |
bool | 是否参与配股 |
fee_rate |
float | 交易费率(%) |
top_n |
int | 前N个 |
返回:array
示例
范例01:调用 TSFL_TSBackTesting_PercentPortfolio
BKName := "A股";
BegT := 20250101t;
EndT := 20251231t;
IndexID := "SH000300";
IniCash := 10000000;
RateType := 0;
PriceType := 2;
VolModType := 0;
DividendType := 0;
AllotmentType := 0;
FeeRate := 0.3;
TopN := 30;
return TSFL_TSBackTesting_PercentPortfolio(BKName, BegT, EndT, IndexID, IniCash, RateType, PriceType, VolModType, DividendType, AllotmentType, FeeRate, TopN);
tsFl_tsMutiFactor_01(index_id, beg_t, end_t, factor_arr, cy, abnormal_type, standarize_type, groups, constr, group_hy, industry_type, industry_method, rate_type, buy_ratio, sell_ratio)
声明:function
返回TSBackTesting回测框架的一个范例,实现对高频交易的回测。该函数只作为框架调用示例,用户可参考该函数的调用过程,详见函数代码
| 参数 | 类型 | 说明 |
|---|---|---|
index_id |
string | 基准指数 |
beg_t |
datetime | 开始日 |
end_t |
datetime | 截止日 |
factor_arr |
array | 因子选择 |
cy |
string | 周期 |
abnormal_type |
int | 极值处理方法 |
standarize_type |
int | 无量纲化方法 |
groups |
string | 分组百分位 |
constr |
string | 剔除条件 |
group_hy |
int | 分组方式 |
industry_type |
int | 行业分类标准 |
industry_method |
int | 行业资金分配方法 |
rate_type |
int | 个股资金分配方式 |
buy_ratio |
float | 开仓费率(%) |
sell_ratio |
float | 平仓费率(%) |
返回:array
示例
范例01:调用 TSFL_TSMutiFactor_01
IndexId := "SH000300";
BegT := 20250101t;
EndT := 20251231t;
FactorArr := array(
("大类因子":"盈利因子", "因子名称":"净资产收益率(%)ROE", "因子公式":"Last12MData(RDate,9900100)", "因子方向":1.0, "因子比例(%)":40.0, "因子描述":"净利润/平均净资产"),
("大类因子":"盈利因子", "因子名称":"总资产报酬率(%)ROA", "因子公式":"Last12MData(RDate,9900105)", "因子方向":1.0, "因子比例(%)":60.0, "因子描述":"利润总额/平均总资产"),
("大类因子":"盈利因子", "因子名称":"销售毛利率(%)", "因子公式":"Last12MData(RDate,9900103)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"(营业收入-营业成本)/营业收入"),
("大类因子":"盈利因子", "因子名称":"销售净利率(%)", "因子公式":"Last12MData(RDate,9900102)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"净利润/营业收入"),
("大类因子":"成长因子", "因子名称":"营业收入增长率(%)", "因子公式":"Last12MData(RDate,9900600)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"成长因子", "因子名称":"营业利润增长率(%)", "因子公式":"Last12MData(RDate,9900602)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"成长因子", "因子名称":"利润总额增长率(%)", "因子公式":"Last12MData(RDate,9900603)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"成长因子", "因子名称":"归属于母公司净利润增长(%)", "因子公式":"Last12MData(RDate,9900604)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"经营能力", "因子名称":"存货周转率", "因子公式":"Last12MData(RDate,9900400)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"营业成本/平均存货"),
("大类因子":"经营能力", "因子名称":"应收账款周转率", "因子公式":"Last12MData(RDate,9900404)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"营业成本/平均应收账款"),
("大类因子":"经营能力", "因子名称":"总资产周转率", "因子公式":"Last12MData(RDate,9900416)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"营业成本/平均总资产"),
("大类因子":"负债因子", "因子名称":"流动比率", "因子公式":"Last12MData(RDate,9900200)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"流动资产/流动负债"),
("大类因子":"负债因子", "因子名称":"速动比率", "因子公式":"Last12MData(RDate,9900201)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"(流动资产-存货)/流动负债"),
("大类因子":"负债因子", "因子名称":"资产负债率(%)", "因子公式":"1/Last12MData(RDate,9900203)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"总负债/总资产"),
("大类因子":"规模因子", "因子名称":"总市值", "因子公式":"Ln(StockTotalValue(EndT))", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"规模因子", "因子名称":"流通市值", "因子公式":"Ln(StockMarketValue(EndT))", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"规模因子", "因子名称":"总股本", "因子公式":"Ln(StockTotalShares(EndT))", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"规模因子", "因子名称":"流通股本", "因子公式":"Ln(StockHasNAShares(EndT))", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"规模因子", "因子名称":"总资产", "因子公式":"Last12MData(RDate, 44059)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"估值因子", "因子名称":"市盈率(TTM)", "因子公式":"1/StockPE_VI(EndT)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"归属净利润/总市值"),
("大类因子":"估值因子", "因子名称":"市净率(TTM)", "因子公式":"1/StockPNA_VI(EndT)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"归属净资产/总市值"),
("大类因子":"估值因子", "因子名称":"市销率(TTM)", "因子公式":"1/StockPMI_VI(EndT)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"营业收入/总市值"),
("大类因子":"估值因子", "因子名称":"市现率(TTM)", "因子公式":"1/StockPCF_VI(EndT)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":"经营现金净额/总市值"),
("大类因子":"动量因子", "因子名称":"最近1个月涨幅(%)", "因子公式":"StockZf2(20)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"动量因子", "因子名称":"最近3个月涨幅(%)", "因子公式":"StockZf2(60)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"动量因子", "因子名称":"最近6个月涨幅(%)", "因子公式":"StockZf2(120)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"动量因子", "因子名称":"最近12个月涨幅(%)", "因子公式":"StockZf2(240)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"其他因子", "因子名称":"收盘价", "因子公式":"StockClose(EndT)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"其他因子", "因子名称":"最近1个月日均换手率", "因子公式":"StockAveHsl2(10)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"其他因子", "因子名称":"最近3个月日均换手率", "因子公式":"StockAveHsl2(60)", "因子方向":1.0, "因子比例(%)":0.0, "因子描述":NIL),
("大类因子":"风险因子", "因子名称":"标准差(%)", "因子公式":"StockRisk(\"SH00300\",IncYear(EndT,-1),EndT)", "因子方向":0.0, "因子比例(%)":0.0, "因子描述":"用最近1年数据,计算标准差"),
("大类因子":"风险因子", "因子名称":"Beta", "因子公式":"StockBeta(\"SH000300\", IncYear(EndT,-1),EndT)", "因子方向":0.0, "因子比例(%)":0.0, "因子描述":"用最近1年数据,计算Beta"));
cy := cy_month();
AbnormalType := 0;
StandarizeType := 1;
Groups := "0,1/3*100;1/3*100,2/3*100;2/3*100,100";
Constr := "NOT IsStockGoMarket2(EndT-1)";
GroupHy := 2;
IndustryType := 1;
IndustryMethod := 1;
RateType := 4;
BuyRatio := 0.1;
SellRatio := 0.1;
return TSFL_TSMutiFactor_01(IndexId, BegT, EndT, FactorArr, cy, AbnormalType, StandarizeType, Groups, Constr, GroupHy, IndustryType, IndustryMethod, RateType, BuyRatio, SellRatio);