Speed bot v1: REST polling, MLX model, standardized across all infra. WebSocket WIP.

This commit is contained in:
drjones
2026-08-04 00:22:00 -07:00
parent 8ea924f965
commit 2f0e2333df
23 changed files with 285 additions and 29 deletions

Binary file not shown.

View File

@@ -21,7 +21,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 375, "start_delay_sec": 375,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"color": "#F0B90B", "color": "#F0B90B",

View File

223
bot.log
View File

@@ -23764,3 +23764,226 @@ sqlite3.OperationalError: no such column: id
2026-08-03 23:24:30,992 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040230-30 — evaluating entry 2026-08-03 23:24:30,992 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040230-30 — evaluating entry
2026-08-03 23:24:36,825 skip KXETH15M-26AUG040230-30: conf 0.65<0.80 (adaptive) 2026-08-03 23:24:36,825 skip KXETH15M-26AUG040230-30: conf 0.65<0.80 (adaptive)
2026-08-03 23:24:42,329 skip KXSOL15M-26AUG040230-30: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78) 2026-08-03 23:24:42,329 skip KXSOL15M-26AUG040230-30: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:24:58,402 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040230-30 — evaluating entry
2026-08-03 23:24:58,700 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040230-30 — evaluating entry
2026-08-03 23:25:06,546 skip KXETH15M-26AUG040230-30: conf 0.65<0.80 (adaptive)
2026-08-03 23:25:08,457 skip KXSOL15M-26AUG040230-30: conf 0.65<0.80 (adaptive)
2026-08-03 23:25:10,413 ⚡ micro-swing 0.03%+ in 60s on KXXRP15M-26AUG040230-30 — evaluating entry
2026-08-03 23:25:28,710 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:30,652 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:30,652 staggering start by 75s
2026-08-03 23:25:32,663 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:32,663 staggering start by 150s
2026-08-03 23:25:34,689 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:34,689 staggering start by 225s
2026-08-03 23:25:36,733 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:36,733 staggering start by 300s
2026-08-03 23:25:38,882 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:38,882 staggering start by 375s
2026-08-03 23:25:40,810 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:40,810 staggering start by 450s
2026-08-03 23:25:42,438 skip KXDOGE15M-26AUG040230-30: BTC +0.9% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:25:42,728 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-03 23:25:42,728 staggering start by 525s
2026-08-03 23:26:58,901 skip KXSOL15M-26AUG040230-30: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:27:54,760 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040230-30 — evaluating entry
2026-08-03 23:28:02,611 skip KXDOGE15M-26AUG040230-30: BTC +0.9% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:28:23,383 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:28:23,389 daily loss cap hit — sitting out
2026-08-03 23:28:32,052 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040230-30 — evaluating entry
2026-08-03 23:28:32,180 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040230-30 — evaluating entry
2026-08-03 23:28:39,954 skip KXETH15M-26AUG040230-30: conf 0.65<0.80 (adaptive)
2026-08-03 23:28:41,637 skip KXSOL15M-26AUG040230-30: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:29:39,050 skip KXXRP15M-26AUG040230-30: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] No clear edge; RSI flat, BTC neutral
2026-08-03 23:30:36,758 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:56)
2026-08-03 23:30:40,161 LOSS KXXRP15M-26AUG040230-30 yes@50¢ → no (-50¢)
2026-08-03 23:30:58,737 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:30:58,740 daily loss cap hit — sitting out
2026-08-03 23:32:09,229 skip KXBNB15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] No clear edge; RSI=0, thin signal
2026-08-03 23:33:10,819 ⚖ NEAR WR=14% → stake $1.00→$0.75 (bets:14)
2026-08-03 23:33:11,632 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:24,273 daily loss cap hit — sitting out
2026-08-03 23:33:25,561 skip KXNEAR15M-26AUG040245-45: BTC +1.5% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:33:25,794 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:35,515 daily loss cap hit — sitting out
2026-08-03 23:33:36,249 ⚡ micro-swing 0.03%+ in 60s on KXXRP15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:37,128 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:45,860 skip KXXRP15M-26AUG040245-45: conf 0.75<0.80 (adaptive)
2026-08-03 23:33:46,669 daily loss cap hit — sitting out
2026-08-03 23:33:47,763 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:48,208 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:33:57,853 daily loss cap hit — sitting out
2026-08-03 23:34:00,711 daily loss cap hit — sitting out
2026-08-03 23:34:02,278 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:34:08,998 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:34:09,004 daily loss cap hit — sitting out
2026-08-03 23:34:10,316 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:34:20,037 daily loss cap hit — sitting out
2026-08-03 23:34:21,534 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:34:27,743 ⚖ ZEC WR=22% → stake $1.00→$0.75 (bets:18)
2026-08-03 23:34:31,118 skip KXSOL15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.95)] RSI neutral, no spike detected
2026-08-03 23:34:52,409 skip KXZEC15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] RSI oversold, weak trend, high risk
2026-08-03 23:34:53,629 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:35:00,953 skip KXDOGE15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.95)] Extreme fear + choppy regime, no clear edge
2026-08-03 23:37:31,504 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:33,617 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:41,620 skip KXSOL15M-26AUG040245-45: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:37:46,271 ⚡ micro-swing 0.03%+ in 60s on KXBTC15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:46,347 ⚡ micro-swing 0.03%+ in 60s on KXBNB15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:46,893 ⚡ micro-swing 0.03%+ in 60s on KXNEAR15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:49,108 ⚡ micro-swing 0.03%+ in 60s on KXZEC15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:49,658 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:37:49,662 daily loss cap hit — sitting out
2026-08-03 23:37:51,953 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040245-45 — evaluating entry
2026-08-03 23:37:56,594 skip KXNEAR15M-26AUG040245-45: BTC +1.5% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:37:58,523 skip KXZEC15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] RSI=0 oversold, no clear edge
2026-08-03 23:37:59,317 skip KXBNB15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] No clear edge; RSI=0, extreme fear, thin signal
2026-08-03 23:38:01,501 skip KXETH15M-26AUG040245-45: conf 0.75<0.80 (adaptive)
2026-08-03 23:38:03,516 ⚡ micro-swing 0.03%+ in 60s on KXXRP15M-26AUG040245-45 — evaluating entry
2026-08-03 23:38:07,044 skip KXBTC15M-26AUG040245-45: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:38:14,753 skip KXXRP15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] No clear edge; extreme fear + oversold RSI suggest
2026-08-03 23:38:46,651 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:38:57,042 skip KXDOGE15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Choppy regime, no clear edge
2026-08-03 23:39:21,556 ⚡ micro-swing 0.03%+ in 60s on KXXRP15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:29,709 skip KXXRP15M-26AUG040245-45: conf 0.65<0.80 (adaptive)
2026-08-03 23:39:51,015 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:51,872 ⚡ micro-swing 0.03%+ in 60s on KXBNB15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:51,959 ⚡ micro-swing 0.03%+ in 60s on KXNEAR15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:53,042 ⚡ micro-swing 0.03%+ in 60s on KXZEC15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:53,043 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:53,057 ⚡ micro-swing 0.03%+ in 60s on KXBTC15M-26AUG040245-45 — evaluating entry
2026-08-03 23:39:59,970 skip KXBNB15M-26AUG040245-45: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:02,630 skip KXETH15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Extreme fear + oversold RSI = no clear fade edge
2026-08-03 23:40:03,543 skip KXBTC15M-26AUG040245-45: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:04,340 skip KXSOL15M-26AUG040245-45: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:04,642 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040245-45 — evaluating entry
2026-08-03 23:40:05,214 skip KXNEAR15M-26AUG040245-45: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:11,641 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:40:11,648 daily loss cap hit — sitting out
2026-08-03 23:40:13,721 ⚡ micro-swing 0.03%+ in 60s on KXZEC15M-26AUG040245-45 — evaluating entry
2026-08-03 23:40:14,284 skip KXDOGE15M-26AUG040245-45: BTC +0.8% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:23,552 skip KXZEC15M-26AUG040245-45: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:40:40,038 ⚡ micro-swing 0.03%+ in 60s on KXXRP15M-26AUG040245-45 — evaluating entry
2026-08-03 23:40:46,573 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:40:48,203 POST NO x1 KXXRP15M-26AUG040245-45 @ 50¢ — DOWN: DOWN spike 0.21% conf=0.85 [[fast-gate DOWN 0.85] Extreme fear + oversold RSI spike fade]
2026-08-03 23:41:03,556 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:56)
2026-08-03 23:41:13,383 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:41:23,070 skip KXSOL15M-26AUG040245-45: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:41:29,400 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040245-45 — evaluating entry
2026-08-03 23:41:39,084 skip KXETH15M-26AUG040245-45: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Extreme Fear + oversold RSI = choppy, no clear edg
2026-08-03 23:43:01,218 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:43:10,949 daily loss cap hit — sitting out
2026-08-03 23:43:12,015 ⚖ NEAR WR=14% → stake $1.00→$0.75 (bets:14)
2026-08-03 23:43:12,469 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:43:22,401 daily loss cap hit — sitting out
2026-08-03 23:43:23,834 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:43:32,547 CANCEL stale KXXRP15M-26AUG040245-45 no@50¢ (mins_left=1.5)
2026-08-03 23:43:33,538 daily loss cap hit — sitting out
2026-08-03 23:43:34,905 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:43:44,777 daily loss cap hit — sitting out
2026-08-03 23:44:10,685 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040245-45 — evaluating entry
2026-08-03 23:44:20,597 skip KXSOL15M-26AUG040245-45: BTC +1.2% 24h — no counter-trend shorts (conf 0.72<0.78)
2026-08-03 23:44:22,412 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040245-45 — evaluating entry
2026-08-03 23:44:27,916 ⚖ ZEC WR=22% → stake $1.00→$0.75 (bets:18)
2026-08-03 23:44:44,622 skip KXETH15M-26AUG040245-45: conf 0.65<0.80 (adaptive)
2026-08-03 23:45:00,611 127.0.0.1 - - [03/Aug/2026 23:45:00] "GET /api/fleet HTTP/1.1" 200 -
2026-08-03 23:45:10,020 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:45:10,051 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=bnb&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,065 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,076 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,089 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,177 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=near&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,189 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,202 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,214 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/fleet/ticks?coin=zec&mins=60 HTTP/1.1" 200 -
2026-08-03 23:45:10,513 127.0.0.1 - - [03/Aug/2026 23:45:10] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:45:12,599 127.0.0.1 - - [03/Aug/2026 23:45:12] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:45:15,294 127.0.0.1 - - [03/Aug/2026 23:45:15] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:45:15,547 127.0.0.1 - - [03/Aug/2026 23:45:15] "GET /api/fleet HTTP/1.1" 200 -
2026-08-03 23:45:16,106 127.0.0.1 - - [03/Aug/2026 23:45:16] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:47:07,114 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040300-00 — evaluating entry
2026-08-03 23:47:18,012 skip KXDOGE15M-26AUG040300-00: BTC +0.9% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:48:07,743 ⚡ micro-swing 0.03%+ in 60s on KXBNB15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:08,221 ⚡ micro-swing 0.03%+ in 60s on KXNEAR15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:09,664 ⚡ micro-swing 0.03%+ in 60s on KXBTC15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:10,429 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:17,519 ⚡ micro-swing 0.03%+ in 60s on KXZEC15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:17,639 [fast-gate DOWN 0.75] skipping ornith — qwen confident
2026-08-03 23:48:17,641 skip KXBNB15M-26AUG040300-00: BTC +1.7% 24h — no counter-trend shorts (conf 0.75<0.78)
2026-08-03 23:48:20,836 skip KXNEAR15M-26AUG040300-00: BTC +1.7% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:48:22,831 skip KXSOL15M-26AUG040300-00: BTC +1.2% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:48:25,666 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040300-00 — evaluating entry
2026-08-03 23:48:27,589 [fast-gate DOWN 0.75] skipping ornith — qwen confident
2026-08-03 23:48:27,594 skip KXBTC15M-26AUG040300-00: BTC +1.7% 24h — no counter-trend shorts (conf 0.75<0.78)
2026-08-03 23:48:35,565 skip KXETH15M-26AUG040300-00: conf 0.65<0.80 (adaptive)
2026-08-03 23:48:37,949 skip KXZEC15M-26AUG040300-00: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Extreme fear + RSI=0, no clear edge
2026-08-03 23:50:10,192 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040300-00 — evaluating entry
2026-08-03 23:50:17,400 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040300-00 — evaluating entry
2026-08-03 23:50:27,056 skip KXDOGE15M-26AUG040300-00: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] No clear edge; RSI oversold, thin signal
2026-08-03 23:50:31,136 skip KXETH15M-26AUG040300-00: conf 0.65<0.80 (adaptive)
2026-08-03 23:50:53,913 skip KXXRP15M-26AUG040300-00: conf 0.65<0.80 (adaptive)
2026-08-03 23:50:54,226 127.0.0.1 - - [03/Aug/2026 23:50:54] "GET /fleet HTTP/1.1" 200 -
2026-08-03 23:50:54,721 127.0.0.1 - - [03/Aug/2026 23:50:54] "GET /api/fleet HTTP/1.1" 200 -
2026-08-03 23:51:03,876 127.0.0.1 - - [03/Aug/2026 23:51:03] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:51:04,808 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:56)
2026-08-03 23:53:12,158 ⚖ NEAR WR=14% → stake $1.00→$0.75 (bets:14)
2026-08-03 23:54:28,272 ⚖ ZEC WR=22% → stake $1.00→$0.75 (bets:18)
2026-08-03 23:55:22,731 127.0.0.1 - - [03/Aug/2026 23:55:22] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:55:24,717 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=bnb&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,724 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,731 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,737 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,744 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=near&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,751 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet HTTP/1.1" 200 -
2026-08-03 23:55:24,753 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,757 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:24,761 127.0.0.1 - - [03/Aug/2026 23:55:24] "GET /api/fleet/ticks?coin=zec&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,119 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:55:25,129 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=bnb&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,137 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,143 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,148 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,154 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=near&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,160 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,168 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:25,174 127.0.0.1 - - [03/Aug/2026 23:55:25] "GET /api/fleet/ticks?coin=zec&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:27,613 127.0.0.1 - - [03/Aug/2026 23:55:27] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:55:33,981 127.0.0.1 - - [03/Aug/2026 23:55:33] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:55:39,812 127.0.0.1 - - [03/Aug/2026 23:55:39] "GET /api/fleet HTTP/1.1" 200 -
2026-08-03 23:55:40,272 127.0.0.1 - - [03/Aug/2026 23:55:40] "GET /api/state HTTP/1.1" 200 -
2026-08-03 23:55:40,283 127.0.0.1 - - [03/Aug/2026 23:55:40] "GET /api/fleet/ticks?coin=bnb&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,104 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,244 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,364 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,373 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=near&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,382 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,388 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:41,395 127.0.0.1 - - [03/Aug/2026 23:55:41] "GET /api/fleet/ticks?coin=zec&mins=60 HTTP/1.1" 200 -
2026-08-03 23:55:51,582 ⚡ micro-swing 0.03%+ in 60s on KXSOL15M-26AUG040300-00 — evaluating entry
2026-08-03 23:56:02,614 skip KXSOL15M-26AUG040300-00: BTC +1.1% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:58:20,668 daily loss cap hit — sitting out
2026-08-03 23:58:23,473 POST NO x1 KXBNB15M-26AUG040300-00 @ 50¢ — ⚠ RSI 100 extreme OB + momentum reversing → fade DOWN
2026-08-03 23:58:30,585 [fast-gate DOWN 0.85] skipping ornith — qwen confident
2026-08-03 23:58:30,596 daily loss cap hit — sitting out
2026-08-03 23:58:40,989 skip KXZEC15M-26AUG040300-00: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-03 23:59:19,861 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040300-00 — evaluating entry
2026-08-03 23:59:25,234 CANCEL stale KXBNB15M-26AUG040300-00 no@50¢ (mins_left=0.6)
2026-08-03 23:59:32,458 skip KXDOGE15M-26AUG040300-00: BTC +1.1% 24h — no counter-trend shorts (conf 0.75<0.78)
2026-08-04 00:00:27,963 127.0.0.1 - - [04/Aug/2026 00:00:27] "GET /api/fleet HTTP/1.1" 200 -
2026-08-04 00:00:53,810 skip KXXRP15M-26AUG040315-15: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Choppy regime, no clear edge
2026-08-04 00:00:55,356 skip KXETH15M-26AUG040315-15: conf 0.75<0.80 (adaptive)
2026-08-04 00:01:34,360 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:56)
2026-08-04 00:03:13,548 ⚖ NEAR WR=14% → stake $1.00→$0.75 (bets:14)
2026-08-04 00:03:50,262 ⚡ micro-swing 0.03%+ in 60s on KXETH15M-26AUG040315-15 — evaluating entry
2026-08-04 00:04:00,353 skip KXETH15M-26AUG040315-15: conf 0.75<0.80 (adaptive)
2026-08-04 00:04:30,144 ⚖ ZEC WR=22% → stake $1.00→$0.75 (bets:18)
2026-08-04 00:06:06,577 POST YES x1 KXSOL15M-26AUG040315-15 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP
2026-08-04 00:06:13,051 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040315-15 — evaluating entry
2026-08-04 00:06:19,006 loop error: HTTPSConnectionPool(host='api.elections.kalshi.com', port=443): Read timed out. (read timeout=15)
2026-08-04 00:06:26,074 skip KXDOGE15M-26AUG040315-15: BTC +1.4% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-04 00:07:34,635 ⚡ micro-swing 0.03%+ in 60s on KXDOGE15M-26AUG040315-15 — evaluating entry
2026-08-04 00:07:44,349 skip KXDOGE15M-26AUG040315-15: BTC +1.4% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-04 00:08:23,053 skip KXNEAR15M-26AUG040315-15: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Extreme Fear + choppy regime, no clear edge
2026-08-04 00:08:23,619 skip KXBNB15M-26AUG040315-15: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-04 00:08:33,518 skip KXBTC15M-26AUG040315-15: BTC +1.6% 24h — no counter-trend shorts (conf 0.65<0.78)
2026-08-04 00:08:42,688 skip KXZEC15M-26AUG040315-15: passes: [split qwen=SKIP(0.50) ornith=SKIP(0.50)] Extreme fear + choppy regime, no clear edge

BIN
btc.db

Binary file not shown.

View File

@@ -21,7 +21,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 300, "start_delay_sec": 300,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"color": "#f7931a", "color": "#f7931a",

View File

BIN
doge.db

Binary file not shown.

View File

@@ -22,7 +22,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 0, "start_delay_sec": 0,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434", "diverify_url": "http://10.30.20.89:11434",

View File

BIN
eth.db

Binary file not shown.

View File

@@ -22,7 +22,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 150, "start_delay_sec": 150,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434", "diverify_url": "http://10.30.20.89:11434",

View File

13
launch_speed.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# Launch speed bot for a coin
COIN="${1:-DOGE}"
DRY="${2:-dry}"
FLAGS="--coin $COIN"
if [ "$DRY" = "live" ]; then
FLAGS="$FLAGS --live"
fi
echo "🚀 Speed Bot: $COIN ($DRY mode)"
cd ~/kalshi-bot
exec python3 speed_bot.py $FLAGS

View File

@@ -21,7 +21,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 450, "start_delay_sec": 450,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"color": "#00EC97", "color": "#00EC97",

BIN
sol.db

Binary file not shown.

View File

@@ -22,7 +22,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 75, "start_delay_sec": 75,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434", "diverify_url": "http://10.30.20.89:11434",

View File

View File

@@ -18,7 +18,7 @@ MODEL = "qwen3.5:4b-mlx"
# ── Auth (RSA-PSS-SHA256, same as existing bot) ── # ── Auth (RSA-PSS-SHA256, same as existing bot) ──
KEY_PATH = os.path.expanduser("~/kalshi-bot/kalshi_private_key.pem") KEY_PATH = os.path.expanduser("~/kalshi-bot/kalshi_private_key.pem")
KEY_ID = "28d5876b" KEY_ID = "28d5876b-2ece-4aa3-aa17-ec96e1e706eb"
with open(KEY_PATH, "rb") as f: with open(KEY_PATH, "rb") as f:
PK = serialization.load_pem_private_key(f.read(), password=None) PK = serialization.load_pem_private_key(f.read(), password=None)
@@ -62,6 +62,7 @@ Vote UP DOWN or SKIP. Respond ONLY with JSON: {{"vote":"UP|DOWN|SKIP","conf":0.0
try: try:
r = requests.post(f"{OLLAMA_URL}/api/generate", r = requests.post(f"{OLLAMA_URL}/api/generate",
json={"model": MODEL, "prompt": prompt, "stream": False, json={"model": MODEL, "prompt": prompt, "stream": False,
"think": False,
"options": {"temperature": 0.15, "num_predict": 40}}, "options": {"temperature": 0.15, "num_predict": 40}},
timeout=8, proxies={"http": None, "https": None}) timeout=8, proxies={"http": None, "https": None})
txt = r.json().get("response", "") txt = r.json().get("response", "")
@@ -231,33 +232,52 @@ class SpeedBot:
def run(self): def run(self):
self.running = True self.running = True
print(f"[speed-{self.coin}] Starting speed bot (dry_run={self.dry_run}, model={MODEL})") last_tick_ts = 0
print(f"[speed-{self.coin}] Starting (dry_run={self.dry_run}, model={MODEL}, REST mode)")
# Warm the MLX model
try:
requests.post(f"{OLLAMA_URL}/api/generate",
json={"model": MODEL, "prompt": "hi", "stream": False,
"think": False, "keep_alive": "30m",
"options": {"num_predict": 5}},
timeout=30, proxies={"http": None, "https": None})
print(f"[speed-{self.coin}] MLX model warm")
except Exception:
pass
while self.running: while self.running:
try: try:
self.ws = websocket.WebSocketApp( # REST polling (WebSocket auth WIP)
KALSHI_WS, markets = get_open_markets()
header=self._ws_headers(), our_markets = [m for m in markets if self.coin in m.get("ticker", "")]
on_open=self.on_open,
on_message=self.on_message, for mkt in our_markets[:1]: # Trade the first open market
on_error=self.on_error, ticker = mkt["ticker"]
on_close=self.on_close, mkt_data = get_ticker(ticker)
) mkt_data = mkt_data.get("market", mkt_data)
self.ws.run_forever(ping_interval=30, ping_timeout=10) price = float(mkt_data.get("last_price", 0) or mkt_data.get("yes_bid", 0) or 0)
if price > 0:
self.prices.append(price)
self.db.execute("INSERT INTO ticks VALUES (?,?,?)",
(time.time(), price, mkt_data.get("volume", 0) or 0))
self.db.commit()
# Decision check
now = time.time()
if now - self.last_decision >= self.decision_cooldown and len(self.prices) >= 20:
self.last_decision = now
self._decide(ticker, price)
time.sleep(5) # Poll every 5 seconds
except Exception as e: except Exception as e:
print(f"[speed-{self.coin}] Reconnecting in 5s: {e}") print(f"[speed-{self.coin}] Loop error: {e}")
time.sleep(5) time.sleep(5)
def _ws_headers(self): def _ws_headers(self):
ts = str(int(time.time() * 1000)) return sign("GET", "/trade-api/ws/v2")
path = "/trade-api/ws/v2"
msg = f"{ts}GET{path}".encode()
sig = base64.b64encode(hmac.HMAC(KEY, msg, hashlib.sha256).digest()).decode()
return {
"KALSHI-ACCESS-KEY": KEY_ID,
"KALSHI-ACCESS-SIGNATURE": sig,
"KALSHI-ACCESS-TIMESTAMP": ts,
}
if __name__ == "__main__": if __name__ == "__main__":

BIN
xrp.db

Binary file not shown.

View File

@@ -22,7 +22,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 225, "start_delay_sec": 225,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"color": "#00AAE4", "color": "#00AAE4",

View File

View File

@@ -21,7 +21,7 @@
"decision_interval_sec": 600, "decision_interval_sec": 600,
"start_delay_sec": 525, "start_delay_sec": 525,
"fast_llm_url": "http://localhost:11434", "fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b", "fast_llm_model": "qwen3.5:4b-mlx",
"deep_llm_url": "http://10.30.20.186:11434", "deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest", "deep_llm_model": "ornith:latest",
"color": "#F4B728", "color": "#F4B728",