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
The Probability of Backtest Overfitting: Did Your Search Beat a Coin Flip?
The Deflated Sharpe Ratio prices the winning strategy; PBO prices the search that picked it. Combinatorially Symmetric Cross-Validation runs C(16,8) = 12,870 train/test splits over a 1000x200 performance matrix and asks: does the in-sample winner land in the bottom half out of sample? The catch almost everyone misses — PBO's null is 0.5, not 1. On 200 zero-edge strategies the best in-sample annualized Sharpe of 1.98 collapses to 0.06 out of sample and PBO = 0.476: a coin flip, fully overfit. Plant a real edge (annualized Sharpe 2.38) and PBO drops to 0.001, the in-sample 3.73 surviving to an out-of-sample 2.34. A moving-average grid on a pure random walk has no out-of-sample skill either — PBO 0.463 averaged over 60 matrices, statistically indistinguishable from the null — and on one representative matrix the mirage is vivid: a best in-sample Sharpe of 2.33 collapses to a median out-of-sample -0.22, PBO 0.573, a 63% chance of a loss.
IPC टैक्स: बैकटेस्ट इंजन को सॉकेट के पीछे रखें और 13% गंवाएं — जिसमें से लगभग कुछ भी सॉकेट की वजह से नहीं
हमने एक numba बैकटेस्ट कर्नेल को लाइन-दर-लाइन Rust में पोर्ट किया और उसे एक प्रोसेस बाउंड्री के पार चार तरीकों से कॉल किया, एक इक्विवैलेंस गेट के साथ जो अंतिम ट्रेड तक समान PnL की पुष्टि करता है। पूरी 1.2 MB प्राइस सीरीज़ को Unix सॉकेट के जरिए भेजने में ~2 ms लगते हैं — जॉब का लगभग 0.1%। उसी पेलोड को JSON-एनकोड करने में रॉ बाइट्स से 1348 गुना ज्यादा लागत आती है, प्रति-कॉम्बो chatty कॉल्स डेटा को 80 बार दोबारा भेजते हैं, और प्रति-बार कॉल पैटर्न 2.0 सेकंड के जॉब पर 2.1 सेकंड शुद्ध IPC खर्च करेगा। बाउंड्री सस्ती है; टैक्स इस बात में है कि आप उसे कैसे पार करते हैं।
डिफ्लेटेड शार्प रेशियो: मल्टीपल टेस्टिंग के बाद आपके बैकटेस्ट के कितने 'विजेता' असली बचते हैं?
पैरामीटर सर्च किस्मत बनाने की एक मशीन है। शुद्ध नॉइज़ पर — 1,000 स्ट्रैटेजी जिनका असली एज शून्य है — सबसे अच्छा वार्षिक शार्प औसतन 1.63 आता है और नैव सिग्निफिकेंस टेस्ट 100% बार इसे डिस्कवरी घोषित करता है। हम नियंत्रित ग्राउंड ट्रुथ बनाते हैं और दिखाते हैं कि डिफ्लेटेड शार्प रेशियो, Harvey-Liu हेयरकट, और White का Reality Check ईमानदारी बहाल करते हैं: फॉल्स डिस्कवरी 1.000 से घटकर 0.001-0.057 रह जाती है, नॉइज़ सीलिंग से ऊपर के असली एज पावर ~1 के साथ बचे रहते हैं — और एक असली जाल (correlated grids) जहां रॉ DSR ओवर-डिफ्लेट कर देता है और वर्डिक्ट को एक अकेले नंबर से नहीं बल्कि इफेक्टिव-ट्रायल एस्टिमेट्स की पूरी रेंज में पढ़ना पड़ता है।
ऑब्जेक्टिव-फंक्शन डिज़ाइन: जिस मेट्रिक को आप ऑप्टिमाइज़ करते हैं वही गुप्त रूप से आपकी रणनीति चुन लेती है
'सर्वश्रेष्ठ' रणनीति खोजने के लिए पहले 'सर्वश्रेष्ठ' को परिभाषित करना ज़रूरी है — और वह स्केलर चुपचाप विजेता चुन लेता है। ज्ञात एज वाले सिंथेटिक डेटा पर (600 सीड्स, T=2000, 80 थ्रेशोल्ड), एक भोला-भाला per-trade Sharpe एक लॉटरी को ताज पहनाता है: यह 56% सीड्स में 5% से कम एक्सपोज़र वाला विजेता चुनता है और 57% में डिजेनरेट हो जाता है — सबसे स्पष्ट सीड पर, 8 ट्रेड्स एक ऐसा in-sample Sharpe 21.09 दिखाते हैं जो out of sample गिरकर 0.13 रह जाता है। ईमानदार समाधान लगभग नीरस है: पूरी टाइमलाइन पर मापें, जो कभी डिजेनरेट नहीं होती (out-of-sample 1.71)। एक trade-count (conf_k) श्रिंकेज और एक एक्सपोज़र फ्लोर per-trade मेट्रिक को सुधार सकते हैं, लेकिन पूरी तरह सुधारे जाने पर भी वे केवल full-timeline Sharpe (1.70 बनाम 1.71) के बराबर पहुँचते हैं — कभी उससे आगे नहीं। गुडहार्ट का नियम, एक बैकटेस्ट में, नियंत्रित ग्राउंड ट्रुथ के साथ।
Look-Ahead Bias: कैसे एक-बार की गलती शुद्ध शोर से 15 का Sharpe गढ़ देती है
बैकटेस्ट को चुपचाप फुला देने वाले सूक्ष्म look-ahead leaks का एक नियंत्रित अध्ययन। बिना किसी वास्तविक edge के, एक same-bar फिल शुद्ध शोर से +14.8 का वार्षिक Sharpe गढ़ देता है; एक-बार आगे झांकता इंडिकेटर, +4.8। वर्गीकरण, मापी गई मात्राएं, और आपकी जेब से पैसा जाने से पहले हर leak को कैसे पकड़ें।
बैकटेस्ट स्पीड लैडर: लैपटॉप CPU पर 298x, आखिरी ट्रेड तक समान PnL
एक ही 80-कॉम्बो पैरामीटर स्वीप के पांच इम्प्लीमेंटेशन, सभी identical PnL देने के लिए वेरिफाई किए गए: pandas rolling.apply में 69.9 सेकंड लगते हैं, numpy में 3.1, numba में 2.0, parallel numba में 0.23 — Apple M2 Max पर बिना किसी हार्डवेयर बदलाव के मापा गया 298x स्पीडअप, और एक सक्षम vectorized बेसलाइन के मुकाबले भी अब भी ~13x। हर पायदान क्या देता है, GPU गायब कड़ी क्यों नहीं है, और मास पैरामीटर सर्च में असली बॉटलनेक कहां है।
researcher: A Searchable Quant-Research Archive for Humans and AI Agents
How we built researcher.marketmaker.cc — a unified, full-text-searchable archive of quant research (arXiv papers, GitHub repos, quant blogs, TradingView Pine scripts) that humans browse and AI agents query over MCP.
algo-investor-skills: Claude Code स्किल्स जो एक स्कैम-प्रूफ निवेशक प्रस्ताव बनाती हैं
algo-investor-skills पर एक गहरी नज़र — Claude Code स्किल्स का एक सेट जो किसी एल्गोट्रेडिंग रणनीति को कच्चे मापे गए तथ्यों से एक ऑडिटेड, ईमानदारी-केंद्रित निवेशक प्रस्ताव तक ले जाता है। छह संयोजनीय स्किल्स, एक फाइनेंशियल-मॉडल्स इंजन, एक स्वतंत्र-सत्यापन प्रूफ पैक, और एक अनिवार्य संशयी-निवेशक ऑडिट गेट जो कभी कोई आंकड़ा गढ़ता नहीं।
रणनीतियों के लिए केली क्राइटेरियन: पोजीशन साइज़िंग और पूंजी आवंटन कैसे करें
पॉज़िटिव एक्सपेक्टेड वैल्यू वाली रणनीति भी अगर बेट साइज़ गलत हो तो आपका अकाउंट उड़ा सकती है। हम केली क्राइटेरियन को फॉर्मूला की व्युत्पत्ति से लेकर रणनीतियों के पोर्टफोलियो तक समझते हैं: फुल केली क्यों खतरनाक है, फ्रैक्शनल केली आधी वोलैटिलिटी में 75% ग्रोथ कैसे देता है, और एक इंटरैक्टिव कैलकुलेटर जो दिखाता है कि केली फ्रैक्शन रिटर्न और रिस्क को कैसे बदलता है।
Daily Stock Analysis: एक AI सिस्टम जो वॉचलिस्ट को रोज़ाना निर्णय डैशबोर्ड में बदल देता है
ZhuLinsen के daily_stock_analysis का गहन विश्लेषण — एक ओपन-सोर्स सिस्टम जो A-शेयर, हॉन्ग कॉन्ग, अमेरिका और अन्य बाज़ारों का डेटा लाता है, LLM के ज़रिए तकनीकी और समाचार विश्लेषण चलाता है, और हर ट्रेडिंग दिन आपके मैसेंजर पर एक संरचित 'डिसीज़न डैशबोर्ड' भेजता है। आर्किटेक्चर, डेटा फ़ॉलबैक, एजेंट रणनीतियाँ, सीमाएँ।
Temporal Fusion Transformers for Multi-Horizon Portfolio Forecasting
How Google's Temporal Fusion Transformer brings interpretable multi-horizon forecasting to quantitative portfolio management, with attention-based variable selection, quantile outputs, and a worked pytorch-forecasting pipeline.
जोखिम-सजग पोज़िशन साइज़िंग के लिए कॉन्फ़ॉर्मल प्रेडिक्शन
गारंटीशुदा कवरेज के साथ वितरण-मुक्त भविष्यवाणी अंतराल। हम split conformal, jackknife+ और adaptive conformal inference का उपयोग करके ट्रेडिंग जोखिम को कैलिब्रेट करते हैं और बिना पैरामीट्रिक मान्यताओं के पोज़िशन का आकार तय करते हैं।