The Cup & Handle is watch-only: listed, never a buy signal (#109) - #125
Merged
Merged
Conversation
…109) WATCH_ONLY_PATTERNS = ("Cup & Handle",): demote_watch_only marks the rows and reports a cup breakout as WATCHLIST with its age and a note, applied when the report is written so the detector and the replay keep measuring the pattern; the legacy profile has none. The page lists such a breakout under the stocks being watched with "broke out N sessions ago: watch-only" and explains why. Evidence: +0.03 R on 305 cup signals over eleven point-in-time years, 18 % reaching the target. Tests (156), wiki 01, 02 and 03 (constant, ledger), README, changelog. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Cup & Handle becomes watch-only: its rows are still detected and reported, but a cup breakout is never a buy signal.
Evidence (tuning page, the eleven yearly point-in-time runs): cups made +0.03 R per signal on 305 signals with 18 % reaching their target, against +0.23 R for the inverse head and shoulders and +0.43 R for the Wolfe. Two of the first three live losses (BIIB, VRTX) were cups.
How
WATCH_ONLY_PATTERNS = ("Cup & Handle",),legacyprofile: none.demote_watch_onlyruns when the report is written: every cup row getswatch_only, and a cup breakout keeps its levels andbars_since_breakbut is reported asWATCHLISTwith the note "breakout listed for information: watch-only pattern". With that status no consumer treats it as a trade: the evaluator does not track it, the listing rule does not count it, and the page lists it under the stocks being watched with "broke out N sessions ago: watch-only" instead of a distance to the trigger, plus one sentence saying why.tools/backtest.pykeeps measuring cups and the eleven-year figures, which include them, are unchanged; the decision can be revisited with the same tooling.meta.watch_only_patternslists the patterns.Tests (156): the demotion (a breakout listed with its age and note, an un-broken cup unchanged, other patterns untouched, the
legacyprofile without it), the end-to-end scan (the cup fixture now appears on the watchlist with its age,watch_only, and the header sentence), the second run closing it as aWATCHLISTrow, and the page's watch-only cell and glossary entry.Docs: wiki 01 (
watch_only,meta.watch_only_patterns), wiki 02 (the cup's section), wiki 03 (the constant's row and the ledger of adopted values), README, changelog.Closes #109.
Test plan
testsworkflow on this PR🤖 Generated with Claude Code