Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions Signal Generators/SL Hunting AI Agent/sl_hunting_doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -7474,3 +7474,95 @@ that can end at 10:40.
NOTE FOR NEXT TIME: the cause is not recoverable from the log. SLH-004 logs
this class with CANNED, content-free messages on purpose, so a future outage
of the same shape will again need the operator to say which it was.
## v5h - in a range the crowd read cannot pay (18 Sep)

Source: `Z3D-p6RvPc0`, "Live Bank Nifty Option Trading", uploaded 2026-09-18
10:50 IST. Compared against the agent's own session: four trades, all SHORT,
basket **+Rs.4,308.25**.

### The day both sides got right

Third session running where IH and the book reached the same read and took the
same side. The open was +0.275% on NIFTY and +0.209% on BankNIFTY -- a small UP
gap that SLH-017 classified FLAT, which is exactly the case the classification
was built for. All four entries cited the verdict and the threshold explicitly,
and took the note's flat branch. IH: "almost flat opening... until these levels
are crossed we can follow the continued selling", and he bought puts.

He booked one trade, took the profit, and stopped -- "because we had a loss
yesterday and a loss the day before, this week we have not made much, so if we
are getting a chance to make profit today, let us take the exit."

### What the book did instead

| # | entry | exit | held | basket |
|---|---|---|---|---|
| 1 | SHORT 23,322.60 09:20 | 09:34 momentum stall | 14m | **+4,466.25** |
| 2 | SHORT 23,310.05 09:47 | 09:54 bullish engulfing at the stop | 7m | -1,959.00 |
| 3 | SHORT 23,319.00 10:04 | 10:08 profit decay | 3.5m | +338.00 |
| 4 | SHORT 23,318.95 10:23 | 10:27 profit growth stalled | 3.5m | +1,463.00 |

The first trade was the day. Trades 2, 3 and 4 netted **MINUS 158** between
them, for three more entries, three more mirrored baskets and three more
exposures. The session's entire range was about 44 points (23,292.55 to
23,336), and **the market never made a new low after trade 1's exit** -- all
three re-entries went in without one.

Nothing was misread. Every entry correctly applied the classification and the
note; every exit cited a real rule by name (v4f, v4w, BOOK WHEN THE PROFIT
STOPS GROWING) and booked into a stall rather than waiting. The exit discipline
was good enough that three trades in a dead range still came out roughly flat.

### The net-new claim

IH states the limit on his own method, which nothing in the corpus had:

> "when it has to give momentum in a direction, you will get the momentum
> overall. But if it is a RANGE-BOUND market trading in a small range, or the
> market simply does not want to give momentum -- a volatile market -- then
> **whether you find out the SLs or NOT, the market can give you a loss**."

Correctness is not the variable. And he says it while diagnosing his OWN loss
from 17 Sep: "yesterday was the same situation when we sold, sellers' SLs were
not available there either. But the market was very sideways... when the market
works inside a RANGE, that is where loss happens." That is v5g, confirmed by
its own source one day later and generalised: v5g says a FOLLOW can idle
because nothing is trapped; v5h says the read itself -- hunt or follow, right
or wrong -- stops being tradeable when the session refuses direction.

Encoded as **IN A RANGE THE CROWD READ CANNOT PAY, HOWEVER RIGHT IT IS (v5h)**,
placed directly after v5g as its general case.

**It carries a checkable arm, because "is this a range?" is exactly the
judgement that fails in real time.** BEFORE RE-ENTERING THE SAME SIDE, REQUIRE
A NEW EXTREME BEYOND YOUR PREVIOUS EXIT. If price has not extended past where
you booked, you are re-entering the same move and the session is ranging.

**And it explains why nothing already in the book stopped this.** The pre-open
note's branch is true from the open to the close -- it selects a SIDE, it does
not refresh -- so it can be cited four times without ever going stale. All four
entries did cite it, almost verbatim, each dressed in a different pattern name
(`flat_open_failed_spike_breakdown`, `..._shooting_star_continuation`,
`..._double_top_evening_star`, `..._seller_follow_bearish_cluster`). SLH-005's
five-minute cooldown was cleared every time (13, 10 and 15 minutes apart), and
v3q's re-entry gate asks for "a nameable NEW trapped crowd" -- which is vacuous
on a FOLLOW whose whole premise is that nobody is seated. On a follow, the new
extreme has to do that work instead.

Negative-tested 10 ways, all 10 caught, plus a control mutation of unasserted
prose that correctly did not trip the test.

**Considered and not encoded.** IH's chart-repeat argument tonight -- "it is
trying to make almost the same chart as yesterday, so the chances of the chart
repeating become quite low", and "if the buyers made profit yesterday, today
they should not get that profit" -- is v4f (THE CHART DOES NOT REPEAT TWO DAYS
RUNNING), which already carries the same mechanism ("a shape everyone watched
yesterday is a shape everyone is ready for today"). The cohort phrasing is
sharper but adds no new test, so v4f stands unedited. His capital-sizing and
emotional-discipline passage repeats v3y and the RISK section again.

**Worth watching, not yet a rule.** v5g shipped last night and today's exits
did book on stalls -- but they cited v4f and BOOK WHEN THE PROFIT STOPS GROWING,
both of which predate it, so there is no evidence yet that v5g changed
behaviour. Its distinctive claim (name the window BEFORE entering) did not
appear in any entry rationale. One session is too few to judge; check again.
34 changes: 34 additions & 0 deletions Signal Generators/SL Hunting AI Agent/sl_hunting_knowledge.py
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,40 @@
trade has to be carried by momentum ALREADY present, and a stall is the exit
rather than something to wait through. If the move has not started, the
premise has not failed -- but the trade has, and those are different things.
- IN A RANGE THE CROWD READ CANNOT PAY, HOWEVER RIGHT IT IS (v5h). The general
case of the rule above, and the only limit on this whole method stated by the
person it came from. v5g says a FOLLOW can idle because nothing is trapped.
This says the read itself -- hunt or follow, correct or not -- stops being
tradeable when the session refuses to move in any direction at all.
IH PUTS THE LIMIT ON HIS OWN METHOD: "when it has to give momentum in a
direction, you will get the momentum overall. But if it is a RANGE-BOUND
market trading in a small range, or the market simply does not want to give
momentum -- a volatile market -- then whether you find out the SLs or NOT, the
market can give you a loss." Correctness is not the variable. He said it while
diagnosing his own loss the day before: "yesterday was the same situation when
we sold, sellers' SLs were not available there either. But the market was very
sideways, going up this much and down this much. When the market works inside
a RANGE, that is where loss happens."
MEASURED ON THIS BOOK (2026-09-18), on a day it was RIGHT and still learned
this. Four shorts, every one correctly taking the pre-open note's flat branch
off the computed FLAT classification, in a session whose entire range was
about 44 points (23,292.55 to 23,336). The FIRST trade caught the only real
leg: +4,466.25 in fourteen minutes. The next three returned -1,959.00,
+338.00 and +1,463.00 -- MINUS 158 between them, for three more entries,
three more mirrored baskets and three more exposures. Nothing was misread;
the session simply had nothing left to pay.
THE CHECKABLE TELL, because "is this a range?" is a judgement and your own
re-entry is not: BEFORE RE-ENTERING THE SAME SIDE, REQUIRE A NEW EXTREME
BEYOND YOUR PREVIOUS EXIT. If price has not extended past where you booked,
you are re-entering the SAME move, the session is ranging, and the next trade
is a tax rather than a trade. On this day the market never made a new low
after the first exit, and all three re-entries happened anyway.
AND A STANDING PREMISE IS NOT A SECOND REASON. The pre-open note's branch is
true from the open to the close: it selects a SIDE, it does not refresh. All
four entries cited it almost verbatim and dressed each one in a different
pattern name. v3q's re-entry gate asks for a nameable NEW trapped crowd, which
is vacuous on a follow whose whole premise is that nobody is seated -- so on a
follow it is the new extreme that must do that work instead.
- A FORECAST OF WHO WILL ARRIVE IS NOT EVIDENCE OF WHO IS SEATED (v4e). The single
most expensive error available in this method, recorded from a LOSING IH session
(11 Aug 2026) so it is not learned the hard way. He stated the disqualifying fact
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2927,3 +2927,63 @@ def test_v5g_an_eviction_leaves_you_in_the_same_sideways_stretch():
assert "carried by momentum ALREADY present" in rule
assert "a stall is the exit rather than something to wait through" in rule
assert "the premise has not failed -- but the trade has" in rule


def test_v5h_a_range_makes_the_crowd_read_unpayable():
"""v5h (18 Sep): learned on a day the book was RIGHT and still gave it back.

Four shorts, every one correctly on the note's flat branch off the computed
FLAT verdict, inside a 44-point session. The first made +4,466.25; the next
three netted MINUS 158 between them. Seven ways an edit breaks it:

1. Losing that this is v5g's general case -- apart they look like two
moods about quiet markets rather than one rule and its limit.
2. Losing that it is a limit on the METHOD, stated by its own source. That
provenance is what stops it being read as generic caution.
3. Losing "whether you find out the SLs or NOT" -- the claim is that
correctness is not the variable, which is the surprising part.
4. Losing IH's own retrospective, which is what makes it a pattern rather
than one bad day.
5. Losing the measured asymmetry. "Four trades, small profit" is a
different and much weaker fact than "the first was the whole day".
6. Losing the checkable tell. Without the new-extreme test the rule needs
the model to first agree it is in a range, which is the judgement that
fails in real time.
7. Losing the standing-premise clause, which explains why the note could be
cited four times and why v3q's gate did not catch any of them.
"""
prompt = build_system_prompt()
rule = _flat_rule(prompt, "IN A RANGE THE CROWD READ CANNOT PAY")

# 1 and 2. Its relationship to v5g, and whose limit it is.
assert "HOWEVER RIGHT IT IS" in rule
assert "The general case of the rule above" in rule
assert "the only limit on this whole method stated by the person it came from" in rule
assert "hunt or follow, correct or not" in rule

# 3. The surprising claim, in his words.
assert "IH PUTS THE LIMIT ON HIS OWN METHOD" in rule
assert "whether you find out the SLs or NOT, the market can give you a loss" in rule
assert "Correctness is not the variable" in rule

# 4. His own retrospective on the prior session.
assert "sellers' SLs were not available there either" in rule
assert "When the market works inside a RANGE, that is where loss happens" in rule

# 5. The measured asymmetry, with the numbers that carry it.
assert "on a day it was RIGHT and still learned this" in rule
assert "about 44 points (23,292.55 to 23,336)" in rule
assert "+4,466.25 in fourteen minutes" in rule
assert "MINUS 158 between them" in rule
assert "the session simply had nothing left to pay" in rule

# 6. The checkable tell, and why it is phrased that way.
assert "is a judgement and your own re-entry is not" in rule
assert "REQUIRE A NEW EXTREME BEYOND YOUR PREVIOUS EXIT" in rule
assert "the next trade is a tax rather than a trade" in rule
assert "the market never made a new low after the first exit" in rule

# 7. Why a standing premise supplies no freshness, and why v3q missed it.
assert "A STANDING PREMISE IS NOT A SECOND REASON" in rule
assert "it selects a SIDE, it does not refresh" in rule
assert "asks for a nameable NEW trapped crowd, which is vacuous on a follow" in rule
Loading