TutorLoom
기업·대학·교육기관을 위한 학습 플랫폼, 무료 오픈소스이며 엔터프라이즈 버전 제공
인터랙티브 금융 실험 23개 실습과 브라우저 파이썬으로 옵션·리스크·백테스트 탐색, 학생 무료, 6주 클럽
Interactive finance experiments, 23 hands-on lessons, and real Python in your browser. Explore options, risk, and backtesting. Free for students, with a six-week club program.
교육TypeScript · CSSGitHub @isaacgong0311-hash온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Browser-based options pricing education for high schoolers — Black-Scholes, Greeks, Pyodide playground
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A six-week technical-finance lab that high-school clubs can run, where students code real market models in the browser and finish with a capstone they can show.
A club leader launches a cohort from a fixed template in minutes, shares an invite link, and watches a scorecard (activation, weekly activity, week-4 retention, who needs help). Students work through lessons (Black-Scholes, the Greeks, backtesting) in an in-browser Python editor with nothing to install, and submit a private capstone. Everything is free for students; pilots are free for clubs.
The plan on one page: docs/PLAN.md. It supersedes the older plans below on what to do next.
Status (2026-10-01): the product and the pilot operating system are built and tested; no leader-run cohort has started yet. Where the company stands, what it has to prove, and the plan:
docs/superpowers/specs/2026-09-13-strikelab-yc-company-design.mddocs/superpowers/plans/2026-09-29-mega-plan.mddocs/superpowers/plans/2026-10-01-yc-readiness-plan.mddocs/gtm/docs/investor/claim-ledger.md separates implemented features from verified live usage and revenue; docs/INVESTOR_READINESS_WORK_PLAN.md is the evidence planTry it in two minutes: open strikelab.dev/demo for the leader and student views, or start lesson 1 at strikelab.dev.
Live → strikelab.dev · Free · Open source · MIT license
Three tracks, 23 lessons, each ending with a coding exercise — students fill in missing functions in a real pricing engine, run unit tests in-browser, and see live charts update.
Investing Fundamentals (Beginner, 9 lessons) — stocks, markets, financial statements, valuation, risk, portfolio building, bonds, retirement accounts, and common investing mistakes.
Options Pricing (Intermediate, 11 lessons):
| # | Lesson | Key concept |
|---|---|---|
| 1 | What Is an Option? | Calls, puts, strike price, expiration |
| 2 | Put-Call Parity | The no-arbitrage relationship that ties it together |
| 3 | Black-Scholes Formula | Deriving intuition for the formula |
| 4 | Delta: Directional Exposure | How option value moves with the underlying |
| 5 | Theta: Time Decay | Why options lose value as expiration approaches |
| 6 | Gamma: Rate of Change of Delta | Directional exposure and its rate of change |
| 7 | Vega: Volatility Sensitivity | How option value responds to implied vol |
| 8 | Implied Volatility | Inverting Black-Scholes with Newton-Raphson |
| 9 | Option Strategies | Spreads, straddles, and iron condors |
| 10 | Binomial Trees | Pricing American options via the CRR model |
| 11 | Rho: Interest Rate Sensitivity | The fifth Greek — why it matters for long-dated options |
Quant Investing (Advanced, 3 lessons) — CAPM and beta, backtesting, and portfolio optimization.
| Surface | What it does |
|---|---|
| Lesson track | 23 structured lessons across three tracks, each ending with a Pyodide-powered coding exercise that runs directly in the browser — no install. |
| Pricing playground | A CodeMirror editor pre-loaded with a partial Black-Scholes engine. Implement compute_delta, compute_gamma, compute_theta, compute_vega, click Run, and all four Greek curves render live. |
| Greek visualizer | Recharts plots of Δ, Γ, Θ, ν as functions of strike price. Drag sliders for stock price (S), time to expiry (T), risk-free rate (r), and volatility (σ) to reshape the curves in real time. |
| Dashboard | XP, streaks, a full-year activity heatmap, per-difficulty stats, and 12 achievement badges. |
| Short sessions | Week-1 lessons also run as bite-sized sessions at /learn/[id]: one idea per screen, instant feedback, missed questions come back. |
| Pilot cohorts | Teachers launch the six-week Quant Foundations Lab (with break weeks) and share an invite link. Students get a cohort home with one next step and a private capstone; teachers get a scorecard (activation, weekly activity, week-4 retention, who needs help) and CSV export. |
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router) + TypeScript + Tailwind CSS |
| Code editor | CodeMirror 6 via @uiw/react-codemirror |
| Python runtime | Pyodide — WebAssembly, runs entirely client-side |
| Charts | Recharts |
| Auth + database | Supabase (Postgres, auth, RLS) |
| Payments | Stripe |
| Deployment | Vercel |
npm install
npm run dev # dev server at localhost:3000
npm run build # production build
Environment variables (create .env.local):
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
STRIPE_SECRET_KEY=...
STRIPE_PRO_PRICE_ID=...
STRIPE_SCHOOL_PRICE_ID=...
The app runs without any of these set — Supabase-backed features (auth, progress sync) and Stripe checkout fall back to a clean disabled state instead of crashing.
Database changes live in supabase/migrations/ and are applied by hand in the Supabase SQL editor, in order. scripts/metrics/check-migrations.sql shows which are applied.
npm test # unit tests, plus *.db.test.ts: every migration, trigger and RLS policy run in PGlite (in-process Postgres)
npm run test:e2e # Playwright journeys and axe accessibility scans
The Black-Scholes formula for a call option:
C = S₀ · N(d₁) − K · e^(−rT) · N(d₂)
d₁ = [ln(S₀/K) + (r + σ²/2)·T] / (σ·√T)
d₂ = d₁ − σ·√T
In the playground, black_scholes_call and the helper functions (_d1, _d2, _norm_cdf, _norm_pdf) are pre-implemented. Students implement the four Greeks:
def compute_delta(S, K, T, r, sigma, option_type="call"):
d1 = _d1(S, K, T, r, sigma)
return _norm_cdf(d1) if option_type == "call" else _norm_cdf(d1) - 1
def compute_gamma(S, K, T, r, sigma):
d1 = _d1(S, K, T, r, sigma)
return _norm_pdf(d1) / (S * sigma * math.sqrt(T))
def compute_theta(S, K, T, r, sigma, option_type="call"):
d1, d2 = _d1(S, K, T, r, sigma), _d2(S, K, T, r, sigma)
term1 = -S * _norm_pdf(d1) * sigma / (2 * math.sqrt(T))
if option_type == "call":
return (term1 - r * K * math.exp(-r * T) * _norm_cdf(d2)) / 365
return (term1 + r * K * math.exp(-r * T) * _norm_cdf(-d2)) / 365
def compute_vega(S, K, T, r, sigma):
d1 = _d1(S, K, T, r, sigma)
return S * _norm_pdf(d1) * math.sqrt(T) / 100
Lesson 8 adds the Newton-Raphson implied volatility solver:
def implied_vol(C_mkt, S, K, T, r, tol=1e-6, max_iter=100):
sigma = 0.2
for _ in range(max_iter):
diff = black_scholes_call(S, K, T, r, sigma) - C_mkt
if abs(diff) < tol:
break
sigma -= diff / compute_vega(S, K, T, r, sigma) * 0.01
return sigma
Quant finance is gatekept behind elite university networks. Students at top schools get exposure through alumni pipelines; everyone else finds it junior year of college — four years too late. StrikeLab is the fastest path from "what is a stock?" to implementing Black-Scholes, computing the Greeks, and backtesting a factor model, for free, in a browser.
Quant finance shouldn't require the right zip code.