Quant Python: Architecting Autonomous Trading Systems
This course moves you from a coder to a Quant Infrastructure Engineer, focusing on high-concurrency execution and robust risk management.In production, a slippage or a WebSocket delay is the difference between a high-performing alpha and a blown account.
- Indexed issues, last 90 days
- 17
- Latest publication
- Sep 29, 2026
- Audience
- Checking…
- Earliest in this view
- Aug 29, 2026
Latest issues
Day 107 — RSI Math: Coding the Relative Strength Index (opens the original)
Read excerpt
The “pandas.rolling().mean()” TrapHere’s the RSI every junior engineer ships in their first PR:delta = df['close'].diff() gain = delta.clip(lower=0) loss = -delta.clip(lower=0) avg_gain = gain.rolling(14).mean() avg_loss = loss.rolling(14).mean() rs = avg_gain / avg_loss rsi = 100 - 100 / (1 + rs) It compiles. It runs on a static CSV in a notebook. The plot looks like an RSI oscillator — bounded, noisy, crossing 70 and 30 at plausible-looking moments. It gets merged.It is wrong, and it is
Day 106 — EMA Smoothing: Implementing Wilder’s EMA (opens the original)
Read excerpt
The “Standard EMA” TrapHere’s how this usually goes. A junior engineer gets handed the ticket “add EMA smoothing to the ATR module.” They open pandas, write:df["atr_smooth"] = df["true_range"].ewm(span=14, adjust=False).mean() It runs. It produces a smooth line. It ships. Code review passes because the reviewer eyeballs a chart and it looks like every other EMA chart they’ve seen.The bug is in the math, not the syntax. .ewm(span=14) computes a smoothing constant o
Day 105 — Multi-Indexing: Managing Multi-Asset Panel Data (opens the original)
Read excerpt
The “wide-format dict” trapEvery engineer who’s touched multi-asset data has written this once:data = {} for symbol in symbols: data[f"{symbol}_open"] = fetch(symbol)["open"] data[f"{symbol}_close"] = fetch(symbol)["close"] data[f"{symbol}_volume"] = fetch(symbol)["volume"] panel = pd.DataFrame(data) It compiles. It runs. It even backtests fine on 10 symbols. It is also the reason your signal-generation code has a for col in panel.columns: if col.endswith("_close"): block buried
Day 104: Data Merging -- Joining Price and Economic (FRED) Data (opens the original)
Read excerpt
The “just merge_asof it on date” trapHere’s how this goes wrong the first time, every time. You’ve got clean OHLCV bars from Day 101, integer-cent, session-aware, no look-ahead. You want a CPI feature on there because your signal cares about inflation regime. You pull fred/series/observations?series_id=CPIAUCSL, you get back a tidy series indexed by date, and you pd.merge_asof(price_df, cpi_df, on="date", direction="backward"). It runs. The join looks right -- every bar has a CPI value, no NaNs,
Day 103 — GroupBy Analysis: Aggregating Returns by Market Sector (opens the original)
Read excerpt
The groupby().apply() trapHere’s the code a junior engineer ships on the first pass at sector-return aggregation:def sector_bucket(group): total_weight, total_weighted_return = 0.0, 0.0 for _, row in group.iterrows(): if pd.isna(row["log_return"]): continue w = row["shares_outstanding"] * (row["close_cents"] / 100.0) total_weight += w total_weighted_return += w * row["log_return"] return total_weighted_return / total_weight if total_weight else 0.0 df.groupby(["sector"
Publishing over time
Last 90 days. Choose a month to open its work.
Recurring subjects
Named in the text we hold. One piece can cover several.
Audience
No verified audience measurement yet.
About this data
Counts cover the work we have indexed. Tone needs enough text and a confident classification. Excerpts and episode notes are not full articles or transcripts.
Identity or attribution wrong? Suggest a correction.
See coverage about Quant Python: Architecting Autonomous Trading Systems