diff --git a/__pycache__/bot.cpython-311.pyc b/__pycache__/bot.cpython-311.pyc index 7533dba..6e69780 100644 Binary files a/__pycache__/bot.cpython-311.pyc and b/__pycache__/bot.cpython-311.pyc differ diff --git a/bnb.json b/bnb.json index 7e4a126..dab7c1c 100644 --- a/bnb.json +++ b/bnb.json @@ -21,7 +21,7 @@ "decision_interval_sec": 600, "start_delay_sec": 375, "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_model": "ornith:latest", "color": "#F0B90B", diff --git a/bot.lock b/bot.lock deleted file mode 100644 index e69de29..0000000 diff --git a/bot.log b/bot.log index 66c2efe..94e8eeb 100644 --- a/bot.log +++ b/bot.log @@ -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: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: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 diff --git a/btc.db b/btc.db index cb5cc01..96e7211 100644 Binary files a/btc.db and b/btc.db differ diff --git a/btc.json b/btc.json index c9db8ea..458cedf 100644 --- a/btc.json +++ b/btc.json @@ -21,7 +21,7 @@ "decision_interval_sec": 600, "start_delay_sec": 300, "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_model": "ornith:latest", "color": "#f7931a", diff --git a/btc.lock b/btc.lock deleted file mode 100644 index e69de29..0000000 diff --git a/doge.db b/doge.db index f7df5b1..3dcf7c9 100644 Binary files a/doge.db and b/doge.db differ diff --git a/doge.json b/doge.json index acef8d6..3f14329 100644 --- a/doge.json +++ b/doge.json @@ -22,7 +22,7 @@ "decision_interval_sec": 600, "start_delay_sec": 0, "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_model": "ornith:latest", "diverify_url": "http://10.30.20.89:11434", diff --git a/doge.lock b/doge.lock deleted file mode 100644 index e69de29..0000000 diff --git a/eth.db b/eth.db index 14598e4..de561d1 100644 Binary files a/eth.db and b/eth.db differ diff --git a/eth.json b/eth.json index 0af9cc7..fdcfcd9 100644 --- a/eth.json +++ b/eth.json @@ -22,7 +22,7 @@ "decision_interval_sec": 600, "start_delay_sec": 150, "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_model": "ornith:latest", "diverify_url": "http://10.30.20.89:11434", diff --git a/eth.lock b/eth.lock deleted file mode 100644 index e69de29..0000000 diff --git a/launch_speed.sh b/launch_speed.sh new file mode 100755 index 0000000..493a6a7 --- /dev/null +++ b/launch_speed.sh @@ -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 diff --git a/near.json b/near.json index cd07e7a..396480c 100644 --- a/near.json +++ b/near.json @@ -21,7 +21,7 @@ "decision_interval_sec": 600, "start_delay_sec": 450, "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_model": "ornith:latest", "color": "#00EC97", diff --git a/sol.db b/sol.db index 70529cc..294baf9 100644 Binary files a/sol.db and b/sol.db differ diff --git a/sol.json b/sol.json index da2ddf2..e26b0c4 100644 --- a/sol.json +++ b/sol.json @@ -22,7 +22,7 @@ "decision_interval_sec": 600, "start_delay_sec": 75, "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_model": "ornith:latest", "diverify_url": "http://10.30.20.89:11434", diff --git a/sol.lock b/sol.lock deleted file mode 100644 index e69de29..0000000 diff --git a/speed_bot.py b/speed_bot.py index 5da1fa6..966d823 100644 --- a/speed_bot.py +++ b/speed_bot.py @@ -18,7 +18,7 @@ MODEL = "qwen3.5:4b-mlx" # ── Auth (RSA-PSS-SHA256, same as existing bot) ── 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: 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: r = requests.post(f"{OLLAMA_URL}/api/generate", json={"model": MODEL, "prompt": prompt, "stream": False, + "think": False, "options": {"temperature": 0.15, "num_predict": 40}}, timeout=8, proxies={"http": None, "https": None}) txt = r.json().get("response", "") @@ -231,33 +232,52 @@ class SpeedBot: def run(self): 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: try: - self.ws = websocket.WebSocketApp( - KALSHI_WS, - header=self._ws_headers(), - on_open=self.on_open, - on_message=self.on_message, - on_error=self.on_error, - on_close=self.on_close, - ) - self.ws.run_forever(ping_interval=30, ping_timeout=10) + # REST polling (WebSocket auth WIP) + markets = get_open_markets() + our_markets = [m for m in markets if self.coin in m.get("ticker", "")] + + for mkt in our_markets[:1]: # Trade the first open market + ticker = mkt["ticker"] + mkt_data = get_ticker(ticker) + mkt_data = mkt_data.get("market", mkt_data) + 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: - print(f"[speed-{self.coin}] Reconnecting in 5s: {e}") + print(f"[speed-{self.coin}] Loop error: {e}") time.sleep(5) def _ws_headers(self): - ts = str(int(time.time() * 1000)) - 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, - } + return sign("GET", "/trade-api/ws/v2") if __name__ == "__main__": diff --git a/xrp.db b/xrp.db index b6dcb2b..01a89aa 100644 Binary files a/xrp.db and b/xrp.db differ diff --git a/xrp.json b/xrp.json index 5341fbd..87dc457 100644 --- a/xrp.json +++ b/xrp.json @@ -22,7 +22,7 @@ "decision_interval_sec": 600, "start_delay_sec": 225, "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_model": "ornith:latest", "color": "#00AAE4", diff --git a/xrp.lock b/xrp.lock deleted file mode 100644 index e69de29..0000000 diff --git a/zec.json b/zec.json index e3829d5..9970b16 100644 --- a/zec.json +++ b/zec.json @@ -21,7 +21,7 @@ "decision_interval_sec": 600, "start_delay_sec": 525, "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_model": "ornith:latest", "color": "#F4B728",