Appearance
设置需要作为判断的基准
set_benchmark-设置需要作为判断的基准
仅初始化时设置有效,默认是沪深 300。
函数
python
set_benchmark(security)参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| security | str | "sh000300" | 指数/股票/ETF 等标的代码,用作策略基准 |
返回值
None
举例
python
def initialize(context):
set_benchmark('sh000300')
# 输出:None
# 注:如果没有调用 set_benchmark 函数,系统默认使用 set_benchmark('sh000300') 作为基准。设置策略参数
set_option-设置策略参数
仅初始化时设置有效。
函数
python
set_option(mode, value)参数
| mode | 含义 | value |
|---|---|---|
| 'order_volume_ratio' | 设定成交量比例,根据实际行情限制每个订单的成交量。 | value 是一个 float 值,默认 1.0,根据实际行情限制每个订单的成交量。 |
| 'match_with_order_book' | 设定是否使用盘口撮合模式。此选项只对仿真生效,默认关闭。 | True | False |
| 'excess_account' | 如果策略里设置的账户数多于界面上添加的账户数,设定超出的账户模式。 | value 是一个 int 值:填 1 时,使用超出范围的账户下单会直接报错;填 2 时,使用超出范围的账户会改成用第一个账户下单;默认 1 |
| 'futures_margin_rate' | 设置期货保证金比例。可为不同品种的标的设置不同比例的保证金。除中金所股指期货外,其他品种使用合约单边保证金机制,对于一个合约的双向持仓只收较大的一边的保证金。中金所股指期货使用跨品种单边保证金,对于所有中金所股指期货标的,只收取双向持仓中更大的一边的保证金。 | value 是一个 float 值,为期货的保证金比例。 |
返回值
None
举例
python
def initialize(context):
set_option('order_volume_ratio', 1)
# 输出:None设置佣金印花税等交易费率
set_order_cost-设置佣金印花税等交易费率
仅初始化时设置有效。
函数
python
set_order_cost(cost, type, ref=None)参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| cost | OrderCost | - | OrderCost 对象,用于配置印花税、佣金、最低佣金等费率参数 |
| type | str | - | 标的类型:'stock'(股票)/ 'fund'(基金)/ 'bond'(债券)/ 'futures'(期货),暂时只支持股票) |
| ref | str | None | (暂不支持) |
cost-OrderCost 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| open_tax | float | 买入时印花税(仅股票类标的收取,基金与期货不收) |
| close_tax | float | 卖出时印花税(仅股票类标的收取,基金与期货不收) |
| open_commission | float | 买入时佣金,按成交额计费时设置该值 |
| open_fixed_commission | float | 买入时佣金,按固定手续费计费时设置该值(仅期货有效,且与 open_commission 不能同时设置) |
| close_commission | float | 卖出时佣金,按成交额计费时设置该值 |
| close_fixed_commission | float | 卖出时佣金,按固定手续费计费时设置该值(仅期货有效,且与 close_commission 不能同时设置) |
| close_today_commission | float | 平今仓佣金,按成交额计费时设置该值 |
| close_fixed_today_commission | float | 平今仓佣金,按固定手续费计费时设置该值(仅期货有效,且与 close_today_commission 不能同时设置) |
| min_commission | float | 最低佣金(不包含印花税) |
返回值
None
举例
python
def initialize(context):
# 股票类每笔交易时的手续费:买入佣金万分之三;卖出佣金万分之三 + 千分之一印花税;最低佣金 5 元
set_order_cost(
OrderCost(
open_tax=0,
close_tax=0.001,
open_commission=0.0003,
close_commission=0.0003,
close_today_commission=0,
min_commission=5
),
type='stock'
)
# 输出:None设置滑点
set_slippage-设置滑点
用于设置撮合成交时的滑点模型,用来模拟冲击成本。 仅初始化时设置有效,必须在 initialize(context) 中调用。
函数
python
set_slippage(object, type=None, ref=None)参数
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| object | FixedSlippage / FixedPercent | 滑点对象。- 固定值:FixedSlippage(x),例如 FixedSlippage(0.02) 表示总价差 0.02 元,撮合时买卖分别在基准价上/下偏移 0.01 元。- 百分比:FixedPercent(p),例如 FixedPercent(0.002) 表示总比例 0.2%,撮合时买卖分别在基准价上/下偏移 0.1%。 |
| type | str | 交易品种。可选:股票 'stock' / 基金 'fund' / 债券 'bond' / 期货 'futures'。当前版本仅支持 'stock',建议显式传入 type='stock'。 |
| ref | str | (暂不支持)标的代码。用于为特定标的单独设置滑点;若未来支持,通常需同时指定 type。 |
返回
- None
举例
python
def initialize(context):
# 为全部交易品种设定固定值滑点(当前版本实际仅对股票有意义)
set_slippage(FixedSlippage(0.02))
# 输出: None
# 为股票设定滑点为百分比滑点(覆盖上面的设置)
set_slippage(FixedPercent(0.00246), type='stock')
# 输出: None设置或者更新此策略要操作的股票池
set_universe-设置或更新策略的股票池(universe)。 可通过 context.universe 获取设置后的值。该股票池常用于:
- 统一管理策略关注标的集合
- 作为部分接口的默认 security 范围(取决于平台实现)
函数
python
set_universe(security_list)参数
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| security_list | str / list[str] | 股票代码或股票列表。示例:'sz000001' 或 ['sz000001','sh600000'] |
返回
- None
说明(实测结论)
| 项 | 说明 |
|---|---|
| context.universe 类型 | context.universe 实际类型为 tuple[str],例如:('sz000001','sh600000') |
| 是否可运行中更新 | 支持在运行阶段调用,更新后 context.universe 会立即变化,且会在后续交易日持续保持,直到再次调用 set_universe |
举例
python
def initialize(context):
set_universe(['sz000001', 'sh600000'])
print(context.universe)
# 输出: ('sz000001', 'sh600000')
def handle_data(context, data):
# 运行中动态更新股票池
set_universe(['sz000001'])
print(context.universe)
# 输出: ('sz000001',)