KB / ARTICLE

API 速查

策略文档修订 R1发布于 2026-11-05

本文按“用户重写的回调 / 用户调用的方法 / 常用属性 / 返回值判读”四部分汇总全部接口,便于编写时快速对照。各接口的参数与示例见对应章节。

用户重写的回调

签名 说明
__init__(self, *args, **kwargs) 创建策略对象时初始化。普通字段、subscribe_bars 写在这里,且在 super().__init__(...) 之后
on_start(self) 策略实例启动后一次:订阅、设置历史深度、注册定时器
on_resume(self) 热启动恢复时,早于 on_start;用于恢复连接、快照续跑
on_stop(self) 策略停止时;用于汇总统计、资源释放,不应下单
on_bar(self, bar) 每根 K 线闭合时;主交易逻辑
on_window_bar(self, bar) subscribe_bars 的高周期窗口闭合时;窗口不参与撮合,下单放在 on_bar
on_tick(self, tick) 每个 Tick 到达时
on_timer(self, payload) 定时器到点时;按 payload 分支
on_order(self, order) 订单状态变化时
on_trade(self, trade) 收到成交回报时
on_reject(self, order) 订单首次进入 Rejected;同一订单号只触发一次
on_error(self, error, source, payload=None) 用户回调抛异常时;受 self.error_mode 控制
on_before_trading(self, trading_date, timestamp) 交易日前边界;只能看到前一日信息
on_pre_open(self, event) 盘前;仅回测,实盘不触发,实盘改用 schedule_daily 或 on_before_trading
on_cross_section(self, trading_date, timestamp) 当日首个跨标的完整切片后;横截面同周期调仓,每天最多一次
on_after_trading(self, trading_date, timestamp) 交易日后边界;日终统计与清理
on_portfolio_update(self, snapshot) 账户快照变化时;增量触发,可用 self.portfolio_update_eps 过滤

用户调用的方法

行情、历史与标的信息

方法 说明
subscribe_bars(freq, callback=None, symbols=None, *, session_windows=None) 声明高周期窗口。只能在 __init__ 调用
current_window(symbol, freq) 尚未闭合的当前窗口快照
set_history_depth(depth) 设置历史 Bar 缓存长度
history(symbol, normalized_field, count, history_cutoff, freq) 双流历史,freq 为 "bar" 或 "tick"
get_history(count, symbol=None, field="close", freq=None) Bar 历史数组;freq 填已订阅的窗口周期
get_history_map(count, symbols, field="close") 多标的历史,返回 dict[str, ndarray]
get_history_df(count, symbol=None) K 线表格,返回 DataFrame
get_instrument(symbol) 单个标的静态信息,返回 InstrumentSnapshot
get_instruments(symbols=None) 批量查询,返回 dict[str, InstrumentSnapshot]
get_instrument_field(symbol, field) 取单个字段值
get_instrument_config(symbol, fields=None) 取单值、字典或完整快照

交易与调仓

方法 说明
buy(...) 买入,多头开仓
sell(...) 卖出已有多头,多头平仓
short(...) 卖出开空,需账户支持做空
cover(...) 买入平空,空头平仓
close_position(symbol=None) 清仓,返回 None
order_target / order_target_value / order_target_percent 单标的目标仓位
rebalance_weights / rebalance_positions / rebalance_to_topn 多标的组合调仓
cancel_order / cancel_group / cancel_all_orders 撤单
place_oco / place_bracket / place_trailing_stop / place_trailing_stop_limit OCO、括号单、跟踪止损

查询

方法 说明
get_position / get_available_position 总持仓 / 可卖
get_holding_bars 持有 Bar 数;实盘恒为 0
positions / position 全部持仓字典 / 当前标的仓位对象(属性,无参数)
get_account 账户快照字典
get_open_orders / get_order 活动订单 / 单笔订单
get_trades 已闭合交易
get_last_target_positions_plan 最近一次目标仓位调仓计划
get_execution_capabilities 当前通道能力

日志、定时与仓位管理

方法 说明
log(msg, level=logging.INFO) 日志,级别为 DEBUG / INFO / WARNING / ERROR / CRITICAL
to_local_time(timestamp) UTC 纳秒时间戳转本地时间
format_time(timestamp, fmt="%Y-%m-%d %H:%M:%S") 格式化本地时间
schedule(trigger_time, payload) 指定时间点一次性触发
schedule_daily(time_str, payload) 每个交易日指定时间触发,回测与实盘均可用
schedule_weekly / schedule_monthly 每周 / 每月首个交易日触发
set_sizer(sizer) 设置默认下单数量算法
FixedSize(size=100.0) / PercentSizer(percents=10.0) / AllInSizer() 仓位管理器:固定数量 / 资金百分比 / 全仓

常用属性

属性 说明
self.cash / self.equity 现金余额 / 账户总权益,只读
self.positions / self.position 全部持仓字典 / 当前标的仓位对象
self.lot_size 最小交易单位,可在 on_start 设置
self.warmup_period 执行 on_bar 前需积累的 Bar 数
self.current_bar / self.symbol / self.close 当前 K 线 / 当前标的 / 当前价
self.open / self.high / self.low / self.volume 当前 Bar 的开高低与成交量;Tick 模式下除 close 外为 0.0
self.commission_rate / self.min_commission 佣金率 / 单笔最低佣金,只读
self.stamp_tax_rate / self.transfer_fee_rate / self.commission_policy 印花税率 / 过户费率 / 费用模式字典,只读
self.now / self.timezone 当前策略本地时间 / 策略时区
self.ctx.session 当前交易会话枚举
self.error_mode / self.is_restored 出错处理模式 / 是否快照恢复,只读
self.portfolio_update_eps / self.enable_precise_day_boundary_hooks 账户更新阈值 / 日界钩子精度开关

相关阅读

已复制到剪贴板
策略文档修订 R1

返回策略文档板块

评论