feat: extend take-profit sweep into the tail + clarify it ignores the target
Deploy / lint (push) Successful in 6s
Deploy / test (push) Successful in 55s
Deploy / deploy (push) Successful in 33s

Avg R was still rising at the previous top level (+15%), so the optimum was off
the table. Extend TP_LEVELS to 20/25/30% to reveal where letting winners run
stops paying (it plateaus toward "just hold to the horizon close").

Also clarify in the panel that the take-profit model deliberately does NOT use
the setup's S/R target — it's a standalone fixed-% exit; exiting at the target is
the target-vs-stop model above. The two are complementary ends, not in conflict.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-30 17:14:54 +02:00
parent c63951ca02
commit c5f6b07a3e
2 changed files with 6 additions and 2 deletions
+4 -1
View File
@@ -322,7 +322,10 @@ def _bucket_stats(cands: list[dict]) -> dict:
# Fixed take-profit levels (fractions) swept for the take-profit exit model.
TP_LEVELS = (0.04, 0.06, 0.08, 0.10, 0.12, 0.15)
# Extended into the tail so the avg-R peak/plateau is visible (it's where letting
# winners run stops paying). Note: this model ignores the setup's S/R target —
# it's a standalone fixed-% exit; exiting at the target is the target model.
TP_LEVELS = (0.04, 0.06, 0.08, 0.10, 0.12, 0.15, 0.20, 0.25, 0.30)
def _take_profit_bucket(cands: list[dict], tp: float) -> dict: