playbook/docs/tsl/modules/tsbacktesting.md

67 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 策略回测框架 TSBackTesting
## 定位
- 提供统一的策略回测框架(股票/期货/期权/组合等),覆盖资金、交易约束、清算与绩效输出。
## 结构索引
- 策略回测流程
- 成员变量
- 成员方法
- 查询用接口
- 回测范例
- 债券品种回测说明
- 期权组合策略回测说明
- 常见问题
## 回测流程概览
- 组合类型选择 → 交易数据准备 → 回测执行 → 结果查询与分析。
## 组合类型
- 比例类组合:提供目标权重。
- 数量类组合:提供成交量/成交价等交易明细。
## 关键成员变量(分组摘要)
- **时间与周期**`FBegT`、`FEndT`、`FCycle`
- **组合类型**`FGroupType`(比例类/数量类)
- **资金与价格**`FIniCash`、`FPriceType`、`FPriceType1..4`
- **交易约束**`FNoZT`、`FNoDT`、`FMinVol`、`FMinAmount`、`FMaxVolPercent`、`FMaxAmountPercent`
- **费用与分红**`FFeeType`、`FlowestFeeType`、`FDividendType`
- **期权与期货特性**`FOptionRs`、`FMainFutureMap`
- **基准与输出**`FBMType`、`FBMDetail`、`FBMOption`、`FHFDataOutPut`
> 详细取值及说明以实际接口定义为准。
## 关键成员方法(常用)
- `BackTest`:执行回测
- `GetTimeSeries`:返回净值/收益率时间序列
- `GetTradeOrder`:返回调仓/成交数据
- `GetNetAssetValue` / `GetAssetData` / `GetHoldData`:资产与持仓
- `GetPercent`、`GetIRRReturn`、`ReturnBenchmark`:绩效指标
- `GetClearancePrice` / `GetIntVol` / `GetOtherData`:扩展查询
## 最小流程示例(概念化)
```tsl
// 1) 初始化参数
backtest := new TSBackTesting();
backtest.FBegT := 20240101T;
backtest.FEndT := 20241231T;
backtest.FGroupType := 1; // 比例类
backtest.FIniCash := 1000000;
// 2) 设置交易数据(比例类:目标持仓)
// backtest.SetTradeData(trade_data);
// 3) 执行回测
backtest.BackTest();
// 4) 获取结果
return backtest.GetTimeSeries();
```