# 金融 / 期权 / 期权基本函数

## `op_bkDateOverview(stock_id, model_type)`

声明：function

返回指定标的证券最近一期的期权数据概览

<!-- tags: 金融 期权 基本函数 数据概览 行情 风险指标 买卖盘 -->

| 参数         | 类型    | 说明                                         |
| ------------ | ------- | -------------------------------------------- |
| `stock_id`   | string  | 标的证券代码                                 |
| `model_type` | integer | 数据类型，0 为行情，1 为风险指标，2 为买卖盘 |

返回：array

### 示例

范例01：查询上证 50ETF 最近一期的期权风险指标概览

```tsl
return op_bkDateOverview("SH510050", 1);
```

## `op_getBidAskData(ret)`

声明：function

获取期权实时的买卖盘数据，选择当前未退市的期权代码

<!-- tags: 金融 期权 期权基本函数 获取 查询 -->

| 参数  | 类型  | 说明                                                                           |
| ----- | ----- | ------------------------------------------------------------------------------ |
| `ret` | array | 二维数组 数据表中必须有代码字段，字段中是期权代码；例:array(("代码":"CU2106")) |

返回：array

### 示例

范例01：调用 OP_GetBidAskData

```tsl
ret := op_getBidAskData(array());
result_count := -1;
if not ifNil(ret) then
    result_count := length(ret);
return result_count;
// 输出：0
```

## `op_getDaysMaturity(end_t, ex_endt)`

声明：function

计算剩余期限(月)

<!-- tags: 金融 期权 期权基本函数 计算 求解 -->

| 参数      | 类型     | 说明          |
| --------- | -------- | ------------- |
| `end_t`   | datetime | Date 现在日期 |
| `ex_endt` | datetime | Date 到期日   |

返回：float

### 示例

范例01：调用 OP_GetDaysMaturity

```tsl
return OP_GetDaysMaturity(20150208T, 20150228T); // 输出：0.6575
```

## `op_getOptionChain(stock_id, end_t)`

声明：function

返回指定日标的证券正在交易的期权合约及其基本信息

<!-- tags: 金融 期权 基本函数 期权链 合约列表 标的证券 指定日 -->

| 参数       | 类型     | 说明                               |
| ---------- | -------- | ---------------------------------- |
| `stock_id` | string   | 标的证券代码，多个代码使用分号分隔 |
| `end_t`    | datetime | 截止日期                           |

返回：array

### 示例

范例01：查询上证 50ETF 的期权链

```tsl
return op_getOptionChain("SH510050", 20260813T);
```

## `op_getPutAndCallratio(stock_id, end_t, ex_end_t)`

声明：function

返回指定标的证券在指定日的看跌看涨成交量比率

<!-- tags: 金融 期权 基本函数 看跌看涨比率 Put Call 成交量 -->

| 参数       | 类型     | 说明                                                    |
| ---------- | -------- | ------------------------------------------------------- |
| `stock_id` | string   | 期权品种或标的证券代码                                  |
| `end_t`    | datetime | 统计日期                                                |
| `ex_end_t` | datetime | 可选。默认不限定到期日，大于 0 时仅统计指定到期日的合约 |

返回：real

### 示例

范例01：查询沪铜期权的看跌看涨比率

```tsl
return op_getPutAndCallratio("cu", 20210514T);
// 输出：1.336376
```

## `op_getRiskFreeRate(end_t, rate_type)`

声明：function

获取 指定日时刻的无风险利率

<!-- tags: 金融 期权 期权基本函数 获取 查询 -->

| 参数        | 类型     | 说明                                                        |
| ----------- | -------- | ----------------------------------------------------------- |
| `end_t`     | datetime | Date 截止日                                                 |
| `rate_type` | int      | Int 无风险利率种类 此参数缺省为 0 表示:一年期存贷款基准利率 |

返回：float

### 示例

范例01：调用 OP_GetRiskFreeRate

```tsl
return OP_GetRiskFreeRate(20150208T, 0); // 输出：2.75
```

## `op_getUnderlyingSecurity()`

声明：function

获取当前期权所有标的序列

<!-- tags: 金融 期权 期权基本函数 获取 查询 -->

返回：array

### 示例

范例01：调用 OP_GetUnderlyingSecurity

```tsl
return OP_GetUnderlyingSecurity();
```

## `op_hv(stock_id, end_t, day_num)`

声明：function

计算指定证券截至指定日的年化历史波动率

<!-- tags: 金融 期权 基本函数 历史波动率 年化波动率 收盘价 -->

| 参数       | 类型     | 说明                                               |
| ---------- | -------- | -------------------------------------------------- |
| `stock_id` | string   | 标的证券代码                                       |
| `end_t`    | datetime | 截止日期                                           |
| `day_num`  | integer  | 回溯月份，-1、-2、-3、-6、-12 分别表示最近对应月数 |

返回：real

### 示例

范例01：计算万科 A 最近六个月的年化历史波动率

```tsl
return op_hv("SZ000002", 20210101T, -6);
// 输出：25.790789
```

## `op_ivGreeks(option_type, s, x, close, r, t, option_style, method, contract_type, rf)`

声明：function

根据期权交易价格计算隐含波动率和 Greeks 风险指标

<!-- tags: 金融 期权 基本函数 隐含波动率 Greeks Delta Gamma Theta Vega Rho -->

| 参数            | 类型    | 说明                                                |
| --------------- | ------- | --------------------------------------------------- |
| `option_type`   | integer | 期权类型，0 为看涨期权，1 为看跌期权                |
| `s`             | real    | 现货价格                                            |
| `x`             | real    | 行权价                                              |
| `close`         | real    | 期权交易价格                                        |
| `r`             | real    | 无风险收益率百分比                                  |
| `t`             | real    | 剩余期限月数                                        |
| `option_style`  | string  | 可选。默认行权方式，支持 `欧式` 和 `美式`           |
| `method`        | integer | 可选。默认定价方式，0 为默认，1 为 B_S，2 为二叉树  |
| `contract_type` | integer | 可选。默认 0；0 股票、1 指数、2 外汇、3 期货期权    |
| `rf`            | real    | 可选。默认 0；标的资产年股息率或外币无风险年利率(%) |

返回：array

### 示例

范例01：使用欧式期权默认定价方式计算隐含波动率和 Greeks

```tsl
return op_ivGreeks(0, 18, 20, 2, 5, 1.0, "欧式", 0);
```
