# 金融 / 金融工程 / 策略验证 ## `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 ```tsl 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 ```tsl 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 ```tsl 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 ```tsl 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 ```tsl 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 ```tsl 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 ```tsl 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); ```