## 提示

- `live-or-trading-module-only`
- `permission-dependent`


## 原型

```python
permission_test(account=None, end_date=None)
```

## 释义

permission_test 是 PTrade 中用于权限校验的接口。

研究：不支持；回测：不支持；模拟：官方目录未明确；实盘：支持。

## 参数

| 参数 | 是否必填 | 官方原始定义 |
|---|---:|---|
| `account` | 否 | account=None |
| `end_date` | 否 | end_date=None |

## 返回值

布尔类型，校验成功返回True，校验失败返回False(bool)。

## 示例

```python
def initialize(context):

g.security = '600570.SS'

set_universe(g.security)

def handle_data(context, data):

pass

def after_trading_end(context, data):

# 需要用授权模式下载功能的情况下不用入参

flag = permission_test()

if not flag:

raise RuntimeError('授权不通过，终止程序，抛出异常')

# 不需要用授权模式下载功能的情况下通过入参来进行授权校验

flag = permission_test(account='10110922',end_date='20220101')

if not flag:

raise RuntimeError('授权不通过，终止程序，抛出异常')
```

## 详细说明

permission_test(account=None, end_date=None)

### 使用场景

该函数仅在交易模块可用

### 接口说明

该接口用于账号和有效期的权限校验，用户可以在接口中入参指定账号和指定有效期截止日，策略运行时会校验运行策略的账户与指定账户是否相符，以及运行当日日期是否超过指定的有效期截止日，任一条件校验失败，接口都会返回False，两者同时校验成功则返回True。校验失败会在策略日志中提示原因。

### 注意事项

如果需要使用授权模式下载功能，不要在接口中入参，策略编码时候直接调用permission_test()，授权工具会把需要授权的账号和有效期信息放到策略文件中。

该函数仅在initialize、before_trading_start、after_trading_end模块中支持调用。

### 参数详细说明

account：授权账号，选填字段，如果不填就代表不需要验证账号(str)；

end_date：授权有效期截止日，选题字段，如果不填就代表不需要验证有效期(str)，日期格式必须为'YYYYmmdd'的8位日期格式，如'20200101'；

### 返回值

布尔类型，校验成功返回True，校验失败返回False(bool)。
