# 策略评价 / 交易评价

## `tsTradingEvaluation`

声明：class

交易策略评价框架

<!-- tags: 评估 买卖 交易绩效 策略评估 业绩指标 -->

### `FTradeOrder`

声明：field

用户交易明细数据 空 Array()

可见性：`public`

类型：array

### `FTradeOC`

声明：field

用户交易逐笔数据 空 Array()

可见性：`public`

类型：array

### `FEvIndColArr`

声明：field

用户筛选核心关键指标（呈现用） 全部指标

可见性：`public`

类型：array

### `FDaysIn1y`

声明：field

年化天数 250

可见性：`public`

类型：numeric

### `GetEvaluate()`

声明：function

执行交易策略分层评价并返回汇总、个券及逐笔交易评价结果

<!-- tags: 查询 交易评价 绩效指标 -->

可见性：`public`

返回：array

### `Summary()`

声明：function

根据用户的需求获取额外汇总表。该方法用户可以根据自身需求重写

<!-- tags: 查询 交易绩效 -->

可见性：`public`

返回：array

### `GetHoldData()`

声明：function

获取交易明细中仍处于持仓状态的数据，可用于调整期初或期末未完整开平的交易明细

<!-- tags: 查询 仓位 买卖 交易策略 -->

可见性：`public`

返回：array

### `GetCompleteTradeData()`

声明：function

获取完全匹交易明细数据

<!-- tags: 查询 买卖 交易策略 -->

可见性：`public`

#### 示例

范例01：调用示例

```tsl
Function TSFL_TradingEvaluation01(TradeOrder);
Begin
      //实例化对象
   obj := new tsTradingEvaluation();
   obj.FTradeOrder := TradeOrder;//用户交易数据

obj.BackTest();
    return array("评价":"-----",
                "评价(按交易)":obj.GetEvaluate(0),
                "评价(按品种)":obj.Summary(),
                "交易":"-----",
                "完整交易":obj.GetCompleteTradeData(),




                "最新持仓":obj.GetHoldData());
End;
```

范例02：➢ 需求 1（调用方式）：获取对自有交易明细数据进行匹配结果

```tsl
tAllTradeData := MYTradeData;//用户的交易明细表
   return Type := 1;//返回匹配结果类型
   flag := 0; //先建先平
   PfInfoData := array();//初始化回测属性设置
   PfInfoData[0]['分红再投资'] := 0;
   PfInfoData[0]['自动参与配股'] := 0;
   PfInfoData[0]['货币基金自动分红再投资'] := 0;

   return TE_MatchOCTradeData(tAllTradeData,flag,return Type,pfInfoData);
```

### `InitBy_TSTradeorderData(data_traderorder, foptions)`

声明：function

数据初始化

<!-- tags: 交易绩效 策略评估 -->

可见性：`public`

| 参数               | 类型  | 说明                                           |
| ------------------ | ----- | ---------------------------------------------- |
| `data_traderorder` | array | 标准的交易明细数据 ◼ foptions 无，预留用       |
| `foptions`         | nil   | 可选。初始化或评价过程的可选配置；当前版本预留 |

### `GetTrade_EvByDetail(typ)`

声明：function

交易统计-按最小交易（单次开平）

<!-- tags: 查询 汇总 买卖 交易策略 -->

可见性：`public`

| 参数  | 类型    | 说明                                                    |
| ----- | ------- | ------------------------------------------------------- |
| `typ` | boolean | 输出是否去除交易详情，0 或 nil：不去除（默认），1：去除 |

### `GetTrade_EvByStock(typ)`

声明：function

交易统计-按券

<!-- tags: 查询 汇总 买卖 交易策略 证券 个股 -->

可见性：`public`

| 参数  | 类型    | 说明                        |
| ----- | ------- | --------------------------- |
| `typ` | integer | 同 GetTrade_EvByDetail(typ) |

### `GetTrade_EvByCycle(cy, typ)`

声明：function

交易统计-按区间段（周期），具体为以开仓日期对应的周期区间进行统计

<!-- tags: 查询 汇总 买卖 交易策略 交易日期 日期时间 -->

可见性：`public`

| 参数  | 类型    | 说明                        |
| ----- | ------- | --------------------------- |
| `cy`  | string  | 周期                        |
| `typ` | integer | 同 GetTrade_EvByDetail(typ) |

### `GetTrade_Detail()`

声明：function

交易逐笔（交易小计）

<!-- tags: 查询 买卖 交易策略 -->

可见性：`public`
