razvan commited on
Commit
865aa70
·
verified ·
1 Parent(s): b2e4873

Upload demo.py

Browse files
Files changed (1) hide show
  1. demo.py +90 -0
demo.py ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ BuilderBrain Hackathon Demo
4
+ ============================
5
+
6
+ Run this script to demonstrate the full BuilderBrain pipeline:
7
+ 1. Fetch live Polymarket data
8
+ 2. Generate reasoning traces with Kelly sizing
9
+ 3. Route via builder codes
10
+ 4. Settle via Arc nanopayments
11
+
12
+ Usage:
13
+ python demo.py
14
+
15
+ Expected output:
16
+ - 20-50 trade signals with reasoning traces
17
+ - Portfolio stats with risk metrics
18
+ - Audit log ready for on-chain anchoring
19
+ """
20
+
21
+ import json
22
+ from builderbrain import BuilderBrain
23
+
24
+
25
+ def main():
26
+ print("=" * 70)
27
+ print(" BuilderBrain — Agentic Prediction Market Intelligence")
28
+ print(" Agora Agents Hackathon | Canteen × Circle")
29
+ print("=" * 70)
30
+
31
+ # Initialize with $10k paper bankroll
32
+ brain = BuilderBrain(
33
+ bankroll_usd=10000,
34
+ paper_trade=True,
35
+ builder_code="builderbrain_demo_v1",
36
+ min_edge=0.03, # 3% minimum edge
37
+ max_positions=15,
38
+ )
39
+
40
+ # Run 3 cycles to simulate 48h of operation
41
+ for i in range(3):
42
+ print(f"\n{'─' * 70}")
43
+ print(f" Cycle {i+1}/3 — Simulating live market scanning...")
44
+ print(f"{'─' * 70}")
45
+
46
+ signals = brain.run_cycle()
47
+
48
+ # Print top signal from this cycle
49
+ if signals:
50
+ top = max(signals, key=lambda s: s.expected_return)
51
+ print(f"\n 🎯 Top Signal:")
52
+ print(f" Market: {top.market_id}")
53
+ print(f" Side: {top.side} | Size: {top.size_fraction:.2%} bankroll")
54
+ print(f" Expected Return: {top.expected_return:.4f}")
55
+ print(f" Confidence: {top.confidence:.1%}")
56
+ print(f" Urgency: {top.urgency}")
57
+ print(f" Trace Hash: {top.reasoning_trace.reasoning_hash}")
58
+
59
+ # Final stats
60
+ print(f"\n{'=' * 70}")
61
+ print(" FINAL PORTFOLIO STATS")
62
+ print(f"{'=' * 70}")
63
+
64
+ stats = brain.get_portfolio_stats()
65
+ print(json.dumps(stats, indent=2, default=str))
66
+
67
+ # Export audit log
68
+ audit_file = brain.export_audit_log("builderbrain_audit.json")
69
+ print(f"\n 📄 Audit log exported: {audit_file}")
70
+
71
+ # Print top 5 signals
72
+ print(f"\n{'=' * 70}")
73
+ print(" TOP 5 SIGNALS (by expected return)")
74
+ print(f"{'=' * 70}")
75
+
76
+ for i, sig in enumerate(brain.get_top_signals(5), 1):
77
+ print(f"\n #{i} {sig.market_id}")
78
+ print(f" {sig.side} @ {sig.size_fraction:.2%} bankroll")
79
+ print(f" E[return]: {sig.expected_return:.4f} | Conf: {sig.confidence:.1%}")
80
+ print(f" Trace: {sig.reasoning_trace.reasoning_hash}")
81
+ print(f" Arguments: {len(sig.reasoning_trace.arguments)}")
82
+ print(f" Risks: {len(sig.reasoning_trace.risk_factors)}")
83
+
84
+ print(f"\n{'=' * 70}")
85
+ print(" Demo complete. Ready for hackathon submission.")
86
+ print(f"{'=' * 70}")
87
+
88
+
89
+ if __name__ == "__main__":
90
+ main()