I built a quant engine based on 20 years of OOS data. Tear my methodology apart.
u/PracticalOil9183 ·
Reddit — r/algotrading
· 2026년 5월 5일, 13:18
· ⬆ 19 포인트
· 💬 54 개 댓글
| Reddit에서 보기 ↗
AI 요약
=== 요약 ===
- 작성자는 와이코프(Wyckoff) 축적 로직과 평균 회귀를 결합한 퀀트 엔진을 구축했으며, 20년치 표본 외 데이터(2006~2026년)와 18,808개의 신호를 통해 검증했습니다.
- 주요 지표: 12.55% CAGR(구독료 차감 전), 32% 최대 낙폭(MDD), 0.729 샤프 지수, 신호당 0.509% 알파; 생존 편향, 워크포워드 테스트 및 통계적 보정이 적용되었습니다.
- 품질 평가: 엄격한 방법론과 공개된 검증 데이터를 갖춘 수준 높은 DD(실사)이나, 독점 코드는 공개되지 않았으며 전략의 수익성은 구독 비용으로 인해 계좌 규모에 크게 의존합니다.
=== 시장 심리 ===
중립
=== 투자 의견 ===
이 게시물에는 실행 가능한 투자 의견이 없습니다. 작성자는 특정 티커를 추천하거나 방향성 있는 아이디어를 제공하지 않으며, 이 게시물은 방법론 검토 요청일 뿐 투자 논문이 아닙니다.
점수19
댓글54
추천 %77%
▶ 전체 게시글 텍스트
I’ve spent the last year trying to automate Wyckoff institutional accumulation logic and a mean reversion engine. I just finished a 20 year validation run from 2006 to 2026 and I’m looking for some honest peer review from people who actually know how to code and backtest.
The basic stats for 2006 to 2026:
Total Signals: 18,808 (all out of sample)
Combined CAGR: 12.55 percent (this is gross of the sub fee, but net of 10bps for slippage and costs)
Max Drawdown: 32.04 percent (it survived 2008 and 2020 without blowing up)
Sharpe: 0.729
Alpha: 0.509 percent per signal (based on a Carhart 4 factor regression)
How I tried to keep it honest:
1. Survivorship Bias: The universe includes 412 delisted stocks. If a company went bankrupt in 2008, it is in the data.
2. Out of Sample: I used a walk forward framework, training on 2006 to 2015 and testing on 2016 to 2025.
3. No Black Box: It is based on Wyckoff principles like Accumulation and Springs. It is just tracking volume and price action where big money leaves footprints.
4. Math: I applied Bonferroni correction and Block Bootstrap to make sure the win rate isn't just a lucky streak.
The Catch:
The 12.55 percent is gross of subscription costs. If you have a small 10k account, the fees are going to eat a huge chunk of your gains. This system really only starts to beat the benchmarks once your capital is high enough that the overhead doesn't matter.
What am I missing?
I’m looking for holes in the logic. I uploaded the full validation suite, signal data, and factor data to GitHub so anyone can actually reproduce these numbers. I am not sharing the proprietary source code for the engine itself, but all the outputs are there to be checked.
GitHub for verification: [https://github.com/signal-validation/krentium](https://github.com/signal-validation/krentium)