Áleran Vocals
Piano, entrenamiento con micrófono y juegos de oído para alumnos de canto: notas, escalas, afinación, rango vocal, resistencia e intervalos.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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.