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.

Artikel

Yang Negatif dengan Jujur: Puluhan Ribu Backtest, Lima Mata Wang Utama, Tiada Kelebihan yang Mantap

Yang Negatif dengan Jujur: Puluhan Ribu Backtest, Lima Mata Wang Utama, Tiada Kelebihan yang Mantap

Kemuncak babak pencarian-dan-overfit, dan ia berakhir dengan satu keputusan negatif — yang betul. Satu carian dual-timeframe simbol tunggal pada ETHUSDT menemui satu konfigurasi bernilai +16.35% out-of-sample dan +2.62% pada satu holdout yang tidak disentuh; Deflated Sharpe Ratio, dengan mengambil kira ~37,000 percubaan, mendeflasikannya kepada 0.00. Satu larian merentas-instrumen ke atas lima mata wang utama (ETH/BTC/SOL/BNB/XRP, ~1.18M bar 1m setiap satu), memilih mengikut median out-of-sample, membunuhnya buat selama-lamanya: dual DSR 0.24 / PBO 0.264, triple DSR 0.14 / PBO 0.327 — kedua-duanya gagal gate. Juara ini menguntungkan pada 1 daripada 5 simbol dan negatif pada selebihnya. Inilah tujuan radas anti-overfit: untuk menghalang anda daripada melancarkan yang terbaik daripada hingar sebagai alpha.

Membuktikan Tiada Look-Ahead dalam Ujian Balik Multi-Timeframe: Ganggu Masa Depan, Buktikan Masa Lalu Tidak Dapat Melihatnya

Membuktikan Tiada Look-Ahead dalam Ujian Balik Multi-Timeframe: Ganggu Masa Depan, Buktikan Masa Lalu Tidak Dapat Melihatnya

Ujian balik (backtest) multi-timeframe membocorkan masa depan melalui bar timeframe lebih tinggi yang sedang terbentuk, yang harga penutupan akhirnya belum wujud lagi. Anda tidak boleh mencapai keyakinan hanya dengan menyemak kod — ia perlu diuji. Kami mengulangi semula peraturan bar-tertutup bot langsung dengan tepat, kemudian membuktikan tiada kebocoran dengan ujian anjakan-masa-depan: ganggu setiap bar masa depan dan sahkan setiap isyarat serta dagangan masa lalu kekal sama tepat sehingga bit terakhir. 25/25 semakan pariti, dan ujian ini benar-benar berkesan.

Apabila GPU Berbaloi: Roofline Sapuan Parameter, di Mana Tajuk Utama 167x Sebenarnya 27x Algoritma Darab 6.2x Perkakasan

Apabila GPU Berbaloi: Roofline Sapuan Parameter, di Mana Tajuk Utama 167x Sebenarnya 27x Algoritma Darab 6.2x Perkakasan

Kelebihan GPU berbanding CPU tumbuh dengan saiz kelompok — 54.5x pada satu kombo setiap panggilan hingga 359.6x pada 61 dalam prapengiraan penunjuk pelbagai jangka masa kami — kerana sapuan kecil tidak dapat mengamortisasi overhead pelancaran kernel dan pemindahan. Kami menguraikan tajuk utama 167x kepada kemenangan algoritma 27x yang turut membantu CPU dan kemenangan perkakasan 6.2x, menunjukkan kelebihan sebenar GPU-berbanding-CPU-terbaik hanyalah 3.2x untuk jangka masa tunggal dan 6.2x untuk pelbagai jangka masa, dan memberikan panduan keputusan tentang berapa lebar sapuan perlu sebelum GPU berbaloi dibeli.

Perangkap Ketepatan GPU: Bagaimana Backtest fp32 pada Apple Metal Diam-diam Memulangkan Sampah

Perangkap Ketepatan GPU: Bagaimana Backtest fp32 pada Apple Metal Diam-diam Memulangkan Sampah

GPU Metal Apple tiada float64. Alih backtest tervektor kepadanya secara naif dan WMA prefix-sum yang menggoda itu melimpah fp32 — ralat relatif maksimum 211× — namun ia tetap berjalan dan memulangkan angka yang kelihatan munasabah. Penyelesaiannya bukan ketepatan lebih tinggi; ia adalah rumusan yang berbeza: konvolusi berjendela terus, selamat-fp32 sehingga 8×10⁻⁷ dan 55.9× lebih pantas daripada numba benang-tunggal. Perangkap itu, aritmetiknya, dan cara membuktikan anda tidak terjebak.

Pintu Gerbang Fideliti: Backtesting Kasar-ke-Halus Menipu Anda Lebih Pantas Melainkan Proksi Murah Menyusun Kedudukan Sama Seperti yang Mahal

Pintu Gerbang Fideliti: Backtesting Kasar-ke-Halus Menipu Anda Lebih Pantas Melainkan Proksi Murah Menyusun Kedudukan Sama Seperti yang Mahal

Carian drill-down / multi-fideliti (ASHA, successive halving, Hyperband) menyaring ribuan konfigurasi secara murah dan hanya menaikkan taraf konfigurasi yang terselamat kepada penilaian penuh yang mahal. Ini adalah pempercepatan yang tulen — tetapi ia runtuh secara senyap jika kedudukan pada fideliti rendah tidak sepadan dengan kedudukan pada fideliti tinggi. Kami mengukur korelasi kedudukan-fold: pada satu fold, Spearman ρ boleh serendah 0.03 (kedudukan hampir rawak), meningkat kepada 0.43, 0.67, 0.78, 0.91 apabila fold bertambah. Penyelesaiannya ialah satu pintu gerbang wajib — ukur ρ(murah, penuh) dahulu, dan naikkan secara automatik fideliti minimum kepada tahap pertama di mana ρ ≥ 0.5.

Carian Rawak lawan Carian Pintar: Titik Persilangan Ialah Kos Penilaian, Bukan Algoritma

Carian Rawak lawan Carian Pintar: Titik Persilangan Ialah Kos Penilaian, Bukan Algoritma

Apabila satu backtest itu murah, Sobol scrambled yang 'bodoh' menang dari segi throughput mentah — sampler pintar (TPE, CMA-ES, ASHA) menanggung cukai ask/tell Python yang menjatuhkan mereka 20x, jadi mereka menilai jauh lebih sedikit titik pada wall-clock yang sama dan kalah. Jadikan setiap penilaian mahal (multi-TF + lipatan walk-forward) dan titik persilangan itu berbalik. Kami mengukur kedua-dua rejim, dan sebab mengapa fideliti kedudukan-lipatan (fold-rank fidelity) (ρ@1 meningkat 0.03→0.43) adalah prasyarat untuk pruning memberi hasil.

Ruang Parameter Dua Paksi: Mengapa Sebahagian Besar Sapuan Anda Sepatutnya Hampir Percuma

Ruang Parameter Dua Paksi: Mengapa Sebahagian Besar Sapuan Anda Sepatutnya Hampir Percuma

Bukan semua parameter sama kosnya untuk dicari. Parameter sesebuah strategi terbahagi kepada paksi mahal (penunjuk — dikira semula merentasi keseluruhan siri) dan paksi murah (ambang keputusan — satu laluan O(n) ke atas isyarat prakira). Oleh sebab penunjuk invarian terhadap ambang, anda mengiranya sekali dan menyapu beribu-ribu konfigurasi ambang pada ~5,600 cfg/s — kira-kira 1,600x lebih murah daripada mengira semula bagi setiap konfigurasi. Satu penilaian harga semula terhadap sumpahan kedimensian.

Cukai Rangka Kerja: Bila Pustaka Backtest Anda Lebih Perlahan Daripada Gelung Pandas Naif

Cukai Rangka Kerja: Bila Pustaka Backtest Anda Lebih Perlahan Daripada Gelung Pandas Naif

Kami menanda aras lapan enjin backtest pada satu sapuan parameter yang sama — 150k bar, 80 kombinasi silang HMA, pariti kiraan dagangan dikunci pada 2707. Dua daripada rangka kerja dipacu peristiwa yang paling popular ternyata lebih perlahan daripada gelung pandas yang ditulis tangan, manakala enjin tervektor/terkompil menjalankan kerja yang sama ~13,000× lebih pantas. Satu kajian tentang overhed per-bar yang pustaka popular memang tidak pernah dibina untuk melunaskan.

Probability of Backtest Overfitting: Adakah Carian Anda Mengatasi Lambungan Syiling?

Probability of Backtest Overfitting: Adakah Carian Anda Mengatasi Lambungan Syiling?

Deflated Sharpe Ratio menilai harga strategi pemenang; PBO menilai harga carian yang memilihnya. Combinatorially Symmetric Cross-Validation menjalankan C(16,8) = 12,870 pembahagian train/test ke atas satu matriks prestasi 1000x200 dan bertanya: adakah pemenang dalam-sampel mendarat pada separuh bawah di luar sampel? Perangkap yang hampir semua orang terlepas — null PBO ialah 0.5, bukan 1. Pada 200 strategi kelebihan-sifar, Sharpe tahunan dalam-sampel terbaik 1.98 runtuh kepada 0.06 di luar sampel dan PBO = 0.476: satu lambungan syiling, overfit sepenuhnya. Tanam satu kelebihan sebenar (Sharpe tahunan 2.38) dan PBO jatuh kepada 0.001, dengan 3.73 dalam-sampel terselamat kepada 2.34 luar-sampel. Satu grid purata bergerak pada jalan rawak tulen juga tiada kemahiran luar-sampel — PBO 0.463 dipuratakan merentasi 60 matriks, tidak dapat dibezakan secara statistik daripada null — dan pada satu matriks wakil, fatamorgana itu jelas: Sharpe dalam-sampel terbaik 2.33 runtuh kepada median luar-sampel -0.22, PBO 0.573, peluang 63% untuk kerugian.

Cukai IPC: Letakkan Enjin Backtest di Sebalik Soket dan Rugi 13% — Hampir Tiada Kaitan dengan Soket Itu

Cukai IPC: Letakkan Enjin Backtest di Sebalik Soket dan Rugi 13% — Hampir Tiada Kaitan dengan Soket Itu

Kami mengalihkan (port) kernel backtest numba baris demi baris ke Rust dan memanggilnya merentasi sempadan proses dalam empat cara, dengan get kesetaraan yang mengesahkan PnL yang identik hingga dagangan terakhir. Menghantar keseluruhan siri harga 1.2 MB melalui soket Unix hanya berkos ~2 ms — sekitar 0.1% daripada kerja tersebut. Mengekod payload yang sama dalam JSON berkos 1348x lebih mahal daripada bait mentah, panggilan chatty setiap kombo menghantar semula data sebanyak 80 kali, dan corak panggilan setiap bar akan membayar 2.1 s IPC tulen pada kerja 2.0 s. Sempadan itu murah; cukainya terletak pada cara anda merentasinya.

Deflated Sharpe Ratio: Berapa Banyak 'Pemenang' Backtest Anda Terselamat daripada Ujian Berganda?

Deflated Sharpe Ratio: Berapa Banyak 'Pemenang' Backtest Anda Terselamat daripada Ujian Berganda?

Carian parameter ialah mesin untuk menghasilkan nasib baik secara buatan. Pada bunyi hingar tulen — 1,000 strategi dengan kelebihan sebenar sifar — Sharpe tahunan terbaik purata 1.63 dan ujian signifikan naif menandakan penemuan 100% daripada masa. Kami membina ground truth terkawal dan menunjukkan bahawa Deflated Sharpe Ratio, haircut Harvey-Liu, dan Reality Check White memulihkan kejujuran: penemuan palsu jatuh daripada 1.000 kepada 0.001-0.057, kelebihan tulen di atas siling bunyi hingar dikekalkan dengan kuasa ~1 — dan satu perangkap sebenar (grid berkorelasi) di mana DSR mentah terlebih-deflasi dan keputusan mesti dibaca merentasi keseluruhan jalur penganggar cubaan-berkesan, bukan satu.

Reka Bentuk Fungsi Objektif: Metrik yang Anda Optimumkan Secara Rahsia Memilih Strategi Anda

Reka Bentuk Fungsi Objektif: Metrik yang Anda Optimumkan Secara Rahsia Memilih Strategi Anda

Untuk mencari strategi 'terbaik' anda perlu dahulu mentakrifkan 'terbaik' — dan skalar itu secara senyap memilih pemenang. Pada data sintetik dengan kelebihan yang diketahui (600 seed, T=2000, 80 ambang), Sharpe setiap-dagangan naif menobatkan satu loteri: ia memilih pemenang berpendedahan-bawah-5% dalam 56% seed dan merosot dalam 57% — pada seed paling ekstrem, 8 dagangan mencatatkan Sharpe dalam-sampel 21.09 yang runtuh kepada 0.13 di luar sampel. Pembaikan yang jujur hampir membosankan: ukur pada garis masa penuh, yang tidak pernah merosot (luar-sampel 1.71). Pengecilan bilangan-dagangan (conf_k) dan lantai pendedahan boleh menaik taraf metrik setiap-dagangan, tetapi walaupun dibaiki sepenuhnya ia hanya menyamai Sharpe garis-masa-penuh (1.70 vs 1.71) — tidak pernah mengatasinya. Hukum Goodhart, dalam satu backtest, dengan ground truth terkawal.