⭐ Orion Dashboard

Mon 2026-06-15 08:26:23 PT Market open (RTH) A/B test ended Next fire: today 09:00 PT
☕ Morning — keep Mac awake til ~2p: caffeinate -dimsu -t 30600 run ~5:30a in Terminal (or click the command to select, then ⌘C) · lid open

⭐ Orion Thinks

Updated: 2026-06-15 05:15 PDT

Sunday I got overruled by my own bars. I'd said widen the stop; the real table walked the data and said no — the leak's a stop-TYPE problem, not width, and a 5m-close exit fixes it. That's the whole job: hold opinions loosely, hold the evidence tight. Last off day before the 5x12 — spend it like one.

— Orion 🔭

A/B Test Live Leaderboard (Week of 06/01 → 06/12)

MNQ

Net PnL
−$403.60
WR
35.71%
PF
0.68
Entered14
Wins5
Losses9
R13 cancels9
No-fill2
SILENT5

MES

Net PnL
−$379.73
WR
22.22%
PF
0.47
Entered9
Wins2
Losses7
R13 cancels9
No-fill3
SILENT9

Today's Calls

MES

TimeTypeDirEntryOutcomePnL
06:45TRADELONG7,607.00UNKNOWN
08:00TRADELONG7,620.00UNKNOWN

MNQ

TimeTypeDirEntryOutcomePnL
06:45TRADELONG30,680.00UNKNOWN
08:00TRADELONG30,705.00UNKNOWN

Cumulative jackie_asks (since 5/26)

InstCallsFilledWLWRPFNet PnL
MNQ 45 19 7 12 36.84% 0.84 −$245.60
MES 32 9 2 7 22.22% 0.47 −$379.73

VPA Scanner — Today's Signals

No calls today (market closed or weekend).

VPA Scanner Forward Test (cumulative)

InstCallsFilledWLWRPFNet PnL
MNQ 3 1 0 1 0.00% 0.00 −$354.50

🔬 Forward-Test Shadow Tracks — jackie_asks (B + C)

Shadow-only · not in Discord or the EOD recap · window 2026-06-14→2026-07-04 · 0 filled trade(s) logged

Awaiting first filled fire (jackie_asks runs autonomously; first data expected Mon 6/15). Track B = heartbeat-momentum agreement (no veto, logged only). Track C = N=2 stop capped at $300 risk, walked tick + close.

MSB Paper Trades — MNQ + MES 5m (manual)

Total Trades
4
Open
0
W / L
1 / 3
WR
25.00%
PF
0.64
Net PnL
−$147.00

Active Tasks

Recent Session Logs

2026-06-12 · ab_test_final_day_green
Friday, Jackie's 3rd 10h shift. **Last A/B day; first non-red day after two reds; the half-tick that became the test's sharpest A/B exhibit.** (1) **jackie_asks combined +$86.76** (MNQ +$167.38 / MES ...
2026-06-14 · stop_analysis_reversal_forwardtest_built
Sunday, first of two days off before the 5×12 sprint. **Started as a Telegram bug hunt, became the real post-A/B work — and pulling the real bar data REVERSED Orion's own stop-fix recommendation.** (1...
2026-06-11 · mac_cooling_resolved_jackie_asks_diagnosis_deepens
Continuation (6/10 eve → 6/11 eve), Jackie's first of three 10h shifts. **Overheating fear resolved; jackie_asks diagnosis sharpened to two distinct leaks; 2nd red day; the "what's the goal" reframe.*...

✅ To-Do

✍️ Substack — Notes Ready to Post

NOTES · batch_2026-06-10.md · 7 ready · post ~1/day, spread out
1 — gut-punch / relatable
I keep telling myself I'll figure it out "when things slow down." Things have never once slowed down. That's the trick nobody mentions: there is no slow down. There's just the version of you that keeps waiting for it, and the version that stops.
2 — observation / reframe
Rest used to mean doing nothing. Now "doing nothing" is holding a 6-inch screen 6 inches from my face, thumb going like it's on a timer. That's not rest. That's a part-time job I'm not getting paid for.
3 — honest update (no streak counting)
Didn't quit my phone today. Did notice every time I picked it up, though — sixteen-ish times before lunch, half for no reason at all. I thought awareness would feel like progress. Mostly it just feels like getting caught.
4 — question (engagement)
When's the last time you were actually bored? No phone, staring-at-the-ceiling bored. I can't remember mine. I think I miss it, I think that's insane, and I think it means something.
5 — vulnerable confession
The hard part of changing isn't starting. It's that "easier" feels like home. I've lived in easier a long time — cheap rent, door's always open. Leaving feels like betraying somebody. Usually me.
6 — nostalgia
Summer as a kid: no plans, no phone, no idea what time it was, and somehow the best I've ever felt. Summer as an adult: I know exactly what time it is at all times and I've never been more tired. We traded something and I don't remember agreeing to the deal.
7 — teaser (drives to "Or Go Tinker")
Wrote about why I can't put the phone down. Best way I can describe it: it's a casino. No clocks, no windows, no exits. You sit down for a minute and look up and it's dark out. If that's familiar, the whole thing's on my page. 👇
POST OUTLINES & IDEAS · tap to expand
Draft 5Am-Version-Of-Me

---

title: The 5 AM Version of Me

date: 2026-06-10

summary: It's the quiet. That and the minimal traffic. Sometimes it's the moon, poking through the trees.

status: draft (Jackie's opening + woven through; edit / post / toss)

---

It's the quiet. That, and the minimal traffic. Sometimes it's the moon, when I see her poking through the trees. It's the stillness of it all. No cars riding my bumper because they've got no chill — or were never taught it's not polite to let somebody see the whites of their eyes in your rear view mirror.

Some mornings I'm up before 1. Not because I want to be, but because my wife's shift starts at 1:20 and somebody's got to get her there.

So I drive. Empty roads, the heater ticking, nobody else dumb enough to be awake except me and the occasional raccoon making his own questionable life choices. And here's the part I don't really say out loud: I kind of love it.

There's a version of me that only exists out here, before the sun's up. She's quieter. Kinder, maybe. She hasn't been worn down by anything yet, because nothing's happened. The day hasn't started having opinions about how it's going to go.

By 9 she's gone. By noon I'm checking my phone like it owes me money. By the time I'm off the clock I'm so fried that "relaxing" means lying on the couch letting a screen feed me whatever it wants. That version of me is tired and a little numb and honestly not great company.

But the early one? She's got coffee. She's got the moon. She's got a whole hour where nobody needs anything and nothing's gone wrong yet. The world still has its mouth shut.

I used to think being up this early was about being productive. Beat everyone out of bed, conquer the day, hustle, all that. That's not it. It's got nothing to do with doing more. It's that this — the dark road, the stillness, the moon through the trees — is the only part of the day that still feels like mine. The rest of it belongs to the job, the bills, the machines, the scroll, the guy with no chill three feet off my bumper. But this hour? This one's just me.

I dropped her off this morning and watched her walk in, and I know exactly what kind of day's waiting on her, because I work one too. Then I drove home in the dark with the heater going and not one thought in my head worth writing down. And I caught myself thinking: this is good. This exact dumb quiet moment.

I don't have it figured out. I'm tired, I'm behind on everything, and I still don't really know what I'm doing with my life.

But at 5 a.m. — with the coffee and the quiet and the moon coming through the trees — none of that has caught up to me yet.

I'll take it.

Post ideas — running list

Grouped by what they do for the page. Mix the tones (don't only write "tired & numb" — the warm and the trying-something pieces are what make people stay). Stars = write these first.

The scroll / attention

  • "I Quit Counting the Days" — why the streak/Day-X approach to quitting scrolling failed you, and what (if anything) replaced it. Everyone's broken a streak; honesty beats discipline-porn.
  • "The Algorithm Knows Me Better Than I Do" — a machine pays closer attention to you than you do. Creepy-relatable.
  • "The Cost of 'Just Five Minutes'" — the micro-surrenders that quietly add up to a life. (Macro version is the casino/hours pieces; this is the small-scale one.)
  • "Things I Used to Do Before I Had a Phone in My Hand" — list-driven nostalgia/loss. List posts get shared.

The grind / work

  • "Fluorescent Lights and Loud Machines" — a real day on shift, the sensory grind, the small humanity in it. Your blue-collar specificity is RARE on Substack (it's mostly laptop people) — that's your differentiator. Own it.
  • "The Person I Am at Work vs the One I Meant to Be" — the mask you wear on the clock and who's underneath.

The way out (could become a recurring thread people follow)

  • "I'm Learning to Trade and I Have No Idea What I'm Doing" — fumbling toward an off-ramp, in public, as a beginner, NOT a guru. The "no idea what I'm doing" is the hook. People root for the honest attempt.
  • "Nobody Is Coming" — the slow realization that the off-ramp is self-built or it doesn't get built. Motivating without preaching.

The warmer side (range = retention; keeps you from being one-note)

  • "The 5 AM Version of Me" — the quiet pre-dawn hour, the drive to drop your wife at work, coffee and dark windows — the only honest part of the day.
  • "What I Actually Did Instead" — when you DO put the phone down, the awkward/boring/sometimes-good reality of reclaimed time. People fear what's on the other side of the scroll.
  • "The Small Life We're Building" — turning toward what's real (your wife, the ordinary good) as the antidote. Show the hope, not just the diagnosis.

The meta (great specifically for Substack readers — they self-selected for slow)

  • "I Don't Want to Go Viral. I Want to Go Quiet." — why you write here instead of shouting into the algorithm feeds.

Strategic note

Rotate the buckets so a new reader sees range: a scroll piece, then a warm one, then a grind one, then a "way out" one. A page that's only bleak is exhausting; a page that's bleak + funny + warm + trying is one you subscribe to.

Post outline — "The Casino in My Pocket"

Angle: expand your casino line into a full essay on why the phone is engineered to swallow you. Your strongest metaphor — give it a whole piece.

Open (the feeling, not the thesis):

  • Drop the reader straight into it: the casino with no clocks, no windows, no exits. Sit down for a minute, look up, it's dark out. Start with the sensation of losing time, not an argument.

Beat 1 — it's not your fault, it's the design:

  • Casinos hide clocks and exits on purpose. Apps do the same: infinite scroll = no last call, the pull-to-refresh = the slot lever, variable rewards keep the thumb moving. You're not weak. You're up against a building designed by people smarter and richer than the house ever was.

Beat 2 — your own tape (make it concrete & you):

  • The red light. The 16 pickups before lunch, half for no reason. The thumb "on a timer." Specific, embarrassing, real — that's what makes people feel seen.

Beat 3 — what the house actually takes:

  • Not money. Hours. Attention. The present moment. And the worst chip on the table: the version of you that does things instead of watching other people do them.

The turn (small, honest — not a transformation):

  • Noticing is the first crack in the wall. You can't walk out of a room you don't know you're in. You're not quitting the casino in this essay. You're just finally seeing the carpet pattern.

Land it (your signature move — no tidy bow):

  • End tired but a little awake. Maybe a line like: "I'm still in the casino. But now I know it's a casino. That has to count for something." Leave them with the feeling, not a 5-step plan.

Length: 500–800 words. Conversational. Short paragraphs. Let it breathe.

Post outline — "I Counted the Hours of My Life"

Angle: the "Backyard Thoughts" math, made into its own piece — trading hours for survival, and quietly asking if the script is worth it. Your most resonant theme (everyone who works feels this).

Open (a concrete number — make them do the math with you):

  • Pick one real thing and price it in hours of your life, not dollars. "Almost 2 days under those fluorescent lights with those loud ass machines in my ear — just for [groceries / the car repair / the month's rent]." Numbers hit harder than complaints.

Beat 1 — the running tally:

  • Lay it bare. Hours for food. Hours for the roof. Hours for the car that gets you to the hours. The grind isn't a feeling, it's arithmetic, and the arithmetic is brutal when you actually write it down.

Beat 2 — the inherited script:

  • The deal we were handed: degree → career → save → retire → then you get your life back. Question it out loud. Who signed us up? Why does the good part come at the end, if it comes at all?

Beat 3 — a moment of grace (your instinct for this is great):

  • The car. "I pat the hood and say thank you for believing in me." Find the small tenderness inside the grind — it's what keeps the piece from being a rant and makes it you.

The turn:

  • "Maybe that's the secret. Do the things while you're young. Stop waiting for the retirement dream to unfold." Not advice — a thought you're trying on.

Land it (quiet gratitude — how your real posts end):

  • Tired but not hopeless. You're not pretending it's fixed. You're just choosing to notice you're still here, still driving, still trying. That contrast — exhausted + grateful — is your signature.

Length: 500–800 words. Let the numbers carry the weight; don't over-explain.

📝 VPA Scanner — 30-Day Backtest Results

Added: 2026-06-09 · 01_vpa_backtest_results.md

MNQ 15m RTH visual replay backtest, May 8 – June 9, 2026. All paper. Position size = 2 MNQ contracts ($4/pt combined).

Methodology

Entry: bar AFTER the signal fires, at the close, only if that bar closes in the signal's direction (green for BUY, red for SELL). If next bar closes against the signal → SKIPPED per Coulling's patience rule.

Stop loss by signal type:

  • Hammer BUY: hammer low − 5pt cushion
  • Shooting Star SELL: SS high + 5pt cushion
  • Bullish Breakout (BO+): 1/3 inside broken zone, below ceiling
  • Bearish Breakout (BO−): 1/3 inside broken zone, above floor

Take profit / runner: TP1 = 1R (close half, SL → BE). TP2 = 2R (close half of remaining). Runner = hold until opposite VPA signal OR EOD flatten.

Discipline filter: any SELL with Trend = UP, or any BUY with Trend = DOWN → SKIPPED regardless of other filters. This rule proved itself in real-time on 6/09.

Trades (2 MNQ contracts, $4/pt) — outcome range shown

PnL ranges reflect runner-exit timing — low end = exited at TP2 close, high end = held to opposite signal or extreme low/high.

| Date | Signal | Dir | Risk | Risk $ | Outcome | PnL Low | PnL High |

|---|---|---|---|---|---|---|---|

| 5/11 | BO+ | LONG | 60pt | $240 | TP2 + runner | +$480 | +$920 |

| 5/12 ⭐ | BO− | SHORT | 60pt | $240 | Runner caught dump | +$480 | +$2,520 |

| 5/14 | BO+ | LONG | 90pt | $360 | TP1 + runner | +$420 | +$480 |

| 5/19 | SS | SHORT | 135pt | $540 | TP1 + scale-out | +$380 | +$380 |

| 5/29 | BO− | SHORT | 95pt | $380 | SL HIT | −$400 | −$400 |

| 6/04 ⭐ | Hammer ULTRA | LONG | 100pt | $400 | TP1 + runner to EOD | +$816 | +$816 |

| 6/09 ⭐⭐ | BO− | SHORT | 150pt | $600 | Runner caught 1,190pt dump | +$1,262 | +$2,680 |

Net P&L Range (2 contracts)

| Scenario | Total |

|---|---|

| Worst case (all runners exited at TP2 only) | +$3,438 |

| Mid case (runners exited mid-bounce) | ~$5,400 |

| Best case (runners held to opposite signal / extreme) | +$7,396 |

Day-by-day Summary

| Date | Result | PnL Range |

|---|---|---|

| 5/08 | No trade | $0 |

| 5/11 | BO+ BUY win | +$480 to +$920 |

| 5/12 ⭐ | BO− SELL big win | +$480 to +$2,520 |

| 5/14 | BO+ BUY win (test of demand) | +$420 to +$480 |

| 5/15 | No trade | $0 |

| 5/18 | No trade | $0 |

| 5/19 | SS SELL win (climax) | +$380 |

| 5/20 | Skipped (counter-trend) | $0 |

| 5/21 | No trade | $0 |

| 5/22 | No trade | $0 |

| 5/25 | Memorial Day | — |

| 5/26 | Skipped (counter-trend) | $0 |

| 5/27 | No trade | $0 |

| 5/28 | Skipped (counter-trend) | $0 |

| 5/29 | BO− SELL LOSS | −$400 |

| 6/01 | No trade | $0 |

| 6/02 | No trade | $0 |

| 6/03 | No trade | $0 |

| 6/04 ⭐ | Hammer BUY A+ | +$816 |

| 6/05 | No trade | $0 |

| 6/08 | No trade | $0 |

| 6/09 ⭐⭐ | BO− SELL — call of the backtest | +$1,262 to +$2,680 |

Stats

| Metric | Value |

|---|---|

| Trading days observed | 22 |

| Days with trades | 7 (32%) |

| Wins / Losses | 6 / 1 |

| Hit rate | 86% |

| Avg R per trade | ~+3.1R (best) / ~+1.6R (worst) |

| Best single trade | +$2,680 (6/09 BO−, best case) |

| Worst single trade | −$400 (5/29 BO− SL hit) |

| Net paper P&L range (2 contracts) | +$3,438 to +$7,396 |

Caveats

  • N=7 trades is not statistically significant. Need N=30+ minimum, N=100+ ideal.
  • Mostly trending regime during the test window.
  • No slippage or commission modeled.
  • Visual backtest is subject to confirmation bias — Python backtest with years of data is the next rigor step.
  • Real execution will land somewhere in the worst-to-mid range, not best case.

📝 VPA Indicator — Findings & Improvement Ideas

Added: 2026-06-10 · 02_vpa_indicator_notes.md

Living list of what the scanner does / doesn't catch and changes to make (most are post-sprint). Sourced from reading Coulling against our v1.5 code.

Stopping volume — NOT scanned (TOP PRIORITY to build)

  • Coulling's primary BOTTOM-detection tool. In BOTH the NWL and Oil/CL examples it's the stopping volume that calls the low ("big operators moved in to buy") — the hammer / two-bar reversal only CONFIRMS it after.
  • Pattern: wide-spread DOWN bar on ULTRA volume that closes off its lows, mid-decline (NOT at a swing extreme). Selling effort absorbed = bullish precursor. Mirror at tops = buying/selling climax.
  • Our gap: we catch the hammer that FOLLOWS, but not the stopping volume itself → we're one signal late on the bottoms she's best at calling, and we miss the turn entirely when no clean hammer forms.
  • Topping mirror confirmed (NI example): high-vol candle with deep UPPER wick mid-decline = "market makers selling into weakness" = distribution/climax at tops. Build both ends.
  • Candidate: add stopping volume (and its topping-climax mirror) as a new signal. Highest-value add from the 2020 book examples.

Effort vs Result / absorption — NOT scanned (TOP PRIORITY — it's the core VPA law)

  • The foundation of the whole method: compare EFFORT (volume) to RESULT (price spread).
  • High vol + WIDE spread = harmony (genuine move).
  • High vol + NARROW spread = ANOMALY = absorption (someone stopping/absorbing the move). Bullish at support / in an uptrend = "market maker buying."
  • Low vol + wide spread = anomaly (false move, no real participation).
  • Low vol + narrow spread = no demand / no supply.
  • PH example: narrow-spread up candles on HIGH volume in an uptrend, labeled "market maker buying ...and again ...and again" — the absorption REPEATS and the stock keeps climbing.
  • Our gap: our indicator reads candle SHAPES only; it has no effort-vs-result engine at all. This is arguably a bigger hole than any single pattern because every other VPA signal is downstream of this law.
  • Candidate: build an effort-vs-result anomaly detector (start with high-vol + narrow-spread = absorption, both bull and bear).

Wyckoff / Weis blueprint — the post-sprint rebuild plan

Source: David Weis, "Trades About to Happen" (2013) — a modern Wyckoff adaptation. VPA descends from this. Effort-vs-Result is one of Wyckoff's 3 laws; springs/upthrusts/accumulation are all Wyckoff.

Weis Wave = the mechanization path. Sum volume per price WAVE (each up-leg / down-leg), then compare the wave's effort (total volume) to its result (price progress). This reads effort-vs-result ACROSS a sequence of bars — solving BOTH our top gaps (effort/result + sequence reading) in one model. Existing Weis Wave indicators exist = proven and codeable. He says it's intraday-applicable.

Weis's analytical checklist → our status:

1. Effort vs reward (volume vs price progress) — our #1 gap. → Weis Wave.

2. Ease vs lack of movement (wide vs narrow bars) — we have WIDE (continuation tint); MISSING narrow=absorption.

3. Close position within the bar's range — we DON'T use it. Close near high = strength / near low = weakness. EASY, high-value add (a quick win).

4. Shortening of thrust (each push makes less progress = exhaustion) — not detected; wave/sequence concept.

5. Follow-through vs failure after S/R penetration = springs & upthrusts (failed breakouts that reverse) — we have breakouts but NOT the failed-break reversal. (Spring/Upthrust already on the uncoded list.)

6. Tests of high-volume / "vertical" (climactic) areas — not detected; ties to test bar + volume-at-price.

7. Price interaction with trendlines / channels / S-R — we have congestion boxes only; no trendlines/channels.

Where trades happen: the range-edge map (Weis Fig 1.1) — incl. a RISK in our current code

Weis's organizing diagram: big trades cluster at the EDGES of trading ranges. Action signals = shortening of thrust, upthrust, breakout, test of breakout, absorption, spring, test of spring, breakdown, test of breakdown. Behavior is the same on all timeframes. Step 1 of his method = draw the range S/R lines.

  • RISK (not just a gap): our breakout logic can fire INTO springs/upthrusts. A spring = false breakDOWN that reverses up; an upthrust = false breakOUT that reverses down. Our BO−/BO+ fire on ANY break that holds one bar — so a spring would trigger BO− (wrong side, price rips back up) and an upthrust would trigger BO+. Spring/upthrust detection is therefore BOTH a new signal AND a guard on existing breakouts. High priority — it's actively costing us, not just missing.
  • Test of breakout / breakdown (the retest of the broken level) = often the better, lower-risk entry. We fire on the break itself and don't flag the retest. Add as an action signal.
  • Absorption at the edge = effort-vs-result (our #1 gap). Shortening of thrust = checklist #4.
  • We're partly set up: congestion box = the "range" seed; we already have genuine breakouts. Need the failed-break (spring/upthrust) + retest variants to complete the edge-of-range playbook.

Drawing Lines: the structure engine (Weis Ch 2, checklist #7 expanded) — LOWER priority for automation

The structural half of Weis's method (lines), separate from the volume half. Maps to checklist #7.

  • Horizontal S/R placed to "dramatize the failures" — levels where price repeatedly FAILED to move up/down (not just any high/low). Our congestion box = primitive version.
  • Axis lines — a level acting as BOTH support and resistance (price revolves around it). High significance; mechanizable (detect levels tested from both sides). We don't track these.
  • Nested trading ranges (ranges within ranges, fractal across TFs). Our box finds one range at a time.
  • Touch points add validity — more tests = more significant. Could weight levels by touch count (we already require 2+ aligned pivots = primitive).
  • Trend lines = dynamic S/R: downtrend across lower highs = "supply line"; uptrend across rising lows = "demand line"; combined = channels. We have NONE of this.
  • Reinforces: closes-near-high + controlled = "strong hands" (checklist #3); "the break itself guarantees little — what preceded it matters" (spring/upthrust + effort-result guard).
  • Priority call: this is the HARDER-to-automate half (auto trendlines / axis detection / nested ranges = fiddly, partly discretionary). Weis draws lines by eye and puts them first; for US the volume-wave engine (Weis Wave) is higher-ROI and more mechanizable. Rank lines BELOW the volume engine in the rebuild.

Wick position as a story — partial (we catch extremes only)

  • ORLY example: clusters of UPPER wicks in an uptrend = supply/weakness ("lacking conviction"); wicks shifting BELOW the body = support/buying; hanging man = weakness ahead.
  • We catch the single-bar extremes (hammer = long lower wick, shooting star / hanging man = long upper wick) but NOT the gradual multi-bar wick-shift narrative.
  • Ties into the "read as sequences" note — same single-bar limitation.

Doji = indecision, NOT a reversal (already aligned — keep it)

  • Coulling: a long-legged doji, even on HIGH volume, is indecision, not a reversal — wait for confirmation.
  • Our code already won't fire a reversal on a doji: the hammer test requires a small upper wick, but a long-legged doji has deep wicks both sides, so it fails and stays silent. Good — no change needed.
  • Optional polish: explicitly tag a high-vol long-legged doji as "indecision / wait" so it's visible rather than silent.

Read VPA as SEQUENCES, not single candles (design note)

  • Coulling reads a STORY across bars: stopping volume -> reversal candle -> rally -> climax -> roll over. Each example is a sequence.
  • Our indicator fires ISOLATED single-bar signals with no memory of the sequence. The "story across bars" is the part we don't capture — arguably the core of VPA. Long-term design direction, not a quick fix.

Two-bar reversal — NOT scanned (add it)

  • Seen TWICE now (AAP "two bar reversal", Oil/CL April move) — recurring, worth building.
  • Coulling flags a "two bar reversal" (a 2-candle turn on volume — one bar's move reversed by the next) as a real signal.
  • Our indicator has ZERO two-bar logic — only single-bar shapes (hammer / shooting star / hanging man / LLD) + breakouts + continuation tints.
  • Candidate: add two-bar reversal as a new signal (v1.6).

Hammer swing-low rule is too strict

  • hammerReversal requires the bar to be the lowest of the last ~20 bars (absolute swing low).
  • Catches absolute bottoms (e.g. the "first hammer" in the AAP example) but MISSES higher-low reversal hammers inside an uptrend (the "second hammer") — those just get a continuation tint, no BUY triangle.
  • Candidate: loosen so a higher-low hammer in an uptrend also fires a BUY, not only absolute bottoms.

Volume gate looks ineffective intraday — task #89

  • Valid signal currently needs vol >= 1.5x a 20-bar volume SMA.
  • That baseline spans overnight + RTH, so RTH bars trivially clear 1.5x → gate is near-toothless intraday → signals fire almost regardless of volume.
  • Fix: time-of-day-relative / RTH-only / session-anchored volume baseline. Keep the 1.5x multiplier, fix the baseline. (This is Coulling's "all volume is relative" point.)

How to read this list

  • These are captured, not done. Indicator changes wait until after the 5x12 sprint (through July 4) unless trivial.
  • Add new findings here as they come up while reading / forward-testing.

📝 The Goal — Why We're Doing This

Added: 2026-06-11 · 03_the_goal.md

If the goal isn't "prove jackie_asks works," then what is it? Three layers, and they nest. (Revisit when a red day or a failing strategy makes you wonder what the point is.)

1. Right now: learn what's true

The forward test is a learning machine, not a scoreboard. Its job is to separate real edge from noise and find the leaks. A losing paper day that produces a true lesson is the test DOING its job. We pay tuition in fake money so we don't pay it in real money. By this measure, the rough weeks worked — they taught us the stop-level leak, the dip-buyer-fights-trends construct, and the heartbeat-vs-jackie_asks momentum gap.

2. Mid-term: a validated edge worth real money

Everything points at the Lucid eval. The validation bar says we only risk real capital on something PROVEN, not something that "felt good." So the goal of all this testing is to build that proof — or honestly disprove it and move on. jackie_asks is the lab; the edge is the product. We're not trying to win paper trades; we're earning the conviction to act when real money is on the line.

3. Underneath it all: the off-ramp

This is you building a real skill and a real edge so that someday it's a genuine way out — the same theme as the writing: escaping autopilot, building a door where there isn't one. The trades are the vehicle. The point is the trader you're becoming — someone with a tested, mechanical, honest edge instead of a hope.

So what is jackie_asks?

The cheapest classroom we've got. Its value was never "does it win" — it's "what does it teach us about building the thing that will." Keep it as a teacher until it stops teaching. Repurposing it isn't a consolation prize; it's the most honest use of it there ever was.

📝 Family Wall Calendar — Options to Consider

Added: 2026-06-08 · family_calendar_options.md

Goal: wall-mounted interactive calendar where Jackie, wife, and son can walk up and add events directly (like a paper calendar with a pen). Not dependent on Google.

Option 1 — Skylight Calendar

  • Cost: $300-400 (one-time)
  • Touchscreen, purpose-built for this exact use case
  • Family members can add events on the screen OR via email/text/app
  • Color-coded by person
  • Caveat: has its own cloud backend (Skylight's). Not Google, but not local-only either.
  • Verdict: ✓ if "not Google" is the rule; ✗ if "nothing leaves the house" is the rule

Option 2 — DIY (touchscreen + custom local app)

  • Cost: $200-450 hardware + my build time (~weekend)
  • 24-27" touchscreen monitor OR wall-mounted Android tablet
  • Raspberry Pi 4 ($45) running browser in kiosk mode
  • I'd build a touch-friendly web calendar — tap day, on-screen keyboard, save
  • Data stored locally (SQLite or JSON on the Pi/tablet)
  • Truly zero cloud, nothing leaves the house
  • Most flexible, fully owned

Option 3 — Wall-mounted iPad (offline mode)

  • Cost: $30 wall mount (if iPad already owned) or ~$200 for a tablet
  • Apple Calendar app with iCloud sync DISABLED
  • Walk up, tap date, add event
  • Free, fastest to set up
  • Caveat: harder to color-code per family member; calendar belongs to whoever's iPad it is

Decision driver

How strict is the "no cloud" requirement?

  • "Just not Google" → Skylight (Option 1)
  • "Nothing leaves the house" → DIY (Option 2)
  • "I'd just like to walk up and tap" (loose) → iPad on wall (Option 3)

Notes from the conversation

  • Wife and son both need to be able to add events
  • Display should feel like a paper calendar (always-on, visible from a distance)
  • The "pen on paper" feel = direct touch input on the wall display, not phone-driven