Repository navigation
Releases: nori735/qweave
Release list
v0.6.2
qweave v0.6.2
本次发布补齐 Qlib 迁移中的 6 个计算算子,保留 Float64 输入和掩码输出。
更新内容
- 新增不等比较
x != y:返回 1.0/0.0,任一输入为 NaN 时返回 NaN。 - 新增逻辑与、或、非
x & y、x | y、~x:正数为真,零和负数为假,
NaN/null 为未知。假与未知为假,真或未知为真,其余不确定结果为 NaN。
这些是三值逻辑,不是整数位运算;结果仍可参与乘法和滚动求和。 - 新增
x.ts_mad(N):关于同一窗口均值的平均绝对偏差,要求完整有限窗口;
常数窗口为 0,含 NaN/null/无穷值时为 NaN。逐窗口计算,不分配窗口临时数组。 - 新增
x.ts_count(N):满 N 行后统计非 NaN/null 数量,零和无穷均计入,
完整全缺失窗口为 0;通过增量更新实现 O(T) 总时间。 - 六项均支持树执行器和 DAG;逻辑算子支持融合与常量折叠。
Rust 对应构造函数为alpha::ne、and、or、not、ts_mad、ts_count。 - 两个新窗口算子均无
min_periods:前 N−1 行为 NaN,N=0 全为 NaN,
负数和非整数窗口被拒绝。Qlib 的部分窗口预热规则仍有差异。
Python 真假判断行为收紧
bool(expr)、if expr、Python 的 and/or/not 以及链式比较现在会抛出
TypeError,避免把未计算的表达式当成普通真值。请改用带括号的比较和 &、|、~,
常量继续使用 qw.lit(...):
mask = (qw.col("close") > qw.col("open")) & (qw.col("volume") != qw.lit(0.0))
alpha = mask.ts_sum(20).alias("up_days")安装
python -m pip install --upgrade qweave==0.6.2支持 Python 3.10+,提供 Windows、Linux 和 macOS 的 stable-ABI wheels。
v0.6.1
qweave v0.6.1
本次发布针对 issue #1,
补充常用时序算子及 Qlib 迁移说明。
更新内容
- 新增 Python/Rust
ts_skew、ts_kurt、均值初始化的递归ema和标准线性
wma,同时支持树执行器与 DAG。 - Skew/Kurt 使用滑窗增量中心矩,并定期及在数值尺度变化时重算,控制累计误差。
完整窗口、非有限值和常数窗口规则保持一致。 ema(1)精确保留有限输入,避免数值幅度突变时的消减误差。- 新增中英文 Qlib 算子迁移对照。在完整有限窗口上,可使用
x.wma(20) / qw.lit(20.0)对齐 Qlib 的 WMA 额外归一化;预热与缺失值处理仍有差异。
Rust WMA 迁移
Rust API 有不兼容变化: 原国泰君安指数权重 alpha::wma / Expr::Wma
更名为 alpha::gtja_wma / Expr::GtjaWma。alpha::wma 现在表示标准线性
WMA,与 decay_linear 相同。原有 Rust 调用者如需保持国泰君安语义,应迁移到
gtja_wma;内置 Alpha191 已完成迁移,因子值不因更名而改变。
安装
python -m pip install --upgrade qweave==0.6.1支持 Python 3.10+,提供 Windows、Linux 和 macOS 的 stable-ABI wheels。
v0.6.0
qweave v0.6.0
This release expands the built-in factor library to 450 factors and reduces
peak memory for large batch alpha evaluations.
Highlights
- Added
qweave.gtja_alpha191(input_alias, alphas=None), exposing 191 Guotai
Junan Alpha191 expressions with stable padded names fromgtja_alpha001
throughgtja_alpha191. - Corrected the Alpha191
MAX(x, 0)and DBM formula transcriptions. compute_alphas()now returns rows in(symbol, time)order. This is a
breaking change;with_alphas()continues to preserve the input row order.- Reworked the shared alpha DAG scheduler to reduce peak memory for large
multi-factor evaluations without sacrificing parallel execution. - Built-in factor builders print their resolved canonical-input-to-DataFrame
mapping, so aliases such asclose -> close_adjare visible before compute.
Installation
Install from PyPI after the release workflow completes:
python -m pip install qweave==0.6.0Python 3.10+ is supported through stable-ABI wheels for Windows, Linux, and
macOS.
v0.5.0
qweave v0.5.0
This release makes categorical grouping stricter and more efficient, and completes the transition to the interactive report viewer.
Highlights
group_rankandgroup_neutralizenow accept non-null String and integer group columns. Strings are factorized to compacti32codes; integer values are range-checked before entering the core engine.- Float and null group columns are rejected with clear validation errors.
- The legacy
EvalResult.to_html()API has been removed. UseEvalResult.view()for interactive reports. - Interactive reports now include a 停止服务 button for graceful server shutdown.
Installation
Install from PyPI after the release workflow completes:
python -m pip install qweave==0.5.0Python 3.10+ is supported through stable-ABI wheels for Windows, Linux, and macOS.
v0.4.0
v0.3.1
v0.3.0
v0.2.0
Full Changelog: https://github.com/nori735/qweave/commits/v0.2.0