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로 보낸 모든 스왑은 누구도 지킬 의무가 없는 눈에 보이는 지정가 주문이다. 멤풀 정렬, Uniswap v2에서의 샌드위치 수식, PGA, Flashbots, 그리고 트레이더의 방어 수단까지 MEV 추출의 작동 원리를 기술적으로 파헤친다.

체결 시뮬레이션: 종가 체결 환상에서 큐 인식 현실까지의 사다리

체결 시뮬레이션: 종가 체결 환상에서 큐 인식 현실까지의 사다리

체결 시뮬레이션 정밀도의 다섯 단계 - 종가 체결부터 확률적 큐 포지션 모델까지. 상태 기계로서의 부분 체결, PnL 구간으로서의 지정가 체결 확률 경계, 그리고 라이브 체결에 대한 캘리브레이션 루프.

TWAP vs VWAP vs POV: 실행 벤치마크 선택하기 (그리고 각각이 언제 당신을 속이는지 알기)

TWAP vs VWAP vs POV: 실행 벤치마크 선택하기 (그리고 각각이 언제 당신을 속이는지 알기)

TWAP, VWAP, POV는 모두 거래량 예측에 대한 베팅이다. 각 스케줄러의 숨겨진 가정을 해부하고, 암호화폐 인트라데이 거래량 곡선을 구축하며, 리플레이된 L2 데이터로 세 가지를 정면 대결시킨다.

얼버무리지 않는 알름그렌-크리스: 오후 한나절이면 구현할 수 있는 최적 집행

얼버무리지 않는 알름그렌-크리스: 오후 한나절이면 구현할 수 있는 최적 집행

알름그렌-크리스 최적 집행 모델의 완전한 유도 과정 — 선형 임팩트, sinh/cosh 궤적, 효율적 프론티어, 그리고 바이낸스 L2 및 체결 데이터로 eta, gamma, sigma를 보정하는 실전 파이썬 코드까지.

정직한 부정적 결과: 수만 번의 백테스트, 메이저 다섯 개, 견고한 엣지는 없다

정직한 부정적 결과: 수만 번의 백테스트, 메이저 다섯 개, 견고한 엣지는 없다

서치와 과적합 아크의 정점이며, 부정적 결과로 끝납니다 — 그것이 올바른 결과입니다. ETHUSDT에 대한 단일 심볼 듀얼 타임프레임 서치는 아웃오브샘플 테스트 +16.35%, 손대지 않은 홀드아웃 +2.62%짜리 구성을 찾아냈습니다; ~37,000번의 시행을 반영한 디플레이티드 샤프 비율은 이를 0.00으로 디플레이트했습니다. 아웃오브샘플 중앙값으로 선택하는 메이저 다섯 개(ETH/BTC/SOL/BNB/XRP, 각 ~1.18M개의 1분봉)에 대한 종목 간 패스가 이를 완전히 끝장냅니다: 듀얼 DSR 0.24 / PBO 0.264, 트리플 DSR 0.14 / PBO 0.327 — 둘 다 게이트에서 탈락합니다. 챔피언은 5개 심볼 중 1개에서만 수익을 내고 나머지에서는 손실입니다. 이것이 반과적합 장치의 존재 이유입니다: 노이즈의 최선을 알파로 배포하는 것을 막기 위해서입니다.

멀티 타임프레임 백테스트에서 선행 참조(look-ahead) 없음을 증명하기: 미래를 흔들어 과거가 그것을 볼 수 없음을 증명한다

멀티 타임프레임 백테스트에서 선행 참조(look-ahead) 없음을 증명하기: 미래를 흔들어 과거가 그것을 볼 수 없음을 증명한다

멀티 타임프레임 백테스트는 아직 최종 종가가 존재하지 않는, 형성 중인 상위 타임프레임 봉을 통해 미래를 누출한다. 코드 리뷰만으로는 확신을 얻을 수 없다 — 직접 테스트해야 한다. 우리는 라이브 봇의 마감 봉(closed-bar) 규칙을 정확히 재현한 뒤, 미래 이동(shifted-future) 프로브로 누출이 없음을 증명한다: 미래의 모든 봉을 교란시키고 과거의 모든 시그널과 트레이드가 비트 단위로 변하지 않음을 확인한다. 25개 항목 중 25개 정합성 검사를 통과했으며, 이 프로브는 실질적인 검증력을 갖추고 있다.

GPU가 값어치를 하는 순간: 파라미터 스윕의 루프라인, 헤드라인 167배는 사실 27배 알고리즘 곱하기 6.2배 하드웨어다

GPU가 값어치를 하는 순간: 파라미터 스윕의 루프라인, 헤드라인 167배는 사실 27배 알고리즘 곱하기 6.2배 하드웨어다

GPU가 CPU에 대해 갖는 우위는 배치 크기와 함께 커집니다 — 우리의 멀티 타임프레임 지표 사전 계산에서 호출당 콤보 하나일 때 54.5배부터 예순한 개일 때 359.6배까지 — 작은 스윕은 커널 실행과 전송 오버헤드를 상각할 수 없기 때문입니다. 헤드라인 167배를 CPU에도 도움이 되는 27배의 알고리즘 승리와 6.2배의 하드웨어 승리로 분해하고, 진짜 GPU 대 최선의 CPU 우위는 단일 타임프레임에서 겨우 3.2배, 멀티에서 6.2배임을 보이며, GPU를 사들일 값어치가 생기려면 스윕이 얼마나 넓어야 하는지에 대한 결정 가이드를 제시합니다.

GPU 정밀도 함정: Apple Metal에서 fp32 백테스트가 조용히 쓰레기 값을 반환하는 방법

GPU 정밀도 함정: Apple Metal에서 fp32 백테스트가 조용히 쓰레기 값을 반환하는 방법

Apple의 Metal GPU에는 float64가 없습니다. 벡터화된 백테스트를 순진하게 이식하면, 유혹적인 접두사 합(prefix-sum) WMA가 fp32에서 오버플로를 일으킵니다 — 최대 상대 오차 211배 — 그런데도 코드는 멈추지 않고 그럴듯한 숫자를 계속 반환합니다. 해법은 더 높은 정밀도가 아니라 다른 방식의 합산입니다: 직접 윈도우 컨볼루션은 fp32에서 8×10⁻⁷까지 안전하며 단일 스레드 numba보다 55.9배 빠릅니다. 이 함정의 정체, 그 산술적 원인, 그리고 여러분이 거기 빠지지 않았음을 증명하는 방법을 다룹니다.

충실도 게이트(Fidelity Gate): 저비용 프록시가 고비용 평가와 같은 순위를 매기지 않는 한, 성긴 것에서 정밀한 것으로(Coarse-to-Fine) 진행하는 백테스팅은 당신을 더 빨리 속인다

충실도 게이트(Fidelity Gate): 저비용 프록시가 고비용 평가와 같은 순위를 매기지 않는 한, 성긴 것에서 정밀한 것으로(Coarse-to-Fine) 진행하는 백테스팅은 당신을 더 빨리 속인다

드릴다운/다중 충실도 탐색(ASHA, successive halving, Hyperband)은 수천 개의 설정(config)을 저렴하게 걸러내고, 살아남은 것만 비용이 큰 전체 평가로 승격시킨다. 이는 실질적인 속도 향상이지만, 저충실도 순위가 고충실도 순위와 어긋나면 조용히 무너진다. 우리는 폴드 간 순위 상관관계를 측정했다. 폴드가 1개일 때 스피어만(Spearman) ρ는 0.03까지 낮아질 수 있으며(거의 무작위로 순위를 매기는 수준), 폴드가 누적됨에 따라 0.43, 0.67, 0.78, 0.91로 상승한다. 해결책은 하나의 필수 게이트다. 먼저 ρ(저렴한 것, 전체)를 측정하고, ρ ≥ 0.5가 되는 첫 번째 단계로 최소 충실도를 자동으로 높이는 것이다.

무작위 탐색 vs 스마트 탐색: 교차점은 알고리즘이 아니라 평가 비용에 있다

무작위 탐색 vs 스마트 탐색: 교차점은 알고리즘이 아니라 평가 비용에 있다

백테스트 한 번이 저렴할 때는 단순히 뒤섞은 Sobol 시퀀스가 원시 처리량에서 모든 "스마트" 샘플러를 압도한다 — TPE, CMA-ES, ASHA는 파이썬 ask/tell 세금을 물어 속도가 20배 떨어지고, 동일한 실제 소요 시간에 훨씬 적은 지점을 평가하여 패배한다. 각 평가를 비싸게 만들면(다중 타임프레임 + walk-forward 폴드) 이 교차점은 뒤집힌다. 우리는 두 체제를 모두 측정했고, 폴드 순위 충실도(ρ@1이 0.03→0.43으로 상승)가 왜 가지치기가 효과를 보기 위한 전제 조건인지 살펴본다.

이축 파라미터 공간: 왜 스윕의 대부분은 거의 공짜여야 하는가

이축 파라미터 공간: 왜 스윕의 대부분은 거의 공짜여야 하는가

모든 파라미터가 탐색 비용이 같은 것은 아니다. 전략의 파라미터는 비싼 축(지표 — 전체 시계열에 대해 재계산)과 싼 축(의사결정 임계값 — 미리 계산된 시그널에 대한 O(n) 패스)으로 나뉜다. 지표는 임계값에 대해 불변이므로 한 번만 계산한 뒤 초당 약 5,600개 설정 속도로 수천 개의 임계값 조합을 스윕할 수 있다 — 설정마다 재계산하는 것보다 약 1,600배 저렴하다. 차원의 저주를 다시 가격 매기다.

프레임워크 세금: 백테스트 라이브러리가 순진한 pandas 루프보다 느릴 때

프레임워크 세금: 백테스트 라이브러리가 순진한 pandas 루프보다 느릴 때

8개의 백테스트 엔진을 완전히 동일한 파라미터 스위프로 벤치마크했다 — 150k 바, 80개의 HMA 크로스 조합, 거래 수 패리티를 2707로 고정. 가장 인기 있는 이벤트 기반 프레임워크 중 두 개가 손으로 짠 pandas 루프보다 느린 결과를 냈고, 벡터화/컴파일 엔진은 같은 작업을 약 13,000배 빠르게 실행했다. 인기 라이브러리가 애초에 분할 상각하도록 만들어지지 않은, 바당 오버헤드에 대한 연구.