fix: Kalshi market data nested under 'market' key — resolve_bets now correctly settles orders. fix: BTC Binance proxy. All 8 data sources verified. PNL tracking live.
This commit is contained in:
16
bot.py
16
bot.py
@@ -420,17 +420,17 @@ def resolve_bets(kx, conn):
|
||||
for oid, ticker, side, count, px, dry in open_orders:
|
||||
try:
|
||||
m = kx.req("GET", f"/markets/{ticker}")
|
||||
status = m.get("status")
|
||||
if status not in ("settled", "finalized", "determined"):
|
||||
# also catch expired-untraded: close_time passed + no result → mark dead
|
||||
ct = m.get("close_time")
|
||||
mk = m.get("market", m) # Kalshi nests under "market" key
|
||||
status = mk.get("status")
|
||||
if status not in ("settled", "finalized", "determined", "closed"):
|
||||
ct = mk.get("close_time")
|
||||
if ct:
|
||||
from datetime import datetime, timezone
|
||||
if datetime.fromisoformat(ct.replace("Z","+00:00")).timestamp() < time.time() - 120:
|
||||
conn.execute("UPDATE orders SET status='expired', settle_ts=? WHERE id=?", (time.time(), oid))
|
||||
conn.commit()
|
||||
continue
|
||||
result = (m.get("result") or "").lower() # 'yes' | 'no'
|
||||
result = (mk.get("result") or "").lower() # 'yes' | 'no'
|
||||
if not result:
|
||||
continue
|
||||
won = (result == side)
|
||||
@@ -592,7 +592,8 @@ def run():
|
||||
for oid, ticker, koid, side, px in open_orders:
|
||||
try:
|
||||
m = kx.req("GET", f"/markets/{ticker}")
|
||||
ct = m.get("close_time","")
|
||||
mk = m.get("market", m) # Kalshi nests under "market"
|
||||
ct = mk.get("close_time","")
|
||||
if ct:
|
||||
close_ts = datetime.fromisoformat(ct.replace("Z","+00:00")).timestamp()
|
||||
mins_left = (close_ts - time.time())/60
|
||||
@@ -643,7 +644,8 @@ def run():
|
||||
continue
|
||||
try:
|
||||
verify = kx.req("GET", f"/markets/{ticker}")
|
||||
st = verify.get("status", "open")
|
||||
vm = verify.get("market", verify) # Kalshi nests under "market"
|
||||
st = vm.get("status", "open")
|
||||
if st and st not in ("open", "active"):
|
||||
log_event(conn, "info", f"skip {ticker}: market closed (status={st})")
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user