更新日志
2.0.1
将
typing_extensions添加到安装依赖中。它此前已被pybroker.strategy导入,但从未声明为依赖项,因此安装时依赖于其他依赖项间接引入它。要求
optuna>=3.4。更早的版本将采样器的随机数生成器存放在不同的位置,optimize 无法对其重新播种,导致传入seed并不能使搜索结果可复现。修复 parse_timeframe,使其拒绝格式错误的时间周期,而不是从中悄悄读出一个有效的片段;此前
"1.5h"会被解析为 5 小时,"-1h"会被解析为 1 小时。修复 “Finished training model” 日志消息,此前它会抛出
TypeError,而不是报告训练耗时。
2.0.0
要求 Python 3.11 及以上版本。
多个时间区间,包括
.intervals()绑定。轮动交易。
成交时滑点模型,通过
apply_slippage/SlippageContext实现。并行化配置 (Ray 后端)。
使用 long_score / short_score 进行排名。
通过 Strategy.set_max_long_positions / set_max_short_positions 设置仓位数量上限。
回测和优化结果支持 to_json / to_json_str。
ATR 指标;bars_to_df 辅助函数。
全面的 NumPy/Numba 性能改进。
重大变更
移除
PosSizeContext、set_pos_size_handler和ExecSignal;改用 Strategy.enable_rotation / RotationContext。弃用
ExecContext.score和StrategyConfig.max_*_positions;改用 long_score / short_score 以及 set_max_long_positions / set_max_short_positions。统一 slippage API;移除
RandomSlippageModel。移除
bootstrap_sample_size;BCa 自助法与回撤自助法现在对完整的回测序列进行重新抽样,而不再使用固定大小的样本,修复了此前可能导致置信区间错误或退化为单次抽样的问题。从 backtest / walkforward 中移除
disable_parallel;并行化的指标和模型计算改为通过parallel_indicators/parallel_models按需启用。result.positions通过 StrategyConfig.record_position_bars 按需启用;完整的Portfolio.bars快照通过 record_portfolio_bars 按需启用。从安装依赖中移除
akshare;如需使用 AKShare,请单独安装。将 卡玛比率(Calmar Ratio) 修正为标准定义:复合年增长率(CAGR)除以最大回撤百分比;此前是按算术方式年化,并基于逐 K 线收益率的累计和衡量回撤。
将 溃疡指数(Ulcer Index) 修正为基于整条权益曲线、相对其滚动最高点衡量回撤,并将 溃疡表现指数(Ulcer Performance Index) 修正为在设置
bars_per_year时按复合年增长率(CAGR)计算收益;向这两个函数传入period可保留此前的滚动窗口行为。修复 EvalMetrics 中的
unrealized_pnl:此前它会被已支付的总手续费低估(逐笔交易盈亏未扣除手续费,而市值则已扣除手续费)。annual_total_return_percent 现在在年化时将
n个 K 线数值视为n - 1个收益区间。
1.2.14
要求 Python 3.10 及以上版本。
修复 vect 中的指标计算错误(Aroon、Laguerre RSI、ADX、价格变化振荡器、反应性、趋势及相关内核)。
修复 AKShare TX 回退路径中重复的
volume列。
1.2.13
为 Order 添加信号来源字段:
created- 订单信号的创建日期。order_type- 订单的来源方式(market、limit、stop_bar、stop_loss、stop_profit、stop_trailing)。intent- 仓位意图(buy_to_open、buy_to_close、sell_to_open、sell_to_close)。
添加 OrderType 和 PositionIntent 枚举。
为 PendingOrderScope.orders() 添加
order_id参数。添加 智能体技能。
全面提升了行情捕获、作用域取值和仓位查找的性能。
改进了 Alpaca 加密货币和 AKShare 的可靠性。
1.2.12
支持 Pandas 3。
1.2.11
修复 Pandas 2.3 返回的只读 NumPy 数组问题。
添加 clear_params 用于清除全局参数。
将 Strategy.add_execution 的
*args和**kwargs转发给执行函数。为 backtest / walkforward 添加
seed,以获得可复现的自助法结果。移除多余的
subtract_fees配置选项。
1.2.10
夏普比率、索提诺比率和卡玛比率改为使用逐柱收益率,而非绝对逐柱差值。
1.2.9
升级至 NumPy 2,同时仍支持 NumPy 1。
添加
LONG_ONLY和SHORT_ONLY仓位模式。为 EvalMetrics 添加
max_drawdown_date。修复
yfinance依赖版本问题。
1.2.8
修复 NumPy 类型检查错误。
1.2.7
修复当索引不唯一时
df.loc[index]返回 DataFrame 类型的问题。
1.2.6
修复 YFinance 缺失
Adj Close列的问题;新增auto_adjust参数。当未持有仓位时调用
sell_all_shares或cover_all_shares将引发错误。
1.2.5
为 backtest / walkforward 添加
adjust参数。修复 mypy 类型检查错误。
1.2.4
保证 EvalMetrics 中的
largest_loss_pct始终为负、largest_win_pct始终为正。
1.2.3
为 indicator 模块 添加内置指标。
1.1.0
-
止损
移动止损
止盈
将
alpaca-trade-api-python升级为alpaca-py包。
1.0.0
首次发布!