Files
2026-07-13 01:39:48 +08:00

35 lines
1.5 KiB
Python

import sqlite3
conn=sqlite3.connect('data/signals.db')
c=conn.cursor()
# Trade size vs IAS relationship
print("=== Trade Size vs IAS (by size bucket) ===")
for lo,hi in [(0,2000),(2000,5000),(5000,10000),(10000,20000),(20000,50000),(50000,999999)]:
row=c.execute('SELECT COUNT(*), AVG(information_asymmetry_score), AVG(trade_size_usd) FROM signals WHERE trade_size_usd>? AND trade_size_usd<=?',(lo,hi)).fetchone()
n=row[0]
if n>0:
avg_i = round(row[1],3)
avg_s = round(row[2],0)
print(f" ${lo:,.0f}-${hi:,.0f}: {n:3d} sigs, avg IAS={avg_i:.3f}, avg size=${avg_s:,.0f}")
print()
# Market question frequency
print("=== Top 10 Most Frequently Signaled Markets ===")
for r in c.execute('SELECT market_question, COUNT(*) as cnt, AVG(information_asymmetry_score) as avg_i FROM signals GROUP BY market_question ORDER BY cnt DESC LIMIT 10').fetchall():
print(f" {r[0][:65]:65s} | {r[1]:3d} sigs | avg IAS={r[2]:.3f}")
print()
# Resolution status
print("=== Unresolved Signals (PENDING) ===")
pending=c.execute('SELECT COUNT(*) FROM signals WHERE market_resolved IS NULL OR market_resolved=?',(0,)).fetchone()[0]
print(f" Pending: {pending}")
print()
# Trader wallet frequency
print("=== Top 10 Most Frequent Trader Wallets ===")
for r in c.execute('SELECT trader_wallet, COUNT(*) as cnt, AVG(information_asymmetry_score) as avg_i FROM signals GROUP BY trader_wallet ORDER BY cnt DESC LIMIT 10').fetchall():
print(f" {str(r[0])[:25]:25s} | {r[1]:3d} sigs | avg IAS={r[2]:.3f}")