配置文件格式选择指南:JSON、YAML、TOML、INI、ENV、XML 各自的代价与适用场景
有个事在软件开发里反复发生:你花在纠结配置文件格式上的时间,比你花在写配置本身上的时间还多。 这不是你的问题。配置文件在任何一个项目里都长成痛点:一开始随手扔个 .env 就够,后来要分环境、要嵌套、要注释、要校验——每个需求冒出来时,先前的格式就有一项撑不住。于是你开始看别的格式,发现每种都有一帮
有个事在软件开发里反复发生:你花在纠结配置文件格式上的时间,比你花在写配置本身上的时间还多。 这不是你的问题。配置文件在任何一个项目里都长成痛点:一开始随手扔个 .env 就够,后来要分环境、要嵌套、要注释、要校验——每个需求冒出来时,先前的格式就有一项撑不住。于是你开始看别的格式,发现每种都有一帮
一个系统刚开始的时候,所有数据都在一个进程里。函数调函数,变量传变量——快,简单,不会出错。这时候你不需要什么 REST,不需要什么消息队列,甚至不需要文件。 后来系统长大了。数据量撑破内存,业务逻辑要拆成多个进程,甚至要拆到不同的机器上。这时候你才意识到:数据要跨边界了。跨边界的代价,比你以为的大
微服务不是设计出来的,是单体撑出来的。每个问题被堵上的同时,新的代价开始累积。
幸存者偏差(survivorship bias):用"现在还活着"的样本回测历史,把退市/破产/被并购的股票排除——它们往往亏得最惨。例:90 只 +50% 与 10 只 -90%,只看幸存者 +50%,真实平均 +36%。方向固定只高估。避免:样本含退市股、历史时点用当时存在的股票。
过拟合(overfitting)= 把历史数据里的噪声当规律背下来,参数搜索和因子挖掘是两大温床。防法核心:样本外验证(out-of-sample)——开发时不碰、最后一次性跑,看过一次就变样本内。样本内 40% 配样本外 5%,先怀疑过拟合。
beta(β)= 持仓对大盘的敏感度,是"在场"的代价;alpha(α)= 扣掉 beta 贡献后自己赚的部分,才是选股/择时的本事。例:大盘涨 20%、策略涨 25%、beta 1.2 → alpha 只有 1%。牛市里的漂亮曲线可能是 beta 撑的,熊市才检验 alpha。
夏普比率(Sharpe Ratio)= 每单位波动换来的超额收益,回答"值不值";最大回撤(Maximum Drawdown)= 净值从峰值到谷值的最大跌幅,回答"疼不疼"。回撤不对称:跌 20% 要涨 25% 回本,跌 50% 要涨 100%。两个数比年化收益更能说明策略质量。
未来函数(look-ahead bias):决策使用了信号发出时刻之后才可得的信息,导致回测系统性高估收益。常见于成交价假设、前复权、数据清洗、幸存者偏差、财报对齐与参数选择。检查原则只有一条——每个输入在信号发出时刻是否真实可得。
一次买卖的显性成本约 0.1%(佣金+印花税+过户费),加上价差、滑点、冲击成本这些隐性成本,换手率一放大就是年化 5%~20%。回测必须逐笔扣费,否则收益曲线虚高。最低 5 元佣金是小资金最容易被忽视的坑。
停牌是数据里的洞,处理原则三条:停牌不可交易、停牌日收益算零、信号顺延或放弃。复牌补涨补跌是停牌最伤人的副作用——躲过的下跌,是以失去流动性为代价的。