Inspiration

Quantitative investing tools often show attractive charts without making it clear how a strategy was constructed, what data was used, or whether the result can be reproduced.

I built Factor Orbit to explore a different approach: an evidence-first quantitative research workspace where every strategy is transparent, every assumption is visible, and unsupported data is never silently replaced with fabricated inputs.

The project focuses on four markets: China, the United States, Australia, and South Korea.

What it does

Factor Orbit lets users:

  • Explore four markets through an interactive 3D globe.
  • Select one or multiple markets.
  • Build factor strategies using Momentum, Low Volatility, and a clearly labeled Liquidity Size Proxy.
  • Configure portfolio size, rebalancing frequency, weighting method, position limits, and transaction costs.
  • Review the complete strategy request in plain English and structured JSON.
  • Run reproducible backtests.
  • Inspect returns, volatility, Sharpe ratio, information ratio, drawdown, turnover, yearly performance, holdings, and rebalance records.
  • Store research cases together with their configurations, verdicts, and supporting evidence.

Value, Quality, and Dividend factors remain unavailable in the public demo because the project does not fabricate cross-market point-in-time fundamental data.

Factor Orbit is a research demonstration and not investment advice.

How I built it

The project uses a shared web and API architecture:

  • Next.js, React, and TypeScript for the frontend.
  • FastAPI and Python for the backend.
  • DuckDB and Parquet for offline analytical data access.
  • Three.js and react-globe.gl for the interactive market globe.
  • Shared contracts for market data, strategy requests, backtest results, and research evidence.
  • Automated tests, integrity checks, and a sanitized public export process.

The public demo uses deterministic synthetic securities and clearly separated data classifications so that the experience remains reproducible without exposing private data or credentials.

Almost the entire project was completed with Codex powered by GPT-5.6, including the architecture, frontend, backend, data contracts, strategy builder, backtesting engine, research library, tests, documentation, and secure public packaging.

I used High reasoning for most implementation tasks and reserved Extra High reasoning for architecture decisions, financial logic, data boundaries, and final reviews. This allocation worked well, although the total usage was somewhat higher than I initially expected.

The final Chinese and English translation pass was the only part completed outside Codex.

Challenges

The biggest challenge was balancing product completeness with research honesty.

Real point-in-time financial data is difficult to normalize and redistribute consistently across four markets. Instead of silently substituting synthetic fundamentals, Factor Orbit keeps unsupported factors visibly unavailable.

Other challenges included:

  • Preventing look-ahead bias.
  • Keeping market currencies and benchmarks separate.
  • Building reproducible offline backtests.
  • Preserving strategy and evidence traceability.
  • Creating one shared experience across the globe, builder, results, and research pages.
  • Producing a sanitized public package without private A-share data, credentials, local paths, or restricted artifacts.

What I learned

I learned that an AI coding agent is most effective when the project is divided into explicit phases with clear acceptance criteria, protected boundaries, and automated verification.

Codex was especially valuable for long multi-file implementation tasks, architecture reviews, test generation, and release preparation. I also learned that higher reasoning levels should be reserved for the parts where mistakes are most expensive, rather than used uniformly across every task.

Most importantly, I learned that a trustworthy quantitative research product should make its limitations as visible as its results.

Built With

Share this project:

Updates