标准库的命令行工具换新血:3.13/3.14 里那些 python -m 的实用玩法
3.14 起,json 模块可以直接 -m 运行,官方明确它取代 json.tool(后者进入 soft deprecated,不会删除):
标准库的命令行工具换新血:3.13/3.14 里那些 python -m 的实用玩法
3.14 起,json 模块可以直接 -m 运行,官方明确它取代 json.tool(后者进入 soft deprecated,不会删除):
现代类型标注实战:把 typing 用成生产力,而不是装饰
很多团队的类型标注停留在"IDE 补全"用途。这篇把 3.12–3.14 的新类型工具按"解决什么问题"组织起来,每段代码都给出实测结论(CPython 3.13.15 / 3.14.0 实际运行;类型检查行为以 pyright/mypy 官方语义为准)。
Python 3.14 正式版实用指南:十个真的会改变你写代码方式的新特性
Python 3.14(2025 年 10 月发布)被官方称为自由线程(free-threading)之年,但它带来的远不止多线程性能。这篇是「实用视角」的盘点:每个特性都附上可直接运行的代码,而且——每一行都在真实的 3.14 解释器上跑过,输出也是真实输出。
Python 3.13 那些被"自由线程"抢了风头的新特性
提起 3.13(2024 年 10 月发布),大家首先想到的是实验性 free-threading 和 JIT。但对每天写代码的人来说,3.13 有一批低调但高频实用的小特性。
06 · 绩效评价与批量回测:从单票到全市场
quantstats 一键 tear sheet 与全市场批量回测。5 日动量跑遍 5258 份本地 A 股日线(每只最近 131 个交易日、滞后执行、无成本)的分布:对数收益均值 +0.057、中位数 +0.055、为正比例 57.7%、夏普均值 0.25——第 04 篇单票 +228% 的最优窗口放到全市场立刻现出原形。附批量任务的列名标准化、异常跳过、幸存者偏差与结果落盘要点。
05 · 事件驱动回测:RSI 策略与资金曲线
事件驱动回测:现金与持股两个状态变量逐日循环,含 0.1% 单边成本、零股不买、每日盯市。用 Wilder 平滑的 RSI(6) 超卖买入、回归中性清仓,跑中兴通讯 2020-01 至 2025-07:32 笔交易、胜率 71.9%、总收益 +52.1%、最大回撤 -20.1%、夏普 0.53。高胜率低盈亏比、样本只有 32 笔,这两个折扣都得算进去。
04 · 动量效应:过去涨的还会涨吗
时间序列动量 sign(rolling_mean(returns, N)) 在 A 股日线单票上的窗口扫描:1、3、5、9 天全亏,7 天却有 +228.2%、夏普 0.54。峰是尖的,相邻参数天差地别,说明这个最优窗口主要是噪声。原笔记本在 NVDA 上为正、换成阴跌的中兴通讯就翻车,动量的有效性以趋势行情为前提,不是普适规律。
03 · 均值回归:当价格偏离均值之后
布林通道式均值回归:SMA±1σ 构成上下轨,超涨开空、超跌开多、偏离度变号就平仓离场,np.where 链加 ffill 是向量化状态机的标准写法。中兴通讯日线 2020 年起,三态持仓占比 41.1% / 33.5% / 25.3%,策略 +8.6% 对买入持有 -3.5%,夏普只有 0.04;A 股融券券源有限,做空那一半实盘拿不到。
02 · 向量化回测:双均线策略
双均线的向量化实现:rolling 算均线、np.where 出信号、position.shift(1) 乘收益做时间对齐,10.5 万根 BTC 15 分钟 K 线十行代码跑完。short=96 / long=672 在这段区间只有 +21.9%、夏普 0.13、最大回撤 -52.5%,大幅跑输买入持有;同一套代码网格扫到 short=192 / long=336 却是 +293%、夏普 0.91——参数落差本身就是过拟合警告。
01 · 数据基石:批量获取与整理 A 股历史行情
用 akshare 把全市场 A 股日线拉成 5000+ 份本地 CSV(2000-01 至 2025-07):sleep(2) 限速、断点续跑、异常跳过,ST 股票名称自带星号会让 Windows 落盘报 [Errno 22],文件名统一改成 代码_名称.csv。拿到数据先查时间范围、索引是否单调、涨跌幅有没有异常值,并注意 stock_zh_a_hist 默认返回不复权价格,长期回测要用 adjust='qfq',否则每个除权日都是一根假暴跌。