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
La décision maker-taker : paliers de frais, rebates et le coût réel de la traversée du spread
Maker vs taker est un arbitrage de sélection adverse déguisé en grille tarifaire. Break-even corrigé via Glosten-Milgrom, vrais paliers de frais crypto et remises en token, histoire du rebate mining, valeur du rebate en fonction de la position dans la file, et modélisation des frais par palier dans un backtest.
Implementation shortfall et TCA maison : mesurer ce que l'exécution vous coûte réellement
L'implementation shortfall de Perold transformé en pipeline TCA opérationnel pour bots crypto : décomposition par rapport au prix d'arrivée, courbes de markout à t+1s/10s/60s, ~200 lignes de Python sur vos propres exécutions, et réinjection des résultats dans le modèle de coût de votre backtest.
Liquidations on-chain : mécanique d'Aave et Compound, et le business des bots qui l'entoure
Comment fonctionnent réellement les liquidations sur Aave v3 et Compound : mathématiques du health factor, close factors, bonus de liquidation, déclencheurs des oracles Chainlink, et ce qu'il faut pour faire tourner un bot de liquidation par flash loan en 2026.
Uniswap v3 pour les quants : liquidité concentrée et mathématiques des ticks depuis les premiers principes
Comment Uniswap v3 fonctionne réellement sous le capot : réserves virtuelles, liquidité L, sqrtPriceX96, mathématiques des ticks, feeGrowthInside, et pourquoi une position LP est un payoff short-volatilité. Avec les formules exactes et un exemple numérique détaillé.
Anatomie du MEV : sandwiches, frontrunning et la forêt obscure du mempool
Chaque swap que vous envoyez à un RPC public est un ordre à cours limité visible que personne n'est tenu d'honorer. Une analyse technique du fonctionnement de l'extraction de MEV : ordonnancement du mempool, mathématiques du sandwich sur Uniswap v2, PGA, Flashbots et défenses du trader.
Simulation des fills : l'échelle de la fantaisie au prix de clôture jusqu'à la réalité tenant compte de la file d'attente
Cinq échelons de fidélité de simulation des fills — des fills au prix de clôture jusqu'aux modèles probabilistes de position dans la file d'attente. Les fills partiels comme machine à états, les bornes de probabilité de fill sur ordre limite comme fourchette de PnL, et une boucle de calibration face aux fills réels.
TWAP vs VWAP vs POV : choisir un benchmark d'exécution (et savoir quand chacun vous ment)
TWAP, VWAP et POV sont des paris sur une prévision de volume. Nous décortiquons les hypothèses cachées de chaque scheduler, construisons des courbes de volume intraday crypto, et confrontons les trois sur des données L2 rejouées.
Almgren-Chriss sans approximations : l'exécution optimale que vous pouvez implémenter en un après-midi
Dérivation complète du modèle d'exécution optimale d'Almgren-Chriss : impact linéaire, trajectoire en sinh/cosh, frontière efficiente, et code Python fonctionnel pour calibrer eta, gamma et sigma à partir des données L2 et des trades de Binance.
L'honnete resultat negatif : des dizaines de milliers de backtests, cinq majors, aucun edge robuste
L'aboutissement de l'arc recherche-et-surapprentissage, et il se termine sur un resultat negatif — le bon. Une recherche mono-actif en double timeframe sur ETHUSDT a trouve une configuration valant +16,35 % en out-of-sample et +2,62 % sur un holdout intact ; le Deflated Sharpe Ratio, tenant compte des ~37 000 essais, l'a deflate a 0,00. Une passe cross-instrument sur cinq majors (ETH/BTC/SOL/BNB/XRP, ~1,18 M de barres 1m chacun), avec selection par la mediane out-of-sample, l'acheve pour de bon : DSR dual 0,24 / PBO 0,264, DSR triple 0,14 / PBO 0,327 — les deux echouent aux seuils. Le champion est profitable sur 1 des 5 symboles et negatif sur les autres. Voila a quoi sert l'appareillage anti-surapprentissage : vous empecher de deployer le meilleur du bruit en le prenant pour de l'alpha.
Prouver l'absence de look-ahead dans les backtests multi-timeframe : perturber le futur pour prouver que le passé ne peut pas le voir
Les backtests multi-timeframe laissent fuiter le futur à travers une bougie de timeframe supérieur en cours de formation, dont la clôture finale n'existe pas encore. On ne peut pas se contenter d'une revue de code pour en avoir la certitude — il faut le tester. Nous reproduisons exactement la règle de bougie clôturée du bot live, puis prouvons l'absence de fuite avec une sonde à futur perturbé : on perturbe chaque bougie future et on vérifie que chaque signal et chaque trade passés restent identiques bit à bit. 25/25 tests de parité, et la sonde a du mordant.
Quand le GPU devient rentable : la roofline du sweep de paramètres, où un 167x d'affiche est en réalité 27x d'algorithme fois 6.2x de matériel
L'avance du GPU sur le CPU grandit avec la taille de batch — de 54.5x à un combo par appel jusqu'à 359.6x à 61 sur notre précalcul d'indicateurs multi-timeframe — parce qu'un petit sweep ne peut pas amortir le surcoût de lancement des kernels et de transfert. Nous décomposons un 167x d'affiche en un gain algorithmique de 27x qui profite aussi au CPU et un gain matériel de 6.2x, montrons que la vraie avance GPU contre meilleur CPU n'est que de 3.2x en single-timeframe et de 6.2x en multi, et donnons un guide de décision sur la largeur qu'un sweep doit atteindre avant qu'un GPU mérite l'investissement.
Le piège de précision GPU : comment un backtest fp32 sur Apple Metal renvoie silencieusement des résultats aberrants
Le GPU Metal d'Apple n'a pas de float64. Portez naïvement un backtest vectorisé dessus, et la tentante WMA en somme cumulée déborde en fp32 — erreur relative maximale de 211× — tout en continuant de tourner et de renvoyer des chiffres d'apparence plausible. Le correctif n'est pas plus de précision : c'est une formulation différente — une convolution directe par fenêtre glissante, fiable en fp32 jusqu'à 8×10⁻⁷ et 55.9× plus rapide que numba mono-thread. Le piège, l'arithmétique, et comment prouver qu'on n'y est pas tombé.