Behavioral Finance & Microstructure
The Hour Between Dog and Wolf: Risk Taking, Gut Feelings and the Biology of Boom and Bust
Coates, a trader turned neuroscientist, argues that a run of wins and a long stretch of stress change a risk-taker's body, and that the body then changes the size of the bets. For an investor the practical point is to log position size against the streak you are on, before the streak does the sizing for you.
The big picture
John Coates spent years running a derivatives trading desk on Wall Street before moving into neuroscience research at the University of Cambridge. The book sets out what he found on both sides of that move: risk taking is not only a thinking task but a physical event. Before and during a bet the body prepares for action, and its signals reach judgment as gut feelings. The title is the French expression for dusk, when the light makes it hard to tell a dog from a wolf; Coates uses it for the point at which a steady risk-taker becomes a different person under a winning run or a long losing one.
The research behind it includes a study he ran with Joe Herbert on a London trading floor: 17 traders gave saliva samples twice a day for eight business days. Morning testosterone was higher on days with above-average profit, and cortisol, the main stress hormone, rose with the variability of the traders' results and of the market. The sample was small, and the book extends it with animal and clinical research. Coates then argues that these responses, repeated across a whole market, push bull markets toward euphoria and bear markets toward paralysis. Why it matters now: after a long run in AI-linked stocks, many investors have spent more time winning than losing. The observable trace of that, size and rule-keeping against the recent streak, can be logged without measuring anything biological.
The 3 strategic pillars
-
The winner effect
Winning changes the winner. In the book's research framing, a win raises testosterone, which raises confidence and appetite for risk, which makes the next win more likely, up to the point where confidence outruns judgment.
In animal contests the winner of one bout is more likely to win the next; Coates finds a similar pattern in traders' morning hormone levels. Past a certain level the effect turns: risk looks smaller than it is, positions get bigger, rules get bent. The journal cannot see hormones, but it can see the behaviour: the pack compares your gross exposure with your own 10-day average and flags days when it sits 25% or more above that average after three or more straight wins.
-
Chronic stress and freezing
A short stress response sharpens performance; a long one wears it down. Uncertainty that will not resolve keeps cortisol high, and prolonged high levels make people see danger everywhere and pull back from risk.
Coates stresses that what drives the response is less the loss itself than novelty, uncertainty and a lack of control. After weeks of it, a trader may cut risk exactly when prices are cheapest, and a whole market may stop responding to cheap money. In the pack, the mirror image of the winner flag is FREEZE: exposure 30% or more below your own baseline after three or more straight losses, read next to your 1–10 stress rating and last night's sleep.
-
Gut feelings as data
Signals from the body, a faster pulse, tension, the feeling that something is off, carry real information about risk, but their quality depends on the state of the body that produces them.
The book treats sleep, fatigue and physical fitness as part of risk management rather than private matters, and argues that trading floors made up of people with similar biology, mostly young men, amplify the swings. The individual version is plain: record the state you trade in and check whether the gut feeling behind a big position arrived on a rested day or at the end of a long winning run. The pack's TIRED AND STRESSED flag marks days with stress of 7 or more after less than six hours of sleep.
What a Closelooknet reader does with it
The working use is a short entry after each close: hours slept, stress and confidence on a 1–10 scale, the day's P&L, gross exposure, number of trades and how many of your own written rules you broke. After a few months the pack groups those days by the streak you carried into them and shows the averages side by side. If your exposure ratio averages 1.4 after three wins and 0.95 after a single win, size is following the streak rather than your plan. If it drops to 0.6 after three losses while your stress rating averages 8, that is the freezing pattern. The mistake it prevents is treating either state as judgment: both feel like clear thinking from the inside, and only the log shows them from the outside. The pack records behaviour only; the hormone story is the book's explanation, not something the journal measures.
The bridge to the Closelooknet approach
On the shelf, Thinking, Fast and Slow covers the judgment errors that the body's state feeds, and Misbehaving shows how the same errors survive in markets. The Alchemy of Finance describes the boom-bust loop at market level; Coates adds a physical reason why participants keep feeding it. The glossary entries on loss aversion and drawdown give the two numbers most likely to trigger the stress loop, and the Kelly criterion is one way to write down a size rule before a streak starts. For the crowd's state, Money Temperature and the temperature dashboard measure how hot the market as a whole is running, the aggregate of many individual winner effects.
Action-Kit — from theory to practice
Tooling & data
| What you need | Where to get it | Cost |
|---|---|---|
| Tradervue Trade journal that imports fills from many brokers and tags trades, so the P&L, trades and exposure columns do not have to be typed by hand | Tradervue The free plan has a monthly trade limit; the more detailed reports sit in the paid plans. | Freemium |
| Edgewonk Trading journal with custom fields for emotional state and rule breaks next to each trade | Edgewonk | Paid |
| Oura Ring Sleep duration from a wearable instead of an estimate, for the sleep_hours column | Oura A phone's built-in sleep tracking is a free alternative. Wearables do not measure testosterone or cortisol either. | Paid |
| Spreadsheet Run the pack's journal and summary | Microsoft Excel, LibreOffice Calc or Google Sheets The workbook uses standard functions (COUNTIF, AVERAGEIFS, CORREL, SLOPE, INDEX). | Freemium |
The formulas
-
Streak entering the day
s_t = 0 if pnl_t = 0; s_t = s_{t−1} + sign(pnl_t) if sign(pnl_t) = sign(s_{t−1}); otherwise s_t = sign(pnl_t). prior_t = s_{t−1}- pnl_t — the day's P&L; only its sign is used
The analysis always uses prior_t, the streak you knew about when you sized, never the day's own result.
-
Exposure ratio
ratio_t = E_t / mean(E_{t−N} … E_{t−1})- E_t — gross exposure (longs + |shorts|), measured the same way every day
- N — baseline window in days (10 by default)
1.00 is your own normal size; the ratio compares you with yourself, not with any benchmark.
-
Size-creep and freeze flags
SIZE CREEP if prior_t ≥ L and ratio_t ≥ 1 + c; FREEZE if prior_t ≤ −L and ratio_t ≤ 1 − f- L — streak length (3 days)
- c — creep threshold (0.25), f — freeze threshold (0.30)
Pack defaults, not values from the book, which gives no formula. Adjust them to your own history.
-
Streak sensitivity
r = CORREL(prior, ratio); b = SLOPE(ratio on prior); plus average ratio, rule breaks and stress per streak state- prior and ratio columns from the journal
- streak states: hot streak, after win, neutral, after loss, cold streak
b = 0.08 means exposure rises by 8% of baseline for each extra winning day carried in. A few months of data is a small sample; read the direction, not the decimals.
Applied Pack · free members
Coates Applied Pack
A stress and exposure journal for your own trading: log sleep, stress, size and rule breaks each day, then see whether size creeps up after wins or freezes after losses.
- Coates_Stress_Exposure_Journal.xlsx — READ ME, a Settings sheet (baseline window, streak length, creep and freeze thresholds, stress and sleep levels), a Journal sheet with live formulas for streaks, exposure ratio and flags, and a Summary sheet with averages by streak state, correlations and flag counts (78 EXAMPLE rows included)
- coates_journal.py — stdlib-only CLI: reads your journal CSV and prints the daily table, the streak-state averages, correlations and flag counts, with the same results as the workbook
- journal_sample.csv — 78 synthetic EXAMPLE_ days in the expected format
- README.txt — inputs, definitions, how to read the results, limits, and the educational-use disclaimer
Pack security
Macro-free Excel · plain-text Python you can read before you run it · no installers, no network access — the code works only on files you provide. Served only from closelook.net; we never distribute through download portals or email attachments. How to verify in 30 seconds →
SHA-256 0c91078f92e154f052684a5b333b2c6a06de99d466089f37a9734d6202abe7d1
The pack is a free-membership download — no card, free forever. Membership also delivers the Daily Pulse and Weekly Signal to your inbox.
Join the Look — free → Already a member? Sign in →
Educational templates — a research diary companion, not investment advice.
Closelooknet publishes a market diary, not investment advice. This condensed read restates the book's ideas in our own words for education — for the author's full argument, go to the source.