Concentrate-by-rank sizing mechanism (goal #1) — built, gated OFF
The human's edge is concentration (4 trades on 1 name) vs the bot's 12-trade spray. Added the mechanism: TRADING_CONCENTRATE_TOP_N (only the top-N armed names by rank may enter; rank-1 full risk, rank-2+ half) + TRADING_MAX_FRESH_ENTRIES_ PER_DAY (hard daily cap). rank threaded from the armed trigger -> submit_breakout_ now -> scales both the % budget and the $500 cap by rank_risk_factor. LEFT OFF by default (both 0): activating it meaningfully requires the rank key to be QUALITY, but the armed rank is currently gap*rvol*catalyst. Verification also found the roadmap's "quality_score" is calculate_data_quality_score = bar coverage/integrity (a thin-name/liquidity proxy with a time-of-day confound), correlated only weakly (q>=0.55 = 58% win / breakeven, NOT the 71% claimed; q<0.55 = 35% win / -$2,476). So concentration waits on a sound rank key (goal #2). pure rank_risk_factor + tests. No behavior change until the env flags are set. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
c3dc1b1677
commit
a86fa43aa7
4 files changed
+63
-6
No files matched your search
+1
-1
@@ -749,7 +749,7 @@ def main(argv: list[str] | None = None) -> int:
|
||||
res = rt["execution"].submit_breakout_now(
|
||||
t.symbol, t.trigger, t.stop, last_price=t.price,
|
||||
cum_volume=t.cum_volume, halted=_recently_halted(t.symbol),
|
||||
day_open=t.day_open,
|
||||
day_open=t.day_open, rank=t.rank,
|
||||
)
|
||||
if res.get("ok"):
|
||||
book.mark_fired(t.symbol)
|
||||
|
||||
Reference in new issue
Block a user