RoleIndividual Contributor
TagsTime Series · Genetic Programming · Convex Optimization · Quantitative Finance
Timeline2014 — 2019

Strategy discovery: genetic programming + convex optimization

As an individual contributor on the team, I worked across the strategy-discovery stack. At the core was a genetic programming framework for searching the strategy space, fed with 200+ technical and fundamental features and a library of 100+ operations it could compose into candidate strategies, built to evaluate millions of those candidates in parallel. Paired with it was a convex optimization framework that maximized profitability while holding portfolio risk below defined thresholds. A large part of the value was in making that optimizer realistic: we translated the fund's real-world trading rules into convex constraints and encoded them directly into the formulation, so the allocations it produced were not just theoretically optimal but actually executable under those constraints. This improved their profitability by a margin.

Modeling & infrastructure

On the modeling side, we applied a range of time-series techniques — ARIMA models, RNNs and LSTMs, and transformers — to forecast future trends as inputs to the strategies. Supporting all of this was the infrastructure layer: cloud automation that scraped datasets, generated strategies, ran backtests, and surfaced final trade suggestions on a recurring schedule.

To keep strategy development fast and correct, we also built a library of vectorized, time-safe functions covering the operations traders reach for most often — with time-safe being the critical property, since it prevented lookahead bias from leaking future information into a backtest and quietly inflating results.