Skip to content

设置需要作为判断的基准

set_benchmark-设置需要作为判断的基准

仅初始化时设置有效,默认是沪深 300。

函数

python
set_benchmark(security)

参数

参数名类型默认值说明
securitystr"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)

参数

参数名类型默认值说明
costOrderCost-OrderCost 对象,用于配置印花税、佣金、最低佣金等费率参数
typestr-标的类型:'stock'(股票)/ 'fund'(基金)/ 'bond'(债券)/ 'futures'(期货),暂时只支持股票)
refstrNone(暂不支持)

cost-OrderCost 字段说明

字段名类型说明
open_taxfloat买入时印花税(仅股票类标的收取,基金与期货不收)
close_taxfloat卖出时印花税(仅股票类标的收取,基金与期货不收)
open_commissionfloat买入时佣金,按成交额计费时设置该值
open_fixed_commissionfloat买入时佣金,按固定手续费计费时设置该值(仅期货有效,且与 open_commission 不能同时设置)
close_commissionfloat卖出时佣金,按成交额计费时设置该值
close_fixed_commissionfloat卖出时佣金,按固定手续费计费时设置该值(仅期货有效,且与 close_commission 不能同时设置)
close_today_commissionfloat平今仓佣金,按成交额计费时设置该值
close_fixed_today_commissionfloat平今仓佣金,按固定手续费计费时设置该值(仅期货有效,且与 close_today_commission 不能同时设置)
min_commissionfloat最低佣金(不包含印花税)

返回值

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)

参数

字段名字段类型说明
objectFixedSlippage / FixedPercent滑点对象。- 固定值:FixedSlippage(x),例如 FixedSlippage(0.02) 表示总价差 0.02 元,撮合时买卖分别在基准价上/下偏移 0.01 元。- 百分比:FixedPercent(p),例如 FixedPercent(0.002) 表示总比例 0.2%,撮合时买卖分别在基准价上/下偏移 0.1%。
typestr交易品种。可选:股票 'stock' / 基金 'fund' / 债券 'bond' / 期货 'futures'。当前版本仅支持 'stock',建议显式传入 type='stock'。
refstr(暂不支持)标的代码。用于为特定标的单独设置滑点;若未来支持,通常需同时指定 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_liststr / 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',)

文档版本: 1.0.0 | 发布于 2025-01-29