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

MEV 剖析:三明治攻擊、搶先交易與記憶體池的黑暗森林

MEV 剖析:三明治攻擊、搶先交易與記憶體池的黑暗森林

你傳送到公共 RPC 的每一筆 swap,都是一個沒人有義務遵守的可見限價單。本文技術性拆解 MEV 提取的運作機制:記憶體池排序、Uniswap v2 三明治攻擊數學、PGA、Flashbots,以及交易者的防禦手段。

成交模擬:從收盤價幻想到佇列感知現實的階梯

成交模擬:從收盤價幻想到佇列感知現實的階梯

成交模擬保真度的五級階梯——從收盤價成交到機率化佇列位置模型。將部分成交建模為狀態機,把限價單成交機率的上下界作為 PnL 區間,並給出對照實盤成交的校準閉環。

TWAP、VWAP與POV對比:如何選擇執行基準(以及何時它們會對你撒謊)

TWAP、VWAP與POV對比:如何選擇執行基準(以及何時它們會對你撒謊)

TWAP、VWAP和POV本質上都是對成交量預測的一次押注。我們剖析每種調度演算法背後隱藏的假設,構建加密貨幣日內成交量曲線,並在回放的L2數據上對三者進行正面對比測試。

去掉玄乎其辭的 Almgren-Chriss:一個下午就能實現的最優執行模型

去掉玄乎其辭的 Almgren-Chriss:一個下午就能實現的最優執行模型

Almgren-Chriss 最優執行模型的完整推導:線性衝擊、sinh/cosh 交易軌跡、有效前沿,以及從 Binance L2 和成交資料校準 eta、gamma、sigma 的可執行 Python 程式碼。

誠實的負面結果:數萬次回測、五大主流幣,沒有穩健優勢

誠實的負面結果:數萬次回測、五大主流幣,沒有穩健優勢

搜尋與過擬合這條主線的收官之作,以一個負面結果收尾——而這正是正確的結果。ETHUSDT 上的單品種雙時間框架搜尋找到了一個樣本外 +16.35%、未觸碰留出視窗 +2.62% 的配置;Deflated Sharpe Ratio 在計入約 37,000 次試驗後把它折損到 0.00。對五個主流幣(ETH/BTC/SOL/BNB/XRP,每個約 1.18M 根 1 分鐘 K 線)按樣本外中位數選擇的跨品種檢驗則徹底終結了它:雙時間框架 DSR 0.24 / PBO 0.264,三時間框架 DSR 0.14 / PBO 0.327——兩者都沒過閘門。冠軍只在 5 個品種中的 1 個上盈利,其餘全部為負。這正是反過擬合裝置存在的意義:阻止你把噪聲中的最優當成 alpha 拿去上線。

證明多時間框架回測中沒有look-ahead:擾動未來,證明過去看不到它

證明多時間框架回測中沒有look-ahead:擾動未來,證明過去看不到它

多時間框架回測會通過一根仍在形成中、尚不存在最終收盤價的高時間框架K線洩露未來資訊。僅靠程式碼審查無法建立信心——必須實際測試。我們精確復現了實盤機器人的closed-bar規則,然後用一個“未來偏移探針”證明沒有資訊洩露:擾動每一根未來K線,並斷言每一個過去的訊號和交易都逐位不變。25/25項一致性檢查全部通過,而且這個探針確實有效(並非一個永遠不會失敗的空測試)。

GPU 何時才划算:參數掃描的屋頂線,一個 167x 頭條其實是 27x 演算法 × 6.2x 硬體

GPU 何時才划算:參數掃描的屋頂線,一個 167x 頭條其實是 27x 演算法 × 6.2x 硬體

GPU 相對 CPU 的領先幅度隨批次大小增長——在我們的多時間框架指標預計算上,從每次呼叫一個組合時的 54.5x 一路升到 61 個組合時的 359.6x——因為一次小規模掃描無法攤薄核心啟動和傳輸開銷。我們把一個 167x 的頭條數字拆解為一個同樣惠及 CPU 的 27x 演算法收益,乘以一個 6.2x 的硬體收益,指出 GPU 相對最佳 CPU 的真實領先在單時間框架下只有 3.2x、在多時間框架下只有 6.2x,並給出一份決策指南:一次掃描要寬到什麼程度,才值得為 GPU 掏錢。

GPU 精度陷阱:Apple Metal 上的 fp32 回測如何悄無聲息地返回垃圾結果

GPU 精度陷阱:Apple Metal 上的 fp32 回測如何悄無聲息地返回垃圾結果

Apple 的 Metal GPU 沒有 float64。把一個向量化回測天真地移植過去,那個誘人的字首和 WMA 就會在 fp32 下溢位——最大相對誤差 211 倍——但它依然能跑完全程,還返回看起來說得過去的數字。修復的辦法不是提高精度,而是換一種公式:直接的視窗卷積,fp32 下精度可達 8×10⁻⁷,比單執行緒 numba 快 55.9 倍。這篇文章講清楚陷阱本身、背後的算術,以及如何證明自己沒有掉進去。

保真度關卡:由粗到細的回測會更快地愚弄你——除非廉價代理的排序方式與昂貴評估一致

保真度關卡:由粗到細的回測會更快地愚弄你——除非廉價代理的排序方式與昂貴評估一致

下鑽式/多保真度搜索(ASHA、逐次減半、Hyperband)以低成本方式篩選成千上萬個配置,只將存活者提升到昂貴的完整評估階段。這是一種真實的加速——但如果低保真度的排序與高保真度的排序不一致,它就會悄無聲息地崩潰。我們測量了折數-排序相關性:在只用一折時,Spearman ρ 可能低至 0.03(排序幾乎是隨機的),隨著折數累積,逐步升高到 0.43、0.67、0.78、0.91。修復方法是設定一道強制性關卡——先測量 ρ(廉價, 完整),並自動將最低保真度提升到 ρ ≥ 0.5 的第一個檔位。

隨機搜尋 vs 智慧搜尋:交叉點在評估成本,而非演算法本身

隨機搜尋 vs 智慧搜尋:交叉點在評估成本,而非演算法本身

當單次回測很便宜時,簡單的打亂 Sobol 序列在原始吞吐量上碾壓所有"智慧"取樣器——TPE、CMA-ES、ASHA 要繳納 Python ask/tell 稅,導致速度下降 20 倍,在相同牆鍾時間內評估的點數遠遠更少,因而落敗。讓每次評估變得昂貴(多時間框架 + walk-forward 折)之後,交叉點就翻轉了。我們測量了這兩種情形,以及為什麼摺疊排名保真度(ρ@1 從 0.03 升至 0.43)是剪枝能否奏效的前提條件。

雙軸參數空間:為什麼你的大部分參數掃描幾乎是免費的

雙軸參數空間:為什麼你的大部分參數掃描幾乎是免費的

並非所有參數的搜尋成本都相同。一個策略的參數會分裂為一條昂貴軸(指標——需要在整個序列上重新計算)和一條廉價軸(決策閾值——對預計算訊號做一次 O(n) 遍歷)。由於指標對閾值不變,你只需計算一次,就能以約 5,600 cfg/s 的速度掃描數千種閾值配置——比每種配置都重新計算大約便宜 1,600 倍。這是對維度災難的一次重新定價。

框架稅:當你的回測庫比手寫的 pandas 迴圈還慢

框架稅:當你的回測庫比手寫的 pandas 迴圈還慢

我們在同一個參數掃描任務上對八個回測引擎進行了基準測試——15萬根K線、80個HMA交叉組合、交易筆數嚴格鎖定在2707筆。兩個最受歡迎的事件驅動框架的速度居然比手寫的 pandas 迴圈還慢,而一個向量化/編譯型引擎完成同樣的工作快了約13000倍。這是一篇關於主流庫從未被設計用來攤銷的逐K線開銷的研究。