Plain-English trading concepts, learned hands-on. This is the human companion to the machine docs (Trading Bot Systems and Strategy Findings) — written the day I first day-traded manually (2026-07-15) instead of only running the bots. Everything here is the same MACD + momentum logic the bots use, explained for a person clicking Buy and Short by hand.
These are two different questions: which way am I betting? (direction) and what am I actually holding? (instrument).
| Bet price UP 📈 | Bet price DOWN 📉 | |
|---|---|---|
| Shares | Long | Short |
| Options | Call | Put |
So a put is the cousin of a short, not of a long. “Long” and “put” are near opposites.
Max-loss is not symmetric — this is the part that matters with real money:
| Position | Worst case |
|---|---|
| Long shares | price → $0. Lose 100%, and that’s the floor. No expiration. |
| Short shares | no ceiling — price can rise forever, loss is theoretically unlimited. Uses margin. |
| Bought option (call/put) | lose the premium only (capped) — but it expires and decays (theta) every day. |
You sell first, buy back later, and keep the difference if the price falls.
Worked example (real, 2026-07-15): short 12 SOXL @ $164.92 → credit $1,979.04. Covered by buying 12 @ $158.95 → cost $1,907.40. Profit = $71.64 in ~8 minutes.
Things to know:
For a short, the protective stop is a buy-stop ABOVE your entry (you cover if it rises) — the mirror image of a long, where the stop sits below.
A stop set at your entry price does not guarantee a zero loss. What you actually pay:
Practical: a stop set right at entry usually triggers immediately on normal noise and churns you out for the spread. Give it a little breathing room.
MACD is a momentum gauge built from moving averages. On the chart it shows three
numbers, e.g. MACD (12, 9, 26) −0.21 −0.65 0.44:
| Number | What it is |
|---|---|
| −0.21 | MACD line — gap between the fast (12) and slow (26) averages |
| −0.65 | Signal line — a smoothed (9-period) version of the MACD line, always lagging |
| 0.44 | Histogram — the gap between them: MACD − signal = −0.21 − (−0.65) = +0.44 |
The bots buy when the MACD line crosses above the signal (histogram flips green → call) and buy a put when it crosses below (histogram flips red).
The histogram is smallest at the crossover and grows as the move plays out. So a big, tall histogram usually means you’re LATE, not early — the move is mostly done.
What matters isn’t the size of the bars — it’s the direction they’re heading:
| Histogram state | Meaning | Read |
|---|---|---|
| Just flipped green, small | fresh bullish cross | best entry |
| Green, growing taller | momentum building | trend healthy, hold |
| Green, tallest | peak momentum, move mostly done | too late to enter |
| Green, shrinking | momentum fading | tighten up, prepare to exit |
| Flips red | bearish cross | exit long — short only if the cross is fresh (see trap below) |
Takeaway: “is it green?” matters less than “did it just turn green, and are the bars still growing?”
The red-flip trap (added 2026-07-18, caught in trainer reps): “flips red” is an exit signal for longs everywhere — but it is a short entry only when the cross is fresh: momentum just crossing zero (not already deep), price just breaking off the top (not $5 into the slide), and not fighting an uptrend day into support. Check momentum’s depth at the moment of the flip: ≈0 and crossing = fresh, tradeable (the 2026-07-17 live short: MACD −0.48, momentum −0.06 → +$21). Already −5 = stale — the laggard confirming a finished move; in an uptrend that’s the bottom of a dip, where the bounce launches (cost two trainer reps + the 07-17 12:16 chase). Same signal, opposite value, decided by how far price has already traveled.
The simplest indicator: current price minus the price N bars ago (Momentum(12) = price now − price 12 bars ago). Centered on a zero line.
−0.61 just means “price is 61¢ below where it was 12 bars ago” — a mild drift down.It’s a rear-view mirror, not a forecast. Negative doesn’t mean it’s about to go bearish — it means it already has been falling. Like the histogram, direction + size beat the raw sign:
Use it as confirmation for the MACD cross: cross + momentum pushing the same way = a committed move. Momentum hugging zero = the move hasn’t committed yet → wait.
Same engine as the bots, two dials changed:
The biggest lesson of day two (2026-07-16), and you spotted it yourself: you use several indicators to get IN, but only one — the fastest — to get OUT. Those are two different jobs.
Why momentum leads and the MACD histogram lags — it’s in the math, not an opinion:
| Gauge | Built from | Speed |
|---|---|---|
| Momentum(12) | raw price now − price 12 bars ago |
instant — it basically is price |
| MACD histogram | a moving average, minus a slower moving average, minus a third smoothing on top | slow — an average of averages, always a step behind |
Momentum is the speedometer. The MACD histogram is that same drive smoothed twice — great for confirming a trend is real, useless for calling the top in real time.
The proof, live (2026-07-16 SOXL long):
Net result: +$15.62 (+1.11%) in 14 minutes on 10 shares. Waiting for the MACD to turn red before selling would have ridden that winner all the way back below the $140.86 entry into a loss. The trailing stop banked it near the top; the laggard never blinked.
The rule: Enter on confluence, exit on the leader. Never ask the slow indicator for permission to leave a scalp — the “confirmation” you’re waiting for is your profit leaving.
The old $25,000 PDT minimum is gone. The SEC approved eliminating it on 2026-04-14; it took effect 2026-06-04 (amendment to FINRA Rule 4210). The “pattern day trader” designation and the 3-day-trades-per-5-days restriction were scrapped, replaced by a real-time intraday-margin framework.
Sources: FINRA Notice 26-10 · Schwab · NerdWallet
Short-sale rejections on volatile days (learned 2026-07-20): a short sale needs the broker to LEND you the shares first. On big-volatility SOXL days (the +8% gap → −6% waterfall session), Robinhood’s lendable inventory runs out or their risk desk flips the symbol to no-new-shorts — then every “market short sell” is Rejected regardless of size (10 and 15 both bounced), while buys and normal sells work fine. It is not your buying power and there is nothing to fix; borrow usually returns when the tape calms. Rule: if the short side is blocked, the answer is “no trade” — never improvise a different way to be short. Expect this on exactly the days shorting feels most tempting. (The “Dec 31, 1969” date in RH’s rejection email is their epoch-timestamp bug — cosmetic.)
SOXL was down ~11% (semis selloff). This scorecard originally logged +$78 across 6 trades and called it a clean green day. It wasn’t a lie — it was the day frozen at its high-water mark. When the P&L-calendar logging bug was fixed on 2026-07-16, the raw Robinhood fills revealed the full session: 16 round-trips, -$139.63. The morning was disciplined; the afternoon was the real lesson.
The arc — every SOXL round-trip, with the running total:
| # | Play | In → Out | P&L | Running |
|---|---|---|---|---|
| 1 | short | 164.92 → 158.95 | +$71.64 | +$71.64 |
| 2 | long | 162.20 → 162.90 | +$9.10 | +$80.74 |
| 3 | short | 158.61 → 159.75 | -$13.68 | +$67.06 |
| 4 | long | 159.61 → 160.92 | +$16.97 | +$84.03 |
| 5 | short | 158.37 → 157.73 | +$8.34 | +$92.37 ← peak |
| 6 | long | 157.98 → 153.76 | -$54.83 | +$37.54 |
| 7 | long | 152.30 → 150.57 | -$22.43 | +$15.11 |
| 8 | short | 150.07 → 152.33 | -$29.32 | -$14.21 |
| 9 | long | 154.53 → 154.87 | +$4.42 | -$9.79 |
| 10 | short | 154.10 → 156.49 | -$31.07 | -$40.86 |
| 11 | short | 157.51 → 159.86 | -$11.75 | -$52.61 |
| 12 | long | 165.15 → 162.05 | -$31.02 | -$83.63 |
| 13 | long | 165.10 → 163.21 | -$9.47 | -$93.10 |
| 14 | short | 162.05 → 163.20 | -$13.74 | -$106.84 |
| 15 | long | 164.99 → 163.44 | -$18.54 | -$125.38 |
Plus one TNA long (72.18 → 71.61, -$14.25), for a true day of -$139.63 across 16 round-trips — 5 wins, 11 losses.
The lesson (§9, paid in full): trades 1–5 built +$92 in under an hour — a clean, disciplined morning. Then ten more round-trips of churn gave back $217 and buried the day at -$139.63. The old scorecard didn’t deceive on purpose; it stopped writing at the peak, the way memory does. This is §9’s “one clean move beats a pile of churn” in the raw — and it’s why Day 2’s rule (bank the one good trade, then stop) matters so much. The money was always this red; the broken ledger was just hiding it behind blank rows.
SOXL was deep in the red (down ~15% on the semis rout) and chopped inside a tight range most of the session. Three trades — and the lessons mattered far more than the +$1.27.
| # | Play | In → Out | Held | P&L |
|---|---|---|---|---|
| 1 | Long — confirmed break | 140.86 → 142.42 | 14 min | +$15.62 |
| 2 | Long — bull trap | 141.22 → ~139.70 | 14 min | −$15.19 |
| 3 | Long — faded a bear trap | 140.29 → 140.37 | 2 min | +$0.84 |
| Net | +$1.27 |
Record: 2 wins, 1 loss, +$1.27 — essentially flat. But flat is a win here: the day included two rookie mistakes (chased a breakout, fumbled a stop) and the rules caught both. Trade 1 was the clean one — full confluence entry, and a trailing stop banked it at the top on the momentum roll (the worked example in §8). Beginners blow up on a day like this; breaking even is the skill showing.
Day 2’s technical lesson — failed breaks (traps) and the closed-bar fix:
A breakout is only real if a bar closes beyond the line. Trade 2 fired when price spiked through the 30-min high intrabar to $141.63 — then instantly collapsed back into the range. That’s a bull trap: a failed breakout that sucks buyers in at the top. Trade 3 was its mirror — a bear trap: price closed below the low, then immediately jumped back above it, trapping the shorts (fading it for the bounce was the correct read).
The fix that dodges both: wait for a 5-minute bar to actually CLOSE beyond the level — don’t chase the wick. A forming bar is a rumor — it flickers green↔red every tick (watched one flip live: a “3rd green bar” turned red mid-sentence). A closed bar is the news. Up to five minutes slower, but it filters out the spikes that reverse. The break-watcher was rebuilt mid-session to demand a closed-bar break for exactly this reason.
The through-line of Day 2: every red mistake was survivable because a rule — a stop, a cut, a filter — was standing behind it. The winners came from waiting for confluence; the losses came from jumping early. Same lesson as Day 1, paid for a second time.
The most violent tape yet: SOXL gapped down ~14% at the open on a Texas Instruments earnings bomb ($117.80 low), staged a full V-recovery back to green ($144), then rolled over again. Thirteen round-trips, both directions, read beautifully. Peaked at +$98.37 – basically the $100/day goal, all from discipline – then gave nearly all of it back in the last 90 minutes. Final: +$2.77.
| # | Play | In → Out | P&L | Stop? |
|---|---|---|---|---|
| 1 | short | 119.34 → 118.17 | +$11.70 | ✓ |
| 2 | short | 117.44 → 117.17 | +$2.70 | ✓ |
| 3 | long — trailed | 126.39 → 131.80 | +$54.10 | ✓ |
| 4 | long | 134.45 → 134.51 | +$0.60 | ✓ |
| 5 | long | 135.72 → 135.68 | −$0.04 | ✓ |
| 6 | long | 133.52 → 134.13 | +$6.10 | ✓ |
| 7 | long — chase | 135.21 → 132.76 | −$36.75 | ✗ |
| 8 | short — trailed | 131.11 → 129.01 | +$31.50 | ✓ |
| 9 | short — trailed | 140.41 → 138.87 | +$21.56 | ✓ |
| 10 | short | 137.71 → 137.44 | +$4.05 | ✓ |
| 11 | short | 137.05 → 136.86 | +$2.85 | ✓ |
| 12 | short — naked, held 21 min | 132.62 → 137.83 | −$78.15 | ✗ |
| 13 | short — naked | 135.45 → 136.55 | −$16.50 | ✗ |
| +$3.72 gross / +$2.77 net |
The whole day in two numbers:
| Trades | Total | |
|---|---|---|
| 🎯 Stop set / trailed / tight-and-fast | 10 | +$135.12 |
| 🔥 No stop – chased, let it run against | 3 (#7, #12, #13) | −$131.40 |
Every winner had a stop. Every loss had none. The stop – just the stop – was the entire difference between a +$135 day and a +$3 day. Trade 12 is the lesson: a naked short held 21 minutes as it ran $5 against it, then panic-covered at the top of the bounce. A buy-stop at $134 caps that at −$21; without one it was −$78. That one missing stop cost $57 by itself.
Two rules, seared in with real money:
The trap to never fall for: when a stopless loss reverts in your favor after you bail (SOXL dropped right back to $134 minutes after the $137.83 cover), the lesson is NOT “I should have held.” It’s “I should have had a stop.” “It came back” is luck – the next one keeps running and wipes you out. The stop removes the guessing entirely; that is its only job.
Still green (+$2.77), still light-years from Wednesday’s −$139.63. The skill is proven – +$135 of it, both directions, on the wildest tape of the week. The fix is the simplest thing in trading: never skip the stop. This was the day that stopped being words and became muscle.
SOXL gapped +8% overnight, ran to +10%, waterfalled −6% intraday, V-bounced, and by the close had given back essentially the whole gap – the second full round-trip in three sessions (Friday’s TXN crash was the mirror). The decade’s finding held again: gap moves fade; the middle of the day is a donation box.
Ledger truth (canonical, from raw RH fills): −$37.44 · 29 round trips · 20W/8L (71% win rate, red day).
| The split | Trades | P&L |
|---|---|---|
| Everything else (reads, scalps, trailed exits) | 26 | +$67.63 |
| Three unprotected slides | 3 | −$131.62 |
The three: −$26.55 (6:50 top-buy, pre-stop era), −$48.97 (the 145.90 15-lot whose sell-stop rejected twice and never got replaced), −$56.10 (20 shares held 44 min through a $2.81 slide, stopless, while distracted by work). One autopsy, three bodies: a position sliding with no working stop. The reads went 20-for-29; the mechanics lost the day.
What worked (milestones, all first-evers):
Mechanics failure catalog (why the Order-Ticket Trainer now exists): 2 shorts
rejected (no borrow, vol day – see §10), sell-stops rejected in the typing race x3,
Qty=1 fat-finger x2, one stop believed-placed that never existed, one marketable-limit
misread. Six distinct failure modes, all now reproduced in
~/Projects/chart_trainer/order_sim.html where they cost nothing.
The new protocol (self-imposed by the trader – the best kind):
Max 5 orders/day (≈ 2 trades + a trail edit) until the gate is passed.
Entries only on a referee ping or pre-placed tripwire – no market clicks.
The stop is part of the entry; the seatbelt indicator never flashes red; every order verified in Open Orders (“the click is not the truth – the account is”).
Gate back to full trading: three consecutive Order-Sim sessions with zero mechanics errors, seatbelt never red, ≤5 orders each.
Session windows: first ~2 hours + the EOD window. The morning trader was +$41 by 9:08; the next four hours gave back −$79. Session length, not the market, took the day.
The sizing ladder (self-authored 2026-07-21, on SPY as the training vehicle): 1–2 shares → 3–4 shares (after one clean day) → 5 shares (after a clean week + the sim gate) → 10 shares (after another clean week). Rungs are earned by clean days, not by calendar; any breaker day drops a rung and the climb is re-earned. Endpoint math: 10 SPY shares × $1.00 trail = $10 risk/trade = exactly one breaker unit. Two companion rules learned the same morning: every trade is a two-order dance (RH has no brackets – entry fills, THEN protection, within seconds; a tripwire that fires unattended = a naked position, so entry orders only rest while at the screen), and trail ≈ 1.5× the instrument’s typical 5-min bar range (SPY ≈ $0.75–1.00; the trail is “peak giveback,” not “loss from entry” – risk is controlled by SHARES, not by strangling the trail).
THE COMPLETE RUNG CARD (clarified 2026-07-22 after a good-faith rules dispute – the order budget existed in the protocol but not in the ladder table the trader consults; a rule not in the player’s rulebook isn’t broken in bad faith):
| Dimension | Protocol-day rule |
|---|---|
| Size | rung maximum (going smaller is always fine) |
| Orders | 5 PLACED orders/day = ~2 trades (entry + protection each) + one adjustment. Auto-fires of resting stops/trails do NOT count; every order YOU submit (incl. cancels-and-replaces’ new order) does |
| Entries | referee ping or pre-placed tripwire, two-key checked |
| Exits | the trail decides, OR named signals spoken before the click (3-signal set; mirror for shorts) |
| Breaker | first red ≥ $10 = session over |
| Vehicle | SPY (+SH for downside, same rules) |
| Clean day | all of the above + zero naked minutes + Open Orders empty when flat |
| Practice days (unlimited reps at 1–2 shares) exist only when DECLARED before the | |
| open – never retroactively. |
Overnight-room rules (written 2026-07-22, cost −$6.02 to learn): stops and trails SLEEP outside regular hours — for longs too. NOTHING protects a carried overnight position; the only seatbelt in that room is being FLAT. Therefore: flatten before stepping away, no exceptions (“work called and I forgot” is the guaranteed failure mode); phone timer at entry; no overnight positions on on-call nights. Day structure that survives a working life: 6:30–8:00 AM = active window (full attention, protocol trades); after 8:00 = long-only (SPY up / SH down) so every position carries a resting sell-trail while work has your eyes.
CARD v2 — THE TWO-ACCOUNT SYSTEM (signed 2026-07-23, supersedes the rung card above): the discovery that broke the deadlock was thinkorswim paperMoney — live data, pro order types (incl. OCO brackets RH lacks), zero dollars. The rep-hunger that kept blowing the order budget (13 placed orders vs 5, three days running) now has a free venue, so the real account becomes a sniper rifle:
| Account | Role | Limit |
|---|---|---|
| Robinhood (real) | sniper | 3 round-trips/day (~7 placed orders; replacements count, auto-fires don’t) |
| thinkorswim paper | gym | unlimited — live tape, all experiments, bracket practice |
| Real-trade requirements unchanged: ping/tripwire entries, protection in seconds, | ||
| trail = 1.5× instrument breath (SPY $0.75–1.00, SH $0.05–0.07), qty checked, | ||
| licensed exits, breaker at −$10, flat+empty before stepping away, overnight room | ||
| = limits only and never carried. Vehicles (real): SPY + SH; QQQ/PSQ paper-only | ||
| until formally added. Ladder v2: promotion now requires a clean AND GREEN | ||
| day (user’s addition); a clean-but-red day HOLDS the rung (honest tuition never | ||
| demotes — it just doesn’t promote); breaker or rule-break days drop a rung. The | ||
| Week-2 gate accepts 3 clean paper sessions from either the Order-Sim or TOS, | ||
| played under protocol rules (≤5 orders, zero mechanics errors, seatbelt never red). |
Perspective: −$37 bought the system’s first end-to-end day, six mechanics lessons, a purpose-built simulator, and a self-authored risk protocol. Wednesday’s stopless lesson cost −$139.63 and taught one thing. This one cost a quarter of that and taught everything else.
First day of the sizing ladder (SPY, 1-2 shares, declared practice day). Ledger truth: +$0.92 net · 28 round trips · 18W/10L · worst trade −$1.26.
The headline number is the tail: Monday’s worst trade was −$56.10 (naked, 44 minutes). Today’s was −$1.26, capped by a resting trail in seconds — a 44× improvement in damage control in one day. Zero naked minutes across 28 trips.
The experiment held again, all day: every licensed action (referee-ping entries, tripwire entries, three-signal exits, exhaustion covers, trail-managed rides) netted green; the three biggest losses (−$1.13 off-vehicle SOXL short against a bull ping, −$1.26 countertrend chase, −$0.86 mumble-fade) were all freelance countertrend twitches. The edge is measurable and it lives entirely inside the license.
What got built today:
spy-watcher / watcher, symbol now an argument) —
removing the SOXL temptation at the source. Referee and plan now aim at one ticker.soxl_rh_watcher.py preserves the quiet option).Ladder status: Rung 1 complete and clean (one asterisk: the pre-agreement SOXL short). Tomorrow = Rung 2: 3-4 SPY shares under PROTOCOL rules — 5 orders max. The unlimited-rep phase is over; the selectivity phase begins.
Ten days after the first manual trade, with the account GREEN on the morning (+$0.38, protected, ended by choice), the trader ran the honest math and chose reality:
The decision: real-money day trading PAUSED by choice – “paper for a long while.” Not quitting; sequencing:
Week 1 totals: ~-$75 net tuition across 10 days, ~110 round trips, six distinct mechanics failure modes found and fixed, a complete risk architecture built (stops -> trails -> brackets -> breakers -> budgets -> two-account system), and one trader who did the arithmetic most people avoid for a decade. Cheapest trading education on record.
The paper-phase re-affirmation, with one negotiated, WRITTEN carve-out – born the morning SOXL crashed -19% and five small with-trend real shorts banked +$4.88 (~0.14% of the account: exactly one day of the evidence pace, which is the point).
Real-money day trades are allowed ONLY when ALL of these hold:
Everything else stays paper (TOS gym unlimited), and the gate (3 clean sessions) still governs any fuller return. Rationale: an honest small allowance kept beats a clean rule broken – the 5-order card taught that; quiet violations train rule-breaking, negotiated exceptions preserve the rulebook’s authority.
§17 lasted two days as written. The ledger audit (2026-07-30) showed the real activity had outgrown it – 25 trades on Jul 29, sizes to 10-13 shares, a 12:58 PM entry – while staying GREEN (~+$35/wk, ~+1% of account, scorecard reconciled against the canonical ledger). Per §17’s own logic (a kept rule beats an outgrown one), the renegotiation happened by STRUCTURE instead of by clause: the day-trading impulse moved to a ring-fenced ~$225 cash account at Schwab (Individual *912).
The deal:
Session 1 (2026-08-03): +$0.51 (+0.23%), no GFVs, quit green by choice. Lessons bought cheap: OCO leg quantity must MATCH the position (+2 in, -1 protected = one naked share); editing a working trailing stop re-anchors it, and dragging any stop to/above the bid fires it instantly as a market order. Homework before the next live session: ten reps of the full routine in paperMoney (buy -> attach OCO -> modify the stop via the OCO group edit) until boring.
Session 1, the OTHER half – the part the sandbox was built to prevent. The same morning, 18 round trips (36 fills, 6:48-8:49 AM MST) ran in the ROBINHOOD MARGIN account, not the sandbox: SOXL +$5.36, TQQQ -$0.18 = +$5.18. Full day across both accounts: +$5.69. Reconciled from raw fills, flat at the close. Stats: 14W/4L (78% win), best +$4.56, worst -$4.64, avg +$0.29/trade, $8,044 notional churned = 0.064% return on churn.
Three things this says, recorded as behavior rather than intention:
No compliance issue from the 18 trades: PDT is gone (§10), so trade count is not
restricted in a margin account. What replaced it is intraday maintenance margin (25%
of long market value); peak exposure here was ~$464, nowhere near a constraint. Note
RH scalp fills DO reach trade_ledger.csv via fill_logger.py, so unlike Schwab this
half of the day is independently auditable.