Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/financial/financial_engineering-strategy_validation.md
T

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);