commit d7949106974415bf70a21b4069188ac4e85ac852 Author: bill Date: Mon May 11 09:54:19 2026 -0700 Initialize trading project — Bill & Colette learning tracks Two-person trading team setup: Bill (quant/algorithmic) and Colette (market observer). Includes phase-by-phase curriculum, separate sprint tracks, trade journal templates, roadmap to prop firm challenge, and agent handoff documentation. Co-Authored-By: Claude Sonnet 4.6 diff --git a/AGENT_HANDOFF.md b/AGENT_HANDOFF.md new file mode 100644 index 0000000..d1a4696 --- /dev/null +++ b/AGENT_HANDOFF.md @@ -0,0 +1,102 @@ +# Agent Handoff Note + +This file is for Claude (or any AI assistant) picking up this project mid-stream. +Read this before touching anything in this repo. + +--- + +## What This Project Is + +Bill and his mom Colette are learning to trade together with the goal of passing a prop firm challenge and managing a firm account for income. + +Bill is a data scientist with ML and cybersecurity/scripting skills. +Colette is new to trading but actively watches financial news and markets. + +They operate as a two-person team: +- **Bill** = quant/engineer — builds models, scripts, backtests, automation +- **Colette** = market observer — spots macro themes, news catalysts, trade ideas + +Colette surfaces ideas. Bill validates them with data. They decide together. + +--- + +## Current State + +- TradingView installed on Bill's Ubuntu Linux machine (`~/trading/` is the project root) +- Both tracks are in **Phase 1 / Sprint 01** — nothing has been built yet +- No prop firm has been chosen yet (decision due end of Sprint 01) +- No asset class has been decided yet (stocks, futures, or forex) + +--- + +## Directory Structure + +``` +~/trading/ +├── README.md ← project overview +├── ROADMAP.md (in shared/) ← timeline, prop firm options +├── AGENT_HANDOFF.md ← this file +├── shared/ +│ ├── ROADMAP.md +│ ├── curriculum/ +│ │ ├── README.md ← team model overview +│ │ ├── bill-track.md ← Bill's 5-phase quant curriculum +│ │ └── colette-track.md ← Colette's 5-phase observer curriculum +│ ├── sprints/ ← shared sprint files (currently empty) +│ └── resources/ ← links, PDFs, reference material +├── bill/ +│ ├── sprints/sprint-01.md ← data pipeline + Pine Script setup +│ ├── journal/template.md +│ ├── backtests/ +│ ├── watchlists/ +│ ├── notes/ +│ └── scripts/ ← Python scripts live here +└── colette/ + ├── sprints/sprint-01.md ← chart literacy (TradingView basics) + ├── journal/template.md + ├── backtests/ + ├── watchlists/ + └── notes/ +``` + +--- + +## Key Decisions Already Made + +- No HFT — target is algorithmic swing/day trading on daily or hourly timeframes +- Paper trading first, then simulated prop challenge passes, then real challenge +- Colette's track avoids heavy math — she communicates ideas in a structured format, Bill backtests them +- Sprint cadence: separate sprints per person, reviewed together + +--- + +## What To Do When Helping + +**For Bill:** He can handle Python, ML, Pine Script, scripting, and data pipelines. +Jump straight to implementation — he doesn't need concepts explained from scratch. +Frame suggestions in terms of data quality, edge validation, and risk math. + +**For Colette:** She reads this repo too. Keep language clear and non-condescending. +Her intuition about markets and news is an asset, not a liability. +When she asks questions, connect the answer to something she already understands. + +--- + +## Next Steps (as of project init) + +1. Bill: complete Sprint 01 — build `fetch_data.py` data pipeline +2. Colette: complete Sprint 01 — TradingView chart literacy exercises +3. Both: decide asset class focus and target prop firm +4. Bill: set up TradingView alerts → webhook pipeline +5. First collaborative milestone: Colette flags a setup, Bill backtests it + +--- + +## Technical Environment + +- OS: Ubuntu Linux +- Shell: bash +- Python: available (venv to be set up in `bill/scripts/`) +- TradingView: installed as .deb +- Git remote: Gitea at borgswarm:3000 +- SSH key: `~/.ssh/id_ed25519.pub` diff --git a/README.md b/README.md new file mode 100644 index 0000000..a636ca1 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Bill & Colette — Trading Project + +## Goal +Learn to trade systematically, build a proven strategy, and pass a prop firm challenge. + +## Directory Structure + +``` +~/trading/ +├── README.md ← you are here +├── shared/ +│ ├── ROADMAP.md ← timeline and prop firm options +│ ├── curriculum/ +│ │ └── README.md ← full phase-by-phase learning plan +│ ├── sprints/ +│ │ └── sprint-01.md ← current sprint tasks +│ └── resources/ ← links, PDFs, reference material +├── bill/ +│ ├── journal/ ← trade log (copy template.md per trade) +│ ├── backtests/ ← backtest results and notes +│ ├── watchlists/ ← saved tickers and setups +│ ├── notes/ ← learning notes +│ └── scripts/ ← Pine Script / Python scripts +└── colette/ + ├── journal/ ← trade log + ├── backtests/ + ├── watchlists/ + └── notes/ +``` + +## Where to Start +1. Read [shared/ROADMAP.md](shared/ROADMAP.md) +2. Open [shared/sprints/sprint-01.md](shared/sprints/sprint-01.md) +3. Work through Sprint 01 tasks together diff --git a/bill/journal/template.md b/bill/journal/template.md new file mode 100644 index 0000000..0eeb320 --- /dev/null +++ b/bill/journal/template.md @@ -0,0 +1,26 @@ +# Trade Journal — Bill + +## Trade Entry Template + +**Date:** +**Ticker:** +**Direction:** Long / Short +**Timeframe:** +**Entry Price:** +**Stop Loss:** +**Target:** +**Risk/Reward:** +**Position Size:** + +**Setup Description:** +_(Why did you take this trade? What did you see?)_ + +**Result:** +- Exit Price: +- P&L: +- Outcome: Win / Loss / Breakeven + +**Review:** +_(Did you follow your rules? What would you do differently?)_ + +--- diff --git a/bill/sprints/sprint-01.md b/bill/sprints/sprint-01.md new file mode 100644 index 0000000..5421b9c --- /dev/null +++ b/bill/sprints/sprint-01.md @@ -0,0 +1,44 @@ +# Bill — Sprint 01: Market Data Infrastructure + +**Track:** Quant / Algorithmic — Phase 1 +**Duration:** 2 weeks +**Goal:** Get a working data pipeline and understand the data landscape before building anything on top of it. + +--- + +## Tasks + +### Environment Setup +- [ ] Create Python virtual environment in `~/trading/bill/scripts/` +- [ ] Install: `yfinance pandas pandas-ta matplotlib sqlite3 requests` +- [ ] Verify TradingView Pine Script editor opens (Chart → Pine Editor) + +### Data Pipeline +- [ ] Write a script that pulls daily OHLCV for a list of tickers via yfinance +- [ ] Store results in SQLite or Parquet in `~/trading/bill/backtests/data/` +- [ ] Handle edge cases: missing data, stock splits, delisted tickers +- [ ] Pull at least 5 years of history for SPY, QQQ, and 3 tickers of your choice + +### TradingView Orientation +- [ ] Write a basic Pine Script indicator (start with a simple EMA crossover) +- [ ] Understand how TradingView alerts work and what webhook delivery looks like +- [ ] Explore the built-in Strategy Tester — understand what the equity curve and metrics mean + +### Research +- [ ] Survey free vs paid data sources (yfinance limitations, Alpaca, Polygon.io) +- [ ] Understand what a prop firm's execution environment looks like — do they support algos? +- [ ] Read one article on walk-forward validation vs simple train/test split + +--- + +## Deliverable +A script (`fetch_data.py`) that: +1. Takes a list of tickers and a date range +2. Fetches OHLCV from yfinance +3. Saves to local storage +4. Prints a summary: rows fetched, date range, any gaps flagged + +--- + +## Notes +_(add as you go)_ diff --git a/colette/journal/template.md b/colette/journal/template.md new file mode 100644 index 0000000..fc1a16a --- /dev/null +++ b/colette/journal/template.md @@ -0,0 +1,26 @@ +# Trade Journal — Colette + +## Trade Entry Template + +**Date:** +**Ticker:** +**Direction:** Long / Short +**Timeframe:** +**Entry Price:** +**Stop Loss:** +**Target:** +**Risk/Reward:** +**Position Size:** + +**Setup Description:** +_(Why did you take this trade? What did you see?)_ + +**Result:** +- Exit Price: +- P&L: +- Outcome: Win / Loss / Breakeven + +**Review:** +_(Did you follow your rules? What would you do differently?)_ + +--- diff --git a/colette/sprints/sprint-01.md b/colette/sprints/sprint-01.md new file mode 100644 index 0000000..93def3a --- /dev/null +++ b/colette/sprints/sprint-01.md @@ -0,0 +1,69 @@ +# Colette — Sprint 01: Chart Literacy + +**Track:** Market Observer — Phase 1 +**Duration:** 2–3 weeks (go at your own pace) +**Goal:** Be able to look at any stock chart and describe what the price is doing. + +No math. No formulas. Just learning to read the picture the market is drawing. + +--- + +## Setup + +- [ ] Log into TradingView (Bill will help with first login) +- [ ] Set chart type to "Candles" and timeframe to "1D" (daily) +- [ ] Add these tickers to a watchlist: SPY, QQQ, NVDA, DXYZ, AAPL + +--- + +## Week 1 — Reading Candlesticks + +A candlestick shows 4 things: where price **opened**, where it **closed**, the **highest** point, and the **lowest** point that day. + +**Tasks:** +- [ ] Watch: look up "how to read a candlestick chart" on Investopedia (read the article, not YouTube) +- [ ] On TradingView, hover over 5 different candles on SPY. Read the open/high/low/close values. +- [ ] Find one green candle with a long wick on top — what does that wick mean? +- [ ] Find one red candle with a long wick on the bottom — what does that mean? + +**Question to answer:** On SPY's daily chart, is the price higher or lower than it was 6 months ago? + +--- + +## Week 2 — Spotting Trends + +A trend is just: is price generally going up, down, or sideways? + +**Tasks:** +- [ ] Look at SPY on a weekly chart (change "1D" to "1W"). Describe the trend in one sentence. +- [ ] Look at DXYZ on a daily chart. When did it spike? What was happening in the news at that time? +- [ ] Look at QQQ. Draw a line (use the Line tool) connecting the recent lows. Is that line going up or down? +- [ ] Compare NVDA and AAPL — which one has been stronger over the last 3 months? + +**Question to answer:** If a stock is making higher highs and higher lows, is that an uptrend or downtrend? + +--- + +## Week 3 — Volume + +Volume is how many shares were traded that day. High volume = people care. Low volume = nobody cares. + +**Tasks:** +- [ ] Find a day on SPY where volume was much higher than usual. What was happening? +- [ ] Find a big up day on any ticker with LOW volume. Is that move trustworthy? +- [ ] Look at DXYZ — was volume high when the price spiked? What does that tell you? + +--- + +## Sprint Milestone + +By the end of this sprint, you should be able to: +- [ ] Look at any chart and say: uptrend, downtrend, or sideways +- [ ] Identify if a candle had a significant wick and explain what it means +- [ ] Explain why volume matters +- [ ] Describe what DXYZ did and why it's risky + +--- + +## Notes & Questions +_(write down anything confusing — Bill can explain or we can look it up together)_ diff --git a/shared/ROADMAP.md b/shared/ROADMAP.md new file mode 100644 index 0000000..ad503a8 --- /dev/null +++ b/shared/ROADMAP.md @@ -0,0 +1,42 @@ +# Trading Roadmap — Bill & Colette + +## Target Outcome +Pass a prop firm challenge and trade a firm account for income. + +## Timeline (estimated) + +``` +Month 1 [Phase 1] Foundations + TradingView setup +Month 2 [Phase 2] Technical Analysis +Month 3-4 [Phase 3] Strategy Development + Backtesting +Month 5-6 [Phase 4] Paper Trading (live simulation) +Month 7 [Phase 5] Prop Challenge Prep +Month 8+ [Phase 6] Challenge Attempt +``` + +This is a realistic timeline if you put in 5–10 hours/week. +Rushing phases 3–5 is the most common mistake — a strategy needs real testing time. + +## Prop Firm Options (to decide by end of Sprint 01) + +| Firm | Challenge Cost | Account Size | Rules | +|------|---------------|--------------|-------| +| Apex Trader Funding | $167 | $50K sim | Popular for futures | +| TopStep | $165 | $50K sim | Futures focused | +| FTMO | ~$155 | $10K | Forex/stocks | +| MyFundedFutures | varies | varies | Futures | + +## Key Principles + +1. **Never risk more than 1% per trade** during paper trading — practice the habit now +2. **Journal every trade** — no journal = no improvement +3. **Backtest before you trust** — a strategy that "feels right" is not a strategy +4. **Paper trading results are optimistic** — live will be harder +5. **Pass 2 simulated challenges before paying for a real one** + +## Current Sprints +→ Bill: [bill/sprints/sprint-01.md](../bill/sprints/sprint-01.md) — Market Data Infrastructure +→ Colette: [colette/sprints/sprint-01.md](../colette/sprints/sprint-01.md) — Chart Literacy + +## Completed Sprints +_(none yet)_ diff --git a/shared/curriculum/README.md b/shared/curriculum/README.md new file mode 100644 index 0000000..b3e1476 --- /dev/null +++ b/shared/curriculum/README.md @@ -0,0 +1,52 @@ +# Trading Curriculum — Overview + +## The Model + +Bill and Colette operate as a two-person trading team with distinct roles: + +| Role | Person | Approach | +|------|--------|----------| +| Quant / Engineer | Bill | ML models, scripts, backtesting, automation, signal validation | +| Market Observer | Colette | News, macro indicators, sector themes, trade idea generation | + +**Workflow:** Colette spots opportunities (news catalyst, macro shift, chart pattern) → flags to Bill → Bill validates with data → team decides → Bill executes or automates + +This mirrors how small prop desks actually work. Neither role is more important — a great model with no ideas is useless, and good ideas with no discipline lose money. + +--- + +## Bill's Track — Quant / Algorithmic + +See: [bill-track.md](bill-track.md) + +Phases: +1. Market data infrastructure (APIs, data feeds, TradingView Pine Script) +2. Technical indicator implementation and backtesting +3. ML signal generation (classification, regression, feature engineering) +4. Strategy automation and alerting +5. Prop challenge execution and monitoring + +--- + +## Colette's Track — Market Observer + +See: [colette-track.md](colette-track.md) + +Phases: +1. Chart literacy and TradingView basics +2. News and macro awareness (what matters, what's noise) +3. Sector rotation and high-level indicators +4. Generating and communicating trade ideas +5. Prop challenge: managing the watchlist and flagging setups + +--- + +## Shared Milestones + +| Milestone | Description | +|-----------|-------------| +| First paper trade | Both place one paper trade and review it together | +| First flagged setup | Colette identifies a setup → Bill backtests it | +| First automated alert | Bill's script triggers on a Colette-identified pattern | +| Simulated challenge pass | Both run through a prop challenge simulation | +| Real challenge attempt | When two simulated passes are clean | diff --git a/shared/curriculum/bill-track.md b/shared/curriculum/bill-track.md new file mode 100644 index 0000000..6546750 --- /dev/null +++ b/shared/curriculum/bill-track.md @@ -0,0 +1,91 @@ +# Bill's Learning Track — Quant / Algorithmic + +**Background:** Data scientist, ML experience, cybersecurity/scripting skills +**Role:** Build and validate — data pipelines, backtests, models, automation, alerts + +--- + +## Phase 1 — Market Data Infrastructure + +**Goal:** Get clean, reliable data into your toolchain + +- [ ] TradingView Pine Script basics — indicators, alerts, screeners +- [ ] Python market data: `yfinance`, `pandas-ta`, `ccxt` (crypto if relevant) +- [ ] Free vs paid data sources — what's actually needed at this stage +- [ ] Build a basic OHLCV data fetcher for a watchlist of tickers +- [ ] Understand data quality issues: survivorship bias, split adjustments, gaps +- [ ] Set up a local data store (SQLite or Parquet) for backtesting + +**Deliverable:** Script that pulls daily OHLCV for a watchlist and stores it locally + +--- + +## Phase 2 — Indicator Implementation & Backtesting + +**Goal:** Implement and test common signals before trusting them + +- [ ] Implement SMA, EMA, RSI, MACD, ATR from scratch (don't just use a library — understand them) +- [ ] Build a simple backtesting loop (vectorized, not event-driven to start) +- [ ] Understand backtest traps: look-ahead bias, overfitting, survivorship bias +- [ ] Walk-forward validation basics +- [ ] Metrics: win rate, expectancy, Sharpe ratio, max drawdown, Calmar ratio +- [ ] Pine Script: build a simple strategy and view equity curve in TradingView + +**Deliverable:** One complete backtest with proper train/test split and metrics reported + +--- + +## Phase 3 — ML Signal Generation + +**Goal:** Apply ML where it actually adds value (not everywhere) + +- [ ] Feature engineering for price data (returns, rolling stats, lagged features) +- [ ] Classification: predict direction (up/down/flat next N bars) +- [ ] Avoid the common traps: data leakage, overfitting short samples +- [ ] Evaluate with financial metrics, not just accuracy +- [ ] Regime detection: is the market trending, ranging, or volatile? +- [ ] Understand when ML helps vs when simple rules beat it + +**Deliverable:** A classifier that outputs trade signals with a documented edge (positive expectancy on out-of-sample data) + +--- + +## Phase 4 — Automation & Alerting + +**Goal:** React to markets without staring at screens + +- [ ] TradingView alerts → webhook → Python handler +- [ ] Build a market watch script (runs on schedule, flags setups from Colette's criteria) +- [ ] Notification system (email, SMS, or Telegram bot) +- [ ] Paper trading automation: auto-log triggered trades to journal +- [ ] Understand execution risk: slippage, partial fills, latency (not HFT, but real) + +**Deliverable:** Script that monitors a watchlist and sends an alert when Colette's setup criteria are met + +--- + +## Phase 5 — Prop Challenge Execution + +**Goal:** Apply the system under challenge conditions + +- [ ] Simulate challenge rules in paper trading: daily loss limit, max drawdown, profit target +- [ ] Risk sizing formula locked in (never manual) +- [ ] Dashboard: daily P&L, drawdown remaining, progress toward profit target +- [ ] Post-trade review script: auto-generate stats from journal +- [ ] Two clean simulated challenge passes before paying + +**Deliverable:** Automated prop challenge tracker with real-time status + +--- + +## Tools & Stack + +| Purpose | Tool | +|---------|------| +| Charting | TradingView | +| Data | yfinance, pandas, pandas-ta | +| Backtesting | Custom vectorized or `backtesting.py` | +| ML | scikit-learn, lightgbm | +| Automation | Python scripts + cron or systemd | +| Alerts | TradingView webhooks + custom handler | +| Storage | SQLite or Parquet files | diff --git a/shared/curriculum/colette-track.md b/shared/curriculum/colette-track.md new file mode 100644 index 0000000..feb0b99 --- /dev/null +++ b/shared/curriculum/colette-track.md @@ -0,0 +1,117 @@ +# Colette's Learning Track — Market Observer + +**Background:** News-aware, macro-focused, strong intuition for market narratives +**Role:** Observe and flag — identify macro themes, news catalysts, sector strength, and trade ideas + +The goal is to build on the market awareness you already have and give it a framework. +You're not learning to trade from scratch — you're learning to translate what you see into +structured ideas that can be tested and acted on. + +--- + +## Phase 1 — Chart Literacy (TradingView Basics) + +**Goal:** Read a chart and understand what it's showing — no indicators yet + +- [ ] What a candlestick shows (open, high, low, close) +- [ ] What timeframes mean (daily vs weekly vs monthly) +- [ ] How to spot a trend (is price making higher highs, or lower lows?) +- [ ] What volume tells you (is this move significant?) +- [ ] How to use TradingView: add a ticker, change timeframe, draw a line +- [ ] What a 52-week high/low means and why people watch it + +**Exercise:** Pull up 3 tickers. For each: is it in an uptrend, downtrend, or sideways? Is volume rising or falling? + +**Milestone:** Can look at a chart and describe what the price is doing + +--- + +## Phase 2 — News & Macro Awareness + +**Goal:** Connect the news you're already reading to what it means for price + +- [ ] What the Fed does and why interest rates matter to stocks +- [ ] What earnings season is and how it affects price +- [ ] What sector rotation means (money moving from tech → energy, etc.) +- [ ] Understanding the difference between a news catalyst and a hype cycle +- [ ] How to cross-reference a news story with the actual chart — was the move already priced in? +- [ ] The DXYZ case study: what premium-to-NAV means, and what the historical pattern looks like + +**Key habit:** When you see a headline or hear a recommendation, check the chart first: +1. Did the price already move before this news broke? +2. What's the proposed exit — where would you get out if wrong? +3. What does the broader sector look like? + +**Exercise:** Read a financial headline and check the chart of the ticker mentioned. Write one sentence: did the chart confirm the story, or had the move already happened? + +**Milestone:** Can explain why the DXYZ premium exists and what historical precedents look like + +--- + +## Phase 3 — Sector & Macro Indicators + +**Goal:** Know the high-level picture before looking at individual stocks + +- [ ] The major S&P 500 sectors (XLK, XLE, XLF, XLV, etc.) and how to track them +- [ ] What the VIX is and what elevated fear looks like on a chart +- [ ] How to read a sector heatmap (TradingView has one built in) +- [ ] What the yield curve is (simplified: are long rates higher than short rates?) +- [ ] Dollar strength (DXY) and its relationship to commodities and international stocks +- [ ] How to identify the strongest sector and focus there + +**Exercise:** Every Sunday, look at the sector ETFs for the past week. Which sector was strongest? Which was weakest? Write it down. Do this for 4 weeks in a row. + +**Milestone:** Can give a 2-minute sector summary each week + +--- + +## Phase 4 — Generating Trade Ideas + +**Goal:** Turn observations into structured, communicable ideas for Bill to evaluate + +A strong trade idea connects what you're seeing in the news or macro picture to what's happening on the chart. + +**Example:** +- Weak: "I read that SpaceX is doing something big." +- Strong: "XLK has been the strongest sector 3 weeks running, NVDA just broke to a new 52-week high on heavy volume, and earnings are in 3 weeks — might be worth a look." + +**Format for flagging an idea:** +``` +Ticker: +Why I noticed it: (news, chart, sector strength) +What the chart looks like: (uptrend / breakout / pullback to support) +Timeframe: (daily / weekly) +Questions for Bill: (anything to backtest or dig into) +``` + +- [ ] Submit 2 trade ideas per week using the format above +- [ ] Review together: did the idea have merit? What happened? +- [ ] Build a personal watchlist of 10–15 tickers you understand well + +**Milestone:** 8 trade ideas submitted, at least 3 that Bill validated as having a testable edge + +--- + +## Phase 5 — Prop Challenge Support + +**Goal:** Be the eyes during the trading day while Bill's system runs + +- [ ] Monitor the watchlist for news that could affect open trades +- [ ] Flag upcoming macro events (Fed meeting, CPI report, earnings) +- [ ] Keep a simple daily log: what happened in the market today (2–3 sentences) +- [ ] Review open positions: is the original thesis still intact? + +**Milestone:** Consistent daily market log for 30 days + +--- + +## Recommended Resources + +| Resource | What It's Good For | +|----------|-------------------| +| TradingView (free) | Charts, sector heatmap, economic calendar | +| Finviz.com | Sector/market overview at a glance | +| FRED (St. Louis Fed) | Real macro data — interest rates, inflation, jobs | +| Investopedia | Clear definitions for any term | + +**A useful filter for any recommendation you encounter:** Does the person showing you this also show you the data behind it? A good idea holds up to a chart check.