196 lines
4.3 KiB
Markdown
196 lines
4.3 KiB
Markdown
# 量化交易 / 冲击成本
|
||
|
||
## `TS_ImpactCost`
|
||
|
||
声明:class
|
||
|
||
冲击成本计算框架
|
||
|
||
<!-- tags: 交易成本 市场冲击 成交滑点 -->
|
||
|
||
### `fStockID`
|
||
|
||
声明:field
|
||
|
||
交易代码 "SZ000001"
|
||
|
||
可见性:`public`
|
||
|
||
类型:string
|
||
|
||
### `fTradeEndT`
|
||
|
||
声明:field
|
||
|
||
交易截止日 StockEndTAfterNDay(today(),1)
|
||
|
||
可见性:`public`
|
||
|
||
类型:date
|
||
|
||
### `fTradeTime`
|
||
|
||
声明:field
|
||
|
||
交易持续时间 1 天
|
||
|
||
可见性:`public`
|
||
|
||
类型:real
|
||
|
||
### `fTradeVol`
|
||
|
||
声明:field
|
||
|
||
交易数量 100000
|
||
|
||
可见性:`public`
|
||
|
||
类型:integer
|
||
|
||
### `fSigmaN`
|
||
|
||
声明:field
|
||
|
||
日波动率计算天数 10
|
||
|
||
可见性:`public`
|
||
|
||
类型:integer
|
||
|
||
### `fVolN`
|
||
|
||
声明:field
|
||
|
||
市场日成交量计算天数 10
|
||
|
||
可见性:`public`
|
||
|
||
类型:integer
|
||
|
||
### `fFitN`
|
||
|
||
声明:field
|
||
|
||
拟合天数 250
|
||
|
||
可见性:`public`
|
||
|
||
类型:real
|
||
|
||
### `fFitTradeType`
|
||
|
||
声明:field
|
||
|
||
拟合交易类型 3:成交量占比最大法
|
||
|
||
可见性:`public`
|
||
|
||
类型:integer
|
||
|
||
### `fFitObjType`
|
||
|
||
声明:field
|
||
|
||
拟合目标类型 0:对数
|
||
|
||
可见性:`public`
|
||
|
||
类型:integer
|
||
|
||
### `main()`
|
||
|
||
声明:function
|
||
|
||
一次性接入类中所有方法
|
||
|
||
<!-- tags: 执行 冲击成本 模型计算 -->
|
||
|
||
可见性:`public`
|
||
|
||
### `getParams_Power(stock_id, end_t)`
|
||
|
||
声明:function
|
||
|
||
获取幂指数参数,框架中默认将交易日作为截止日,用户通过重写函数给出参数值。用户进
|
||
|
||
<!-- tags: 查询 买卖 交易策略 基准指数 指数产品 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | -------- | -------------------- |
|
||
| `stock_id` | string | 股票代码,字符串类型 |
|
||
| `end_t` | datetime | 截止日,日期类型 |
|
||
|
||
返回:array
|
||
|
||
### `getPredictData(stock_id, end_t)`
|
||
|
||
声明:function
|
||
|
||
预测市场日成交量以及日波动率(%)。框架中默认将交易日作为截止日,市场日成交量为截
|
||
|
||
<!-- tags: 查询 预估 风险波动 买卖 交易策略 市场行情 市场状态 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | -------- | -------------------- |
|
||
| `stock_id` | string | 股票代码,字符串类型 |
|
||
| `end_t` | datetime | 截止日,日期类型 |
|
||
|
||
返回:array
|
||
|
||
### `getImpactCostEstimatedValue()`
|
||
|
||
声明:function
|
||
|
||
获取已实现冲击成本(BP),单位 BP
|
||
|
||
<!-- tags: 查询 已实现冲击 冲击成本 BP -->
|
||
|
||
可见性:`public`
|
||
|
||
返回:real
|
||
|
||
### `getImpactCostEstimatedDetail()`
|
||
|
||
声明:function
|
||
|
||
获取冲击成本预测详情,包含"永久性冲击成本(BP)"、"暂时性冲击成本(BP)"、
|
||
|
||
<!-- tags: 查询 预估 交易成本 -->
|
||
|
||
可见性:`public`
|
||
|
||
返回:array
|
||
|
||
### `getFitParams()`
|
||
|
||
声明:function
|
||
|
||
获取拟合参数结果𝛼, 𝛽, 𝛾, 𝜂
|
||
|
||
<!-- tags: 查询 冲击成本 幂指数参数 模型参数 参数估计 -->
|
||
|
||
可见性:`public`
|
||
|
||
返回:array
|
||
|
||
#### 示例
|
||
|
||
范例01:按成交量占比最大法获取单个交易日的下单交易明细
|
||
|
||
```tsl
|
||
obj := new TS_Stock_ImpactModel();
|
||
ret := obj.FitImpactCostByQK_Power("SH600000", 1, 20220101T, 3);
|
||
echo toStn(ret);
|
||
return ret;
|
||
// 输出:
|
||
// array(
|
||
// ("截止日":"2021-12-31 09:40:00","代码":"SH600000","名称":"浦发银行","开始买入价":8.54,"冲击消失价":8.57,"总买入量":1527043.0,"市场成交量":22929621.0,"标准化成交量":0.0665969577081104,"VWAP":8.55389402917927,"已实现冲击(BP)":16.2693550108561,"永久性冲击(BP)":35.1288056206101,"暂时性冲击(BP)":-1.29504779944889,"收益率波动(%)":0.67217756574394,"备注":NIL),
|
||
// ("截止日":"2021-12-31 10:20:00","代码":"SH600000","名称":"浦发银行","开始买入价":8.56,"冲击消失价":8.54,"总买入量":-1351000.0,"市场成交量":22929621.0,"标准化成交量":-0.0589194213022535,"VWAP":8.54792968171725,"已实现冲击(BP)":-14.1008391153674,"永久性冲击(BP)":-23.3644859813098,"暂时性冲击(BP)":-2.41859612471251,"收益率波动(%)":0.67217756574394,"备注":NIL),
|
||
// ("截止日":"2021-12-31 14:30:00","代码":"SH600000","名称":"浦发银行","开始买入价":8.54,"冲击消失价":8.54,"总买入量":-493733.0,"市场成交量":22929621.0,"标准化成交量":-0.0215325408126022,"VWAP":8.53410243998274,"已实现冲击(BP)":-6.90580798273444,"永久性冲击(BP)":0.0,"暂时性冲击(BP)":-6.90580798273444,"收益率波动(%)":0.67217756574394,"备注":NIL))
|
||
```
|