mirror of
https://github.com/jaxperro/winning-wallet-finder.git
synced 2026-07-28 00:07:47 +00:00
copybot: whale class follows ALL trades — no conviction floor
Whale-class wallets bypass min_their_usd and per-wallet floors entirely: both current whales win ~92% across their ENTIRE book (Stavenson 469-39, 0x4bFb 862-72 all-time trusted; 99.2% last 30d for the whale), so size-filtering them only costs flow. The 0.95 entry cap stays (execution guard, validated). Floors removed from the paper config for both. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -248,10 +248,18 @@ class FollowFilter:
|
||||
self.per_wallet = {k.lower(): float(v) for k, v in f["per_wallet_min_usd"].items()}
|
||||
self.min_entry = float(f["min_entry"])
|
||||
self.max_entry = float(f["max_entry"])
|
||||
# whale-class wallets (follow.wallet_class) are followed on EVERY trade:
|
||||
# no conviction floor at all — their whole book is the signal (both
|
||||
# current whales win ~92% across all bets, so size-filtering them only
|
||||
# costs flow). The entry-price band still applies (execution guard).
|
||||
self.whales = {w.lower() for w, c in (f.get("wallet_class") or {}).items()
|
||||
if c == "whale"}
|
||||
wl = cfg.get("watchlist") or [w["wallet"] for w in cfg.get("watch", [])]
|
||||
self.wallets = {w.lower() for w in wl}
|
||||
|
||||
def floor(self, wallet):
|
||||
if wallet.lower() in self.whales:
|
||||
return 0.0
|
||||
return self.per_wallet.get(wallet.lower(), self.min_their_usd)
|
||||
|
||||
def check(self, wallet, t):
|
||||
@@ -274,8 +282,9 @@ class FollowFilter:
|
||||
|
||||
def describe(self):
|
||||
pw = f" · {len(self.per_wallet)} per-wallet floors" if self.per_wallet else ""
|
||||
wh = f" · {len(self.whales)} whales follow-all" if self.whales else ""
|
||||
return (f"follow filter · {'BUY-only' if self.buy_only else 'BUY+SELL'} · "
|
||||
f"conviction ≥ ${self.min_their_usd:,.0f}{pw} · "
|
||||
f"conviction ≥ ${self.min_their_usd:,.0f}{pw}{wh} · "
|
||||
f"entry [{self.min_entry:.2f},{self.max_entry:.2f}]")
|
||||
|
||||
|
||||
|
||||
@@ -50,8 +50,6 @@
|
||||
"0x86c878cde72660ec52f5e6f0f0438b76de8fc867": 970.0,
|
||||
"0x41558102a796ba971c7567cad41c307e59f8fa41": 231.0,
|
||||
"0xd96750bf8d941a8186e592b0ae6e096da66aa266": 115.27,
|
||||
"0xf5fe759cece500f58a431ef8dacea321f6e3e23d": 1000.0,
|
||||
"0x73afc8160c17830c0c7281a7bf570c871455b880": 940.14,
|
||||
"0xfc81760d44a21acc9fd4b749a5bf9a9b2eeae072": 55.63
|
||||
},
|
||||
"min_entry": 0.0,
|
||||
|
||||
Reference in New Issue
Block a user