mirror of
https://github.com/jaxperro/winning-wallet-finder.git
synced 2026-07-27 15:57:47 +00:00
3d0bc7f001
live/: operationalizes the LBS/Yale "skilled ~3%" result against the live data-api. Enumerate recent liquid markets -> top traders -> candidate pool; cache every wallet's resolved bets once in DuckDB (~26k wallets / 12.5M bets, keyed by per-bet resolution time so any cutoff re-scores in seconds); 5-gate skill funnel (n>=15, z>0, BH-FDR, split-half OOS, MM/bot cap); dashboard + daily refresh. Key finding: copying the high-win-rate "favorite-rider" cohort looks +23.6% in-sample but loses -7.4% once selected on pre-June-1 data only (99% -> 68% win rate) — selection bias, reproducing the paper's "lucky winners revert" result on live data. Win rate != edge, again. wide/: bulk subgraph->DuckDB scanner (survivorship-bias-free over all wallets), but the public subgraph is frozen at Jan 2026 -> historical tool only. Large local data (*.duckdb, candidates.json, *_scored.json, history/) gitignored. README + FINDINGS updated with the current logic and the clean result. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
684 B
Bash
Executable File
14 lines
684 B
Bash
Executable File
#!/bin/bash
|
|
# Clean out-of-sample test:
|
|
# 1) re-select skilled wallets using ONLY bets resolved before June 1
|
|
# (selection cannot peek at the June 1+ test window)
|
|
# 2) copy the resulting FAVORITE-rider wallets' June 1+ entries, $1000, no lag
|
|
# This removes the selection contamination of the first backtest.
|
|
set -u
|
|
cd "$(dirname "$0")"
|
|
echo "[clean] $(date '+%F %T') re-scoring candidates on PRE-June-1 data only…"
|
|
SKILL_BEFORE=2026-06-01 SKILL_OUT=watch_prejune.json python3 skill.py 2000
|
|
echo "[clean] $(date '+%F %T') backtest: copy pre-June-1 favorites' June1+ entries"
|
|
BT_WATCH=watch_prejune.json python3 backtest_june.py favorite
|
|
echo "[clean] $(date '+%F %T') done"
|