# 策略回测框架 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();
```
