Eugen Soloviov

Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Articles

回测过拟合概率(PBO):你的搜索跑赢抛硬币了吗?

回测过拟合概率(PBO):你的搜索跑赢抛硬币了吗?

Deflated Sharpe Ratio 给获胜策略定价;PBO 给挑出它的那次搜索定价。组合对称交叉验证(Combinatorially Symmetric Cross-Validation)在一个 1000x200 的表现矩阵上跑 C(16,8) = 12,870 次训练/测试切分,问的是:样本内赢家会不会落入样本外的后一半?几乎每个人都会看错的地方——PBO 的零假设值是 0.5,不是 1。在 200 个零优势策略上,最佳样本内年化夏普比率 1.98 在样本外坍缩到 0.06,PBO = 0.476:如同抛硬币,彻底过拟合。植入一个真实优势(年化夏普比率 2.38),PBO 降到 0.001,样本内的 3.73 在样本外仍保住 2.34。在纯随机游走上跑移动平均线网格,同样没有任何样本外的技巧——60 个矩阵平均 PBO 0.463,在统计上和零假设无法区分——而在其中一个具有代表性的矩阵上,这场海市蜃楼十分鲜明:最佳样本内夏普比率 2.33 坍缩到样本外中位数 -0.22,PBO 0.573,63% 的概率会亏钱。

IPC 税:把回测引擎放到 socket 背后会损失 13%——而这几乎与 socket 无关

IPC 税:把回测引擎放到 socket 背后会损失 13%——而这几乎与 socket 无关

我们把一个 numba 回测内核逐行移植到 Rust,并以四种方式跨进程边界调用它,用等价性校验确认到最后一笔交易都完全一致的 PnL。把整条 1.2 MB 的价格序列通过 Unix socket 传输一次,成本约 2 毫秒——约占整个任务耗时的 0.1%。对同一份数据做 JSON 编码,成本是原始字节的 1348 倍;健谈式的逐组合调用把数据重复传输了 80 次;逐 bar 调用模式会在一个 2.0 秒的任务上白白付出 2.1 秒的纯 IPC 开销。边界本身很便宜,税出在你如何跨越它。

Deflated Sharpe Ratio:你回测里的'赢家',有多少能扛过多重检验?

Deflated Sharpe Ratio:你回测里的'赢家',有多少能扛过多重检验?

参数搜索是一台制造运气的机器。在纯噪声上——1,000 个真实优势为零的策略——最佳年化夏普比率平均达到 1.63,朴素显著性检验 100% 的时候都会宣布发现。我们构建受控的真实基准,证明 Deflated Sharpe Ratio、Harvey-Liu 折价法与 White's Reality Check 能够恢复诚实:假发现率从 1.000 降到 0.001-0.057,噪声上限之上的真实优势仍以接近 1 的功效被保留——还有一个真实的陷阱(相关网格),在那里原始 DSR 会过度折损,其结论必须放在一整条有效试验数估计的区间上通读,而不是只看一个数字。

目标函数设计:你优化的那个指标,正悄悄替你选好了策略

目标函数设计:你优化的那个指标,正悄悄替你选好了策略

要搜索'最好'的策略,你必须先定义什么是'最好'——而那个标量,会悄悄替你选出赢家。在带有已知优势的合成数据上(600 个种子,T=2000,80 个候选阈值),朴素的逐笔(per-trade)夏普比率会加冕一张彩票:它在 56% 的种子上选出曝光率低于 5% 的赢家,在 57% 的种子上发生退化——在最极端的那个种子上,8 笔交易的样本内夏普比率高达 21.09,样本外却崩塌到 0.13。诚实的修复几乎平淡无奇:在整条时间线上测量,它从不退化(样本外 1.71)。交易笔数(conf_k)收缩与曝光率下限可以给逐笔指标打补丁,但即便完全修复,它们也只能追平整条时间线夏普比率(1.70 对 1.71)——永远无法超过它。古德哈特定律,在回测里,配上受控的真实基准。

前视偏差:一根 K 线的错误如何从纯噪声中凭空制造出 15 的夏普比率

前视偏差:一根 K 线的错误如何从纯噪声中凭空制造出 15 的夏普比率

一项对细微前视泄漏如何悄然抬高回测表现的受控研究。在完全没有真实优势的情况下,同 K 线成交从纯噪声中制造出 +14.8 的年化夏普比率;提前一根 K 线窥视指标则制造出 +4.8。本文给出完整分类、实测量级,以及在它耗费你真金白银之前如何检测每一种泄漏。

回测引擎速度阶梯:笔记本 CPU 上 298 倍提速,PnL 精确到最后一笔交易

回测引擎速度阶梯:笔记本 CPU 上 298 倍提速,PnL 精确到最后一笔交易

对同一个 80 组合参数扫描的五种实现,全部验证产出完全相同的 PnL:pandas 的 rolling.apply 耗时 69.9 秒,numpy 3.1 秒,numba 2.0 秒,并行 numba 0.23 秒——在一台 Apple M2 Max 上、硬件零改动,实测提速 298 倍,即便相对一个称职的向量化基准也仍快约 13 倍。每一级阶梯到底带来了什么、为什么 GPU 不是那块缺失的拼图,以及海量参数搜索中真正的瓶颈藏在哪里。

researcher:面向人类与 AI 智能体的可搜索量化研究档案库

researcher:面向人类与 AI 智能体的可搜索量化研究档案库

我们如何构建 researcher.marketmaker.cc —— 一个统一的、支持全文搜索的量化研究档案库(arXiv 论文、GitHub 仓库、量化博客、TradingView Pine 脚本),人类可以浏览,AI 智能体可以通过 MCP 查询。

algo-investor-skills:用 Claude Code 技能打造经得起骗局质疑的投资人方案

algo-investor-skills:用 Claude Code 技能打造经得起骗局质疑的投资人方案

深入解读 algo-investor-skills —— 一套 Claude Code 技能,能把一个算法交易策略从原始的实测事实,一路打造成经过审计、以诚实为先的投资人方案。六个可组合的技能、一个金融模型引擎、一套独立验证的证明包,以及一道绝不编造任何数字的强制性怀疑型投资人审计关卡。

策略的凯利公式:如何确定仓位大小并分配资本

策略的凯利公式:如何确定仓位大小并分配资本

正期望策略也可能因为下注规模失误而爆仓。我们从公式推导一路讲到策略组合,剖析凯利公式:为什么 full Kelly 很危险,分数凯利如何用一半的波动率换来 75% 的增长,以及一个交互式计算器,让你直观看到凯利比例如何改变收益与风险。

每日股票分析:把自选股清单变成每日决策仪表盘的AI系统

每日股票分析:把自选股清单变成每日决策仪表盘的AI系统

深度解析ZhuLinsen的daily_stock_analysis——一个开源系统,跨A股、港股、美股等市场抓取行情数据,通过LLM完成技术面与资讯分析,并在每个交易日把结构化的“决策仪表盘”推送到你的即时通讯工具。涵盖架构、数据回退、智能体策略与局限性。

用于多时间跨度组合预测的时序融合 Transformer

用于多时间跨度组合预测的时序融合 Transformer

谷歌的时序融合 Transformer 如何为量化组合管理带来可解释的多时间跨度预测:基于注意力的变量选择、分位数输出,以及一条完整的 pytorch-forecasting 实战流程。

用于风险感知仓位管理的保形预测

用于风险感知仓位管理的保形预测

无分布假设、带有覆盖率保证的预测区间。我们使用 split conformal、jackknife+ 以及自适应保形推断来校准交易风险,并在不依赖参数化假设的情况下确定仓位规模。