Inspiration

Options education has a missing middle. Beginners can memorize calls, puts, Greeks, and spreads, but still struggle when price structure, volatility, time decay, liquidity, and account risk collide. Most products either stop at static lessons or jump directly to a trading ticket.

Options Learning Lab connects those two worlds through deliberate practice: learn a concept, apply it inside a compressed historical trading day, manage a virtual position, and receive a process review that does not confuse luck with skill.

What it does

The product combines a structured options curriculum, scenario-based questions, a historical replay terminal, a modeled option chain, and a configurable paper account. Learners can switch among 1-, 5-, and 15-minute candlestick views, draw on the chart, control playback speed up to 8x, write a thesis and invalidation rule, submit limit orders, and practice defined-risk structures.

The simulator tracks whether the learner checked a higher timeframe, left chart evidence, wrote a plan, evaluated risk, and closed every position or order. The final review scores those behaviors separately from profit and loss. Eleven scenarios are freely accessible, so experienced users can skip ahead while true beginners follow the recommended path.

The entire experience is available in English and Chinese.

How I built it

I built the application with React, TypeScript, vinext, Vite, and a Cloudflare-compatible deployment through OpenAI Sites. The replay engine aggregates minute bars into multiple timeframes, advances them at adjustable speed, and prevents rewinding after a decision to reduce look-ahead bias. The order model supports working limit orders, position sizing, stops, targets, timed exits, daily loss limits, and forced end-of-day cleanup.

I used Codex and GPT-5.6 throughout the Build Week refinement cycle to translate my original product vision into code, critique the experience from learner and professional-coach perspectives, design safeguards, implement the simulator and bilingual interface, validate builds, and deploy production iterations.

Important Codex-assisted decisions I made included opening every scenario, separating process quality from P/L, requiring written invalidation before order entry, blocking final reviews while risk remains unresolved, and clearly labeling modeled option quotes.

Challenges I ran into

My hardest challenge was avoiding false realism. Recent underlying minute bars can make a simulator look authoritative even when historical option quotes are modeled. The product therefore labels data provenance, treats quotes as teaching estimates, and avoids implying that modeled fills were available in the real market.

Another challenge I faced was coaching without hindsight. The system records the evidence available when a decision is made, prevents backward time travel after decisions, and evaluates planning and discipline rather than simply rewarding profitable outcomes.

Accomplishments I'm proud of

I turned a broad nontechnical product vision into a functioning bilingual simulator with a coherent curriculum, historical replay, multi-timeframe charts, modeled strategy construction, a realistic order lifecycle, configurable risk controls, and evidence-based review.

The product is intentionally honest: recommendations do not become restrictions, profitability does not prove decision quality, and modeled option prices are not presented as historical truth.

What I learned

I learned that the strongest learning product is not the one with the most strategies. It is the one that repeatedly asks the learner to connect a market thesis to a bounded-risk expression, define what would prove the thesis wrong, and review the decision without outcome bias.

What's next for Options Learning Lab

Next steps include licensed historical minute-level option chains, richer multi-leg strategy construction, adaptive quizzes based on repeated mistakes, and a coach that compares a learner's decision against multiple defensible alternatives rather than presenting one perfect hindsight answer.

Built With

Share this project:

Updates