From c983c1e99ff114479241aa497f14e883ca11b5a7 Mon Sep 17 00:00:00 2001 From: Theodore Song Date: Wed, 19 Aug 2026 14:13:29 -0400 Subject: [PATCH] Require durable evidence before adaptive trades --- README.md | 93 ++++++++++------ index.html | 184 ++++++++++++++++++++----------- package.json | 1 + scripts/evaluate-dominance.mjs | 126 +++++++++++++++++++++ scripts/evaluate-neg-risk.mjs | 4 +- scripts/evaluate-settlements.mjs | 5 +- scripts/evaluate-signals.mjs | 15 ++- sw.js | 2 +- 8 files changed, 320 insertions(+), 110 deletions(-) create mode 100644 scripts/evaluate-dominance.mjs diff --git a/README.md b/README.md index 0771037..0bdac4b 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,18 @@ https://polymarket-site-eta.vercel.app/personal.html The site fetches live Polymarket markets, generates agent suggestions, lets you run frequent paper cycles, and syncs the shared arena state through Neon or -Vercel Blob. Build 61 also installs an offline app shell and caches timestamped +Vercel Blob. Build 62 also installs an offline app shell and caches timestamped market snapshots. During an outage, cycles continue locally; cached entries are allowed for 90 minutes, older snapshots become mark-only, and all cached data expires after 24 hours. -Build 61 ranks the competition by each agent's return since Strategy 50 began. +The live scan now continues through activity-ranked pages until it has the 500 +most-active eligible Yes/No contracts. Markets whose actual outcome labels are +team names, Over/Under, or another pair are rejected instead of being silently +reinterpreted as Yes/No. The same semantic check applies to complete event +bundles and the offline evaluators. + +Build 62 ranks the competition by each agent's return since Strategy 51 began. Historical replay equity remains visible for context, but it no longer makes an agent look like the current leader when the live adaptive strategy is losing. @@ -31,7 +37,7 @@ The learner shrinks small samples toward neutral, caps sizing changes to 15% of candidates for deterministic exploration so a stale regime cannot become permanent. -Strategy 50 treats each binary stake as capable of falling to zero even when the +Strategy 51 treats each binary stake as capable of falling to zero even when the 18% stop cannot fill. New core positions are capped at 2.5%-4% of equity and aggressive positions at 3%-5%, with lower limits for near-term, extreme-price, reversal, and fast-moving setups. Oversized positions inherited from older @@ -40,12 +46,13 @@ The two-agent overlap guard counts only positions worth at least 1.25% of an agent's equity, so tiny profit-lock runners do not block a new material trade. A separate walk-forward ledger records every confirmed signal before its future -price is known, grades it at least 24 hours later, and combines that broad market -calibration with each agent's personal outcomes. This expands the learning sample -without forcing observation-only signals into portfolios or backfilling future -information into old decisions. The 24-hour horizon -matches the engine's minimum ordinary holding policy; stops and profit locks still -act immediately from fresh prices. +price is known, grades it in separate 24-hour and 72-hour windows, and combines +that broad market calibration with each agent's personal outcomes. This expands +the learning sample without forcing observation-only signals into portfolios or +backfilling future information into old decisions. Missed windows expire instead +of borrowing an arbitrarily later price. The 24-hour checkpoint matches the +minimum ordinary holding policy while the 72-hour checkpoint tests persistence; +stops and profit locks still act immediately from fresh prices. The initial seven-day chart seed is an approximate replay, not a live return. It uses only prices available on each simulated date, computes daily and weekly @@ -69,16 +76,16 @@ negative in all three chronological segments. Reversals averaged -3.69%, with a market-clustered 90% interval entirely below zero. Crypto and Sports were also negative but covered only three and five markets. The 24-hour cohort improved to -0.82% row mean and +1.31% market mean, with no rule robustly negative across all -segments. Strategy 50 therefore keeps reversal entries observation-only until +segments. Strategy 51 therefore keeps reversal entries observation-only until their recent signal and quality cohorts independently earn promotion, retains -their signals for paper grading, and evaluates adaptation at 24 hours. +their signals for paper grading, and evaluates adaptation at 24 and 72 hours. The expanded active-market audit loaded history for 498 of the top 500 active markets with no failures and produced 3,597 net-of-cost 24-hour outcomes across 142 markets. No tested follow or fade rule was robustly positive. Crypto trends averaged -3.83% per observation and -3.99% per market; Sports trends averaged -5.44% and -6.61%. Both stayed negative in every chronological segment and their -market-clustered 90% intervals were entirely below zero. Strategy 50 therefore +market-clustered 90% intervals were entirely below zero. Strategy 51 therefore keeps Crypto and Sports trends observation-only while continuing to grade them. The August 18 event-clustered rerun loaded 499 of 500 active markets and produced @@ -87,34 +94,43 @@ The broad mean was -1.14%, the event mean was -1.11%, and the event-clustered 90% interval stayed below zero. No tested category, side, price band, signal strength, or combined feature cohort was robustly positive. Broad trends, YES trends, favorite trends, strong trends, and hour-confirmed trends were all -robustly negative. Strategy 50 therefore makes every directional trend or +robustly negative. Strategy 51 therefore makes every directional trend or reversal observation-only until its own signal, side, and category cohorts each earn positive promotion from recent independent events. This is a strategy reset, so current adaptive returns begin from the portfolio equity at migration. +The final August 19 300-market rerun loaded all 300 eligible Yes/No price +histories without a failure and produced 2,598 twelve-hour observations across +64 independent events. The broad row mean was -0.65% and the event-cluster mean +was -1.71%. The 72-hour event-cluster mean was -3.59% with its 90% interval below +zero, and no tested directional rule was robustly positive. Strategy 51 +therefore requires positive evidence at both 24 and 72 hours rather than +allowing one favorable short-horizon mark to authorize cash exposure. + A corrected 200-market audit paged through 197 markets with usable history and 1,912 twelve-hour outcomes. Reversals remained negative in every chronological segment and averaged -4.13%. Sports trends were negative in train and test and averaged -3.53% at 72 hours. Politics trends were the sole cohort with positive row-level returns in all three 72-hour segments, but its market-cluster interval still crossed zero; that supports a longer hold test, not a larger entry bet. -Strategy 50 gives previously opened Politics trend positions that 72-hour observation window before +Strategy 51 gives previously opened Politics trend positions that 72-hour observation window before ordinary signal exits. Stops, profit locks, settlement handling, and risk-budget reductions remain immediate. -Strategy 50 also subtracts a half-cent round-trip cost when grading each live +Strategy 51 also subtracts a half-cent round-trip cost when grading each live walk-forward signal. Confidence uses the largest independent matching bucket, not the sum of five overlapping feature buckets, and evidence from older engine versions is down-weighted. This prevents a handful of duplicated observations from authorizing larger positions or hiding a modest negative regime. -Strategy 50 adds uncertainty-aware promotion and demotion. A matching setup must -accumulate at least eight effective observations and agree across at least two -feature views before repeatable positive evidence can increase size or repeatable -negative evidence can block a new entry. Mixed evidence stays close to neutral -instead of being mistaken for an edge. +Strategy 51 adds uncertainty-aware, multi-horizon promotion and demotion. A +matching setup must accumulate at least eight effective independent-event +observations, including at least five from the current strategy, and agree across +at least two feature views at both the 24-hour and 72-hour checkpoints before it +can risk cash. Mixed or one-horizon evidence stays observation-only instead of +being mistaken for an edge. -Build 61 enforces the documented offline boundary end to end. Cached snapshots +Build 62 enforces the documented offline boundary end to end. Cached snapshots under 90 minutes old may continue paper execution. Older snapshots remain usable for valuation and chart snapshots for up to 24 hours, but cannot trigger entries, stop-losses, gain-stops, risk rebalances, settlements, or policy exits. Network @@ -127,26 +143,26 @@ adaptive baselines, pending signal grades, and trade evidence remain in one stra lineage until the actual entry, sizing, or exit logic changes. Legacy build 40 and 41 records are migrated into the same strategy lineage without losing evidence. -Build 61 independently refreshes markets for matured pending signals that have +Build 62 independently refreshes markets for due pending signals that have left the current top-500 activity scan. Unavailable markets remain queued for a bounded retry window. This prevents activity-rank survivorship from deciding which wins and losses reach the adaptive calibration ledger. -Build 61 also allocates the 300 pending observation slots by evidence coverage. +Build 62 also allocates the 300 pending observation slots by evidence coverage. Under-sampled signal/side/category cohorts are observed first, followed by under-sampled independent events and market sides, with conviction used only as a later tie-breaker. This prevents the same popular contracts from monopolizing the ledger and gives the learner a realistic path to promote or reject more diverse cohorts. -Build 61 retains safe shared-state provider diagnostics from both reads and +Build 62 retains safe shared-state provider diagnostics from both reads and writes. A device now says `local only` when Neon is paused or a Blob credential is rejected, instead of presenting a local browser save as a successful cross-device sync. Completed cycle statuses retain that `local only` warning until a cloud provider succeeds. Database URLs still fail over across configured Neon aliases without exposing credentials in the API response. -Strategy 50 coordinates high-risk exploration globally. Near-term, extreme-price, +Strategy 51 coordinates high-risk exploration globally. Near-term, extreme-price, and other gap-prone positions may be held materially by only one agent, while ordinary independently confirmed markets retain the two-agent cap. The robustly negative Sports- and Crypto-trend cohorts cannot enter through exploration. @@ -170,15 +186,22 @@ liquid negative-risk events and zero positive worst-case bundle returns after costs. Midpoint price sums sometimes looked attractive, but executable spreads removed the apparent edge. The August 18 rerun found 35 eligible events and one three-leg NO bundle with a 0.25% -modeled margin after estimated costs. The corrected August 19 scan found 39 -eligible events and no currently actionable bundle; its closest complete bundle -remained 0.37% negative after modeled costs. Strategy 50 can paper-trade either a +modeled margin after estimated costs. The final August 19 scan found 49 eligible +events and no currently actionable bundle; its closest complete bundle remained +0.25% negative after modeled costs. Strategy 51 can paper-trade either a complete YES or complete NO bundle only from live executable prices, opens every leg together, and holds the hedge intact until settlement. It also requires at least a 0.15% modeled net return so large bundles cannot tie up capital for a negligible absolute edge. Cached bundle prices are never allowed to open positions. +Run `npm run evaluate:dominance` to inspect logically nested threshold contracts +using executable prices. The corrected August 19 scan tested 807 eligible pairs +across 500 active events and found zero positive pairs after estimated costs. An +earlier parser had mistaken Over/Under outcome labels for Yes/No and reported +false opportunities; the label-aware scanner and live engine now reject that +failure mode. + The expanded event-clustered run loaded history for 498 of the 500 highest-volume resolved markets with no fetch failures. No side, price band, category, trend, or 1-90 day holding rule passed the required train/test confidence checks. In @@ -188,28 +211,28 @@ static settlement-direction boost from this audit. The earlier 200-resolved-market audit found short-dated NO entries strongly negative, but the 500-market rerun did not reproduce that loss in its newer test -segment. Strategy 50 therefore treats the result as a provisional prior instead +segment. Strategy 51 therefore treats the result as a provisional prior instead of a permanent ban: NO entries with 21 days or less remain observation-only until the recent walk-forward calibration promotes their matching side and duration cohorts. Exact numeric-range contracts are excluded from new entries because a settlement jump can pass directly through an 18% stop; the live audit found that this failure mode caused the largest latest-day loss. -Strategy 50 also excludes path-dependent barriers such as "reach $66,000," "hit +Strategy 51 also excludes path-dependent barriers such as "reach $66,000," "hit $90," and "dip to $62,000." These contracts can resolve abruptly as soon as the barrier is touched, so a later hourly stop cannot reliably cap the loss. Fixed-date level questions such as "above $66,000 on August 23" remain eligible. -Strategy 50 clusters live walk-forward observations by Polymarket event before +Strategy 51 clusters live walk-forward observations by Polymarket event and checkpoint before calculating confidence. Multiple six-hour snapshots and correlated outcome markets from the same event are averaged into one effective outcome, so one election or tournament cannot promote or demote an entire feature cohort. -Promotion still requires at least eight weighted event clusters and agreement -across two feature views. +Promotion requires agreement across two feature views at both horizons, with +current-strategy support preventing old lineage data from authorizing a new rule. The pending signal ledger keeps only one ungraded observation for each market and -side. When its bounded queue is full, it preserves the oldest evidence until the -24-hour grade is available and admits new signals in ranked order as space opens. +side. When its bounded queue is full, it preserves the oldest evidence through +the 24-hour and 72-hour grades and admits new signals in ranked order as space opens. This prevents frequent cycles from evicting every signal shortly before maturity. Paper accounts created with a password are also saved through the backend, so a diff --git a/index.html b/index.html index 5bac2b0..b194e71 100644 --- a/index.html +++ b/index.html @@ -341,7 +341,7 @@ footer{margin-top:34px;padding-top:22px;border-top:1px solid var(--border);color