diff --git a/__pycache__/bot.cpython-311.pyc b/__pycache__/bot.cpython-311.pyc index a3fbbf5..cab73e1 100644 Binary files a/__pycache__/bot.cpython-311.pyc and b/__pycache__/bot.cpython-311.pyc differ diff --git a/bot.log b/bot.log index c201231..8cf4035 100644 --- a/bot.log +++ b/bot.log @@ -3261,3 +3261,392 @@ sqlite3.OperationalError: no such column: id 2026-08-02 22:34:07,352 POST YES x1 KXXRP15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP 2026-08-02 22:34:47,034 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) 2026-08-02 22:34:47,039 daily loss cap hit — sitting out +2026-08-02 22:37:06,854 ⚖ DOGE WR=61% → stake $1.00→$1.25 (bets:44) +2026-08-02 22:37:27,127 POST YES x1 KXDOGE15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:38:20,776 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:38:20,782 skip KXSOL15M-26AUG030145-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:38:40,278 POST YES x1 KXXRP15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:38:53,686 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:38:53,690 skip KXETH15M-26AUG030145-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:39:59,907 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:39:59,911 daily loss cap hit — sitting out +2026-08-02 22:40:04,823 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 22:42:25,745 POST YES x1 KXDOGE15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:43:17,926 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:43:19,081 POST YES x1 KXSOL15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:43:45,127 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:43:47,034 POST YES x1 KXETH15M-26AUG030145-45 @ 50¢ — ⚠ RSI 2 extreme oversold → fade UP +2026-08-02 22:44:07,005 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:44:08,415 POST YES x1 KXXRP15M-26AUG030145-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:44:49,697 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:44:49,703 skip KXBTC15M-26AUG030145-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:45:08,298 LOSS KXXRP15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:08,985 LOSS KXXRP15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:09,593 LOSS KXXRP15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:12,404 LOSS KXETH15M-26AUG030145-45 no@50¢ → yes (-50¢) +2026-08-02 22:45:13,216 WIN KXETH15M-26AUG030145-45 yes@50¢ → yes (+50¢) +2026-08-02 22:45:26,166 LOSS KXSOL15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:26,825 LOSS KXSOL15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:31,462 LOSS KXDOGE15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:32,069 LOSS KXDOGE15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:45:32,737 LOSS KXDOGE15M-26AUG030145-45 yes@50¢ → no (-50¢) +2026-08-02 22:47:28,223 POST YES x1 KXDOGE15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:47:51,897 POST YES x1 KXSOL15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:48:56,369 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:48:58,214 POST NO x1 KXETH15M-26AUG030200-00 @ 50¢ — ⚠ RSI 88 extreme overbought → fade DOWN +2026-08-02 22:49:10,335 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:49:11,766 POST NO x1 KXXRP15M-26AUG030200-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 22:50:02,525 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:50:02,528 skip KXBTC15M-26AUG030200-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:50:22,534 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 22:52:25,948 POST YES x1 KXDOGE15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:53:19,422 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:53:20,578 POST NO x1 KXSOL15M-26AUG030200-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 22:53:45,403 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:53:45,406 skip KXETH15M-26AUG030200-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:54:08,894 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:54:08,898 skip KXXRP15M-26AUG030200-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:54:52,273 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:54:52,280 daily loss cap hit — sitting out +2026-08-02 22:57:31,649 POST YES x1 KXDOGE15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:58:24,031 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:58:25,510 POST YES x1 KXSOL15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:58:36,422 CANCEL stale KXDOGE15M-26AUG030200-00 yes@50¢ (mins_left=1.4) +2026-08-02 22:58:37,053 CANCEL stale KXDOGE15M-26AUG030200-00 yes@50¢ (mins_left=1.4) +2026-08-02 22:58:44,810 POST YES x1 KXXRP15M-26AUG030200-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 22:58:46,958 CANCEL stale KXSOL15M-26AUG030200-00 yes@50¢ (mins_left=1.2) +2026-08-02 22:58:53,419 CANCEL stale KXSOL15M-26AUG030200-00 yes@50¢ (mins_left=1.1) +2026-08-02 22:58:59,304 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 22:58:59,309 skip KXETH15M-26AUG030200-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 22:59:12,383 CANCEL stale KXXRP15M-26AUG030200-00 yes@50¢ (mins_left=0.8) +2026-08-02 23:00:04,676 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:00:04,685 daily loss cap hit — sitting out +2026-08-02 23:00:17,857 WIN KXDOGE15M-26AUG030200-00 yes@50¢ → yes (+50¢) +2026-08-02 23:00:19,089 LOSS KXSOL15M-26AUG030200-00 no@50¢ → yes (-50¢) +2026-08-02 23:00:25,397 LOSS KXXRP15M-26AUG030200-00 no@50¢ → yes (-50¢) +2026-08-02 23:00:26,139 LOSS KXETH15M-26AUG030200-00 no@50¢ → yes (-50¢) +2026-08-02 23:00:26,476 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:02:28,519 POST YES x1 KXDOGE15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:03:20,706 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:03:22,024 POST YES x1 KXSOL15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:03:41,635 POST YES x1 KXXRP15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:03:48,315 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:03:50,202 POST YES x1 KXETH15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:04:24,579 daily loss cap hit — sitting out +2026-08-02 23:07:55,853 POST YES x1 KXSOL15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:08:00,870 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:08:02,260 POST YES x1 KXDOGE15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:08:31,781 POST YES x1 KXETH15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:09:14,572 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:09:16,100 POST YES x1 KXXRP15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:10:05,439 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:10:05,448 daily loss cap hit — sitting out +2026-08-02 23:10:26,725 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:12:29,346 POST YES x1 KXDOGE15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:13:22,605 POST NO x1 KXETH15M-26AUG030215-15 @ 50¢ — DOWN: DOWN spike 0.04% conf=0.70 [[ENSEMBLE: 0U/2D/0S] qwen3.5=DOWN | ornith=DOWN] +2026-08-02 23:13:23,677 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:13:25,055 POST YES x1 KXSOL15M-26AUG030215-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:13:57,337 CANCEL stale KXETH15M-26AUG030215-15 no@50¢ (mins_left=1.1) +2026-08-02 23:13:58,612 CANCEL stale KXSOL15M-26AUG030215-15 yes@50¢ (mins_left=1.0) +2026-08-02 23:14:20,047 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:14:21,668 POST NO x1 KXXRP15M-26AUG030215-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:14:55,255 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:14:55,260 daily loss cap hit — sitting out +2026-08-02 23:15:08,881 LOSS KXDOGE15M-26AUG030215-15 yes@50¢ → no (-50¢) +2026-08-02 23:15:09,699 LOSS KXDOGE15M-26AUG030215-15 yes@50¢ → no (-50¢) +2026-08-02 23:15:10,396 LOSS KXDOGE15M-26AUG030215-15 yes@50¢ → no (-50¢) +2026-08-02 23:15:20,474 LOSS KXETH15M-26AUG030215-15 yes@50¢ → no (-50¢) +2026-08-02 23:15:21,255 LOSS KXETH15M-26AUG030215-15 yes@50¢ → no (-50¢) +2026-08-02 23:15:22,607 WIN KXXRP15M-26AUG030215-15 yes@50¢ → yes (+50¢) +2026-08-02 23:15:23,431 WIN KXXRP15M-26AUG030215-15 yes@50¢ → yes (+50¢) +2026-08-02 23:15:24,075 LOSS KXXRP15M-26AUG030215-15 no@50¢ → yes (-50¢) +2026-08-02 23:15:35,017 WIN KXSOL15M-26AUG030215-15 yes@50¢ → yes (+50¢) +2026-08-02 23:15:35,650 WIN KXSOL15M-26AUG030215-15 yes@50¢ → yes (+50¢) +2026-08-02 23:17:33,183 POST YES x1 KXDOGE15M-26AUG030230-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:18:26,954 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:18:28,191 POST YES x1 KXSOL15M-26AUG030230-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:18:49,018 POST YES x1 KXXRP15M-26AUG030230-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:19:03,324 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:19:05,181 POST YES x1 KXETH15M-26AUG030230-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:20:06,894 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:20:06,897 skip KXBTC15M-26AUG030230-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:20:26,906 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:23:01,396 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:23:01,402 skip KXDOGE15M-26AUG030230-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:23:24,876 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:23:26,081 POST NO x1 KXSOL15M-26AUG030230-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:23:34,407 127.0.0.1 - - [02/Aug/2026 23:23:34] "GET / HTTP/1.1" 200 - +2026-08-02 23:23:36,360 127.0.0.1 - - [02/Aug/2026 23:23:36] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:39,965 127.0.0.1 - - [02/Aug/2026 23:23:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:44,436 127.0.0.1 - - [02/Aug/2026 23:23:44] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:23:45,275 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:45,298 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:23:45,332 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:23:45,352 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:45,360 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:23:45,386 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:23:45,409 127.0.0.1 - - [02/Aug/2026 23:23:45] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:23:50,297 127.0.0.1 - - [02/Aug/2026 23:23:50] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:53,822 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:23:55,110 127.0.0.1 - - [02/Aug/2026 23:23:55] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:23:55,709 POST NO x1 KXETH15M-26AUG030230-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:24:20,974 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:24:22,593 POST NO x1 KXXRP15M-26AUG030230-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:24:26,367 daily loss cap hit — sitting out +2026-08-02 23:24:45,825 127.0.0.1 - - [02/Aug/2026 23:24:45] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:24:46,334 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:24:46,343 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:24:46,354 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:24:46,362 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:24:46,372 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:24:46,382 127.0.0.1 - - [02/Aug/2026 23:24:46] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:00,804 127.0.0.1 - - [02/Aug/2026 23:25:00] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:25:01,572 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:25:01,584 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:01,597 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:01,604 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:01,610 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:01,616 127.0.0.1 - - [02/Aug/2026 23:25:01] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:15,940 127.0.0.1 - - [02/Aug/2026 23:25:15] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:25:16,449 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:25:16,466 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:16,485 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:16,500 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:16,510 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:16,521 127.0.0.1 - - [02/Aug/2026 23:25:16] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:30,816 127.0.0.1 - - [02/Aug/2026 23:25:30] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:25:31,398 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:25:31,416 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:31,424 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:31,430 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:31,435 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:31,441 127.0.0.1 - - [02/Aug/2026 23:25:31] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:45,801 127.0.0.1 - - [02/Aug/2026 23:25:45] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:25:46,522 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:25:46,536 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:46,551 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:46,559 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:46,569 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:25:46,573 127.0.0.1 - - [02/Aug/2026 23:25:46] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:00,811 127.0.0.1 - - [02/Aug/2026 23:26:00] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:26:01,759 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:26:01,769 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:01,778 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:01,785 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:01,792 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:01,798 127.0.0.1 - - [02/Aug/2026 23:26:01] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:15,821 127.0.0.1 - - [02/Aug/2026 23:26:15] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:26:16,595 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:26:16,605 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:16,616 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:16,625 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:16,632 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:16,638 127.0.0.1 - - [02/Aug/2026 23:26:16] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:30,957 127.0.0.1 - - [02/Aug/2026 23:26:30] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:26:31,732 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:26:31,742 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:31,753 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:31,766 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:31,777 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:26:31,787 127.0.0.1 - - [02/Aug/2026 23:26:31] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:27:36,489 POST YES x1 KXDOGE15M-26AUG030230-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:28:30,104 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:28:31,995 POST NO x1 KXSOL15M-26AUG030230-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:28:36,855 CANCEL stale KXXRP15M-26AUG030230-30 no@50¢ (mins_left=1.4) +2026-08-02 23:28:59,906 CANCEL stale KXSOL15M-26AUG030230-30 no@50¢ (mins_left=1.0) +2026-08-02 23:29:00,443 CANCEL stale KXSOL15M-26AUG030230-30 no@50¢ (mins_left=1.0) +2026-08-02 23:29:07,933 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:29:10,199 POST NO x1 KXETH15M-26AUG030230-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:29:18,652 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:29:20,229 POST NO x1 KXXRP15M-26AUG030230-30 @ 50¢ — ⚠ RSI 98 extreme overbought → fade DOWN +2026-08-02 23:29:38,625 CANCEL stale KXETH15M-26AUG030230-30 no@50¢ (mins_left=0.4) +2026-08-02 23:29:39,466 CANCEL stale KXETH15M-26AUG030230-30 no@50¢ (mins_left=0.3) +2026-08-02 23:29:47,911 CANCEL stale KXXRP15M-26AUG030230-30 no@50¢ (mins_left=0.2) +2026-08-02 23:30:08,679 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:30:08,685 skip KXBTC15M-26AUG030230-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:30:09,578 LOSS KXXRP15M-26AUG030230-30 yes@50¢ → no (-50¢) +2026-08-02 23:30:18,001 LOSS KXSOL15M-26AUG030230-30 yes@50¢ → no (-50¢) +2026-08-02 23:30:25,310 LOSS KXDOGE15M-26AUG030230-30 yes@50¢ → no (-50¢) +2026-08-02 23:30:26,218 LOSS KXDOGE15M-26AUG030230-30 yes@50¢ → no (-50¢) +2026-08-02 23:30:28,695 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:30:30,398 LOSS KXETH15M-26AUG030230-30 yes@50¢ → no (-50¢) +2026-08-02 23:30:34,663 127.0.0.1 - - [02/Aug/2026 23:30:34] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:30:34,818 127.0.0.1 - - [02/Aug/2026 23:30:34] "GET /fleet HTTP/1.1" 200 - +2026-08-02 23:30:35,449 127.0.0.1 - - [02/Aug/2026 23:30:35] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 23:30:36,390 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:30:36,856 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/state HTTP/1.1" 200 - +2026-08-02 23:30:36,887 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 23:30:36,899 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 23:30:36,906 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 23:30:36,917 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 23:30:36,924 127.0.0.1 - - [02/Aug/2026 23:30:36] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 23:32:58,638 POST YES x1 KXSOL15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:33:00,928 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:33:02,648 POST YES x1 KXDOGE15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:33:52,978 POST YES x1 KXXRP15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:33:57,445 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:33:59,351 POST YES x1 KXETH15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:34:59,294 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:34:59,303 daily loss cap hit — sitting out +2026-08-02 23:37:35,674 POST YES x1 KXDOGE15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:38:02,296 POST NO x1 KXSOL15M-26AUG030245-45 @ 50¢ — DOWN: DOWN spike 0.18% conf=0.77 [[ENSEMBLE: 0U/2D/0S] qwen3.5=DOWN | ornith=DOWN] +2026-08-02 23:39:09,641 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:39:11,522 POST YES x1 KXETH15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:39:20,294 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:39:21,889 POST YES x1 KXXRP15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:39:40,918 skip KXBTC15M-26AUG030245-45: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-02 23:40:29,108 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:42:33,538 POST YES x1 KXDOGE15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:42:58,654 skip KXSOL15M-26AUG030245-45: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-02 23:43:30,367 CANCEL stale KXSOL15M-26AUG030245-45 no@50¢ (mins_left=1.5) +2026-08-02 23:44:01,229 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:44:01,233 skip KXETH15M-26AUG030245-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:44:27,780 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:44:29,402 POST YES x1 KXXRP15M-26AUG030245-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:44:29,813 skip KXBTC15M-26AUG030245-45: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-02 23:45:23,780 LOSS KXSOL15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:30,587 LOSS KXXRP15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:32,693 LOSS KXETH15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:32,709 LOSS KXXRP15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:33,395 LOSS KXXRP15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:33,711 LOSS KXETH15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:34,760 LOSS KXDOGE15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:35,482 LOSS KXDOGE15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:45:36,150 LOSS KXDOGE15M-26AUG030245-45 yes@50¢ → no (-50¢) +2026-08-02 23:47:37,407 POST YES x1 KXDOGE15M-26AUG030300-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 23:48:31,873 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:48:31,877 skip KXSOL15M-26AUG030300-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:49:12,208 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:49:12,211 skip KXETH15M-26AUG030300-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:49:24,107 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:49:24,111 daily loss cap hit — sitting out +2026-08-02 23:50:12,616 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:50:12,621 daily loss cap hit — sitting out +2026-08-02 23:50:30,088 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:53:04,188 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:53:05,864 POST NO x1 KXDOGE15M-26AUG030300-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN +2026-08-02 23:53:29,523 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:53:29,532 skip KXSOL15M-26AUG030300-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:53:59,457 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:03,368 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:03,368 staggering start by 20s +2026-08-02 23:54:07,515 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:07,516 staggering start by 40s +2026-08-02 23:54:11,670 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:11,670 staggering start by 60s +2026-08-02 23:54:15,575 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:15,576 staggering start by 80s +2026-08-02 23:54:17,346 POST YES x1 KXDOGE15M-26AUG030300-00 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-02 23:54:19,490 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:19,490 staggering start by 25s +2026-08-02 23:54:23,546 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:23,546 staggering start by 30s +2026-08-02 23:54:27,568 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 23:54:27,568 staggering start by 35s +2026-08-02 23:54:38,513 skip KXSOL15M-26AUG030300-00: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-02 23:54:59,161 skip KXBNB15M-26AUG030300-00: no swing (0.000% < 0.005%) +2026-08-02 23:55:07,871 skip KXNEAR15M-26AUG030300-00: no swing (0.000% < 0.005%) +2026-08-02 23:55:27,630 skip KXZEC15M-26AUG030300-00: no swing (0.000% < 0.005%) +2026-08-02 23:55:35,586 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-02 23:55:41,826 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:55:41,828 skip KXETH15M-26AUG030300-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-02 23:55:57,004 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:55:57,009 daily loss cap hit — sitting out +2026-08-02 23:56:00,040 skip KXBTC15M-26AUG030300-00: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-02 23:58:33,474 CANCEL stale KXDOGE15M-26AUG030300-00 yes@50¢ (mins_left=1.5) +2026-08-02 23:59:35,575 skip KXSOL15M-26AUG030300-00: no swing (0.005% < 0.005%) +2026-08-02 23:59:57,181 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-02 23:59:57,186 skip KXDOGE15M-26AUG030300-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:00:11,376 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-03 00:00:12,668 WIN KXDOGE15M-26AUG030300-00 no@50¢ → no (+50¢) +2026-08-03 00:00:13,348 LOSS KXDOGE15M-26AUG030300-00 yes@50¢ → no (-50¢) +2026-08-03 00:00:50,773 skip KXDOGE15M-26AUG030315-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:01:18,518 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:18,524 skip KXXRP15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:01:19,260 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:19,265 skip KXNEAR15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:01:20,106 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:20,109 skip KXBNB15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:01:27,960 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:27,962 skip KXETH15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:01:28,670 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:28,673 skip KXZEC15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:01:49,308 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:01:49,353 skip KXBTC15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:05:09,826 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:05:09,829 skip KXSOL15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:05:35,738 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-03 00:05:47,774 skip KXDOGE15M-26AUG030315-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:06:15,509 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:15,514 skip KXNEAR15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:06:16,270 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:17,065 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:17,068 skip KXBNB15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:06:17,678 POST NO x1 KXXRP15M-26AUG030315-15 @ 50¢ — ⚠ RSI 100 extreme OB + momentum reversing → fade DOWN +2026-08-03 00:06:18,528 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:18,532 skip KXZEC15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:06:19,794 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:19,805 skip KXETH15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:06:39,748 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:06:39,750 skip KXBTC15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:09:37,189 POST YES x1 KXSOL15M-26AUG030315-15 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-03 00:10:49,547 skip KXDOGE15M-26AUG030315-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:11:18,449 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:18,456 skip KXNEAR15M-26AUG030315-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:11:20,498 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:20,504 skip KXBNB15M-26AUG030315-15: no swing (0.006% < 0.005%) +2026-08-03 00:11:21,320 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:22,993 POST YES x1 KXXRP15M-26AUG030315-15 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-03 00:11:29,331 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:29,345 skip KXZEC15M-26AUG030315-15: no swing (0.006% < 0.005%) +2026-08-03 00:11:30,241 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:32,154 POST NO x1 KXETH15M-26AUG030315-15 @ 50¢ — ⚠ RSI 100 extreme OB + momentum reversing → fade DOWN +2026-08-03 00:11:51,222 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:11:51,226 skip KXBTC15M-26AUG030315-15: no swing (0.006% < 0.005%) +2026-08-03 00:13:32,742 CANCEL stale KXETH15M-26AUG030315-15 no@50¢ (mins_left=1.5) +2026-08-03 00:13:36,644 CANCEL stale KXXRP15M-26AUG030315-15 yes@50¢ (mins_left=1.4) +2026-08-03 00:14:41,679 skip KXSOL15M-26AUG030315-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:15:25,362 LOSS KXXRP15M-26AUG030315-15 no@50¢ → yes (-50¢) +2026-08-03 00:15:26,030 ⚖ XRP WR=34% → stake $1.00→$0.75 (bets:41) +2026-08-03 00:15:29,069 LOSS KXSOL15M-26AUG030315-15 yes@50¢ → no (-50¢) +2026-08-03 00:15:35,794 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-03 00:15:47,710 skip KXDOGE15M-26AUG030330-30: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:16:18,501 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:18,507 skip KXBNB15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:16:19,367 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:19,371 skip KXXRP15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:16:20,158 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:20,161 skip KXETH15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:16:38,515 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:38,518 skip KXNEAR15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:16:40,168 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:41,974 POST NO x1 KXBTC15M-26AUG030330-30 @ 50¢ — ⚠ RSI 99 extreme OB + momentum reversing → fade DOWN +2026-08-03 00:16:49,512 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:16:49,515 skip KXZEC15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:20:09,714 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:20:09,720 skip KXSOL15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:20:51,108 skip KXBNB15M-26AUG030330-30: no swing (0.006% < 0.005%) +2026-08-03 00:20:51,749 skip KXXRP15M-26AUG030330-30: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:21:20,400 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:21:21,689 POST NO x1 KXDOGE15M-26AUG030330-30 @ 50¢ — ⚠ RSI 100 extreme OB + momentum reversing → fade DOWN +2026-08-03 00:21:30,424 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:21:30,430 skip KXETH15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:21:35,881 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:21:35,884 skip KXNEAR15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:21:37,551 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:21:37,557 skip KXZEC15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:21:53,668 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:21:53,726 skip KXBTC15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:25:13,525 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:25:14,712 POST YES x1 KXSOL15M-26AUG030330-30 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-03 00:25:26,880 ⚖ XRP WR=34% → stake $1.00→$0.75 (bets:41) +2026-08-03 00:25:34,380 HEDGE KXBTC15M-TEST: no@45¢ + yes@42¢ → locked 13¢ +2026-08-03 00:25:37,015 ⚖ BTC WR=32% → stake $1.00→$0.75 (bets:28) +2026-08-03 00:25:47,437 skip KXDOGE15M-26AUG030330-30: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:25:48,431 skip KXBNB15M-26AUG030330-30: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP +2026-08-03 00:25:53,585 POST YES x1 KXETH15M-26AUG030330-30 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-03 00:26:01,358 HEDGE KXBTC15M-TEST: no@45¢ + yes@42¢ → locked 13¢ +2026-08-03 00:26:11,086 POST YES x1 KXNEAR15M-26AUG030330-30 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP +2026-08-03 00:26:19,339 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30) +2026-08-03 00:26:19,361 skip KXXRP15M-26AUG030330-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP +2026-08-03 00:26:20,991 POST YES x1 KXZEC15M-26AUG030330-30 @ 50¢ — ⚠ RSI 0 extreme OS + momentum reversing → fade UP diff --git a/bot.py b/bot.py index 98c6f22..65bf70b 100644 --- a/bot.py +++ b/bot.py @@ -405,13 +405,14 @@ def decide(cfg, conn, price): if mode == "DOWN_SPAM": return mom, lv, lc, lw, "DOWN", "spam-mode short" if mode == "UP_SPAM": return mom, lv, lc, lw, "UP", "spam-mode long" - # ── RSI contrarian: extreme readings → auto-fade ── + # ── RSI contrarian: only on TRUE extremes + reversal confirmation ── r = rsi(conn) if r is not None: - if r > 85: - return mom, lv, lc, lw, "DOWN", f"⚠ RSI {r:.0f} extreme overbought → fade DOWN" - if r < 15: - return mom, lv, lc, lw, "UP", f"⚠ RSI {r:.0f} extreme oversold → fade UP" + # Require BOTH extreme RSI AND momentum already reversing + if r > 92 and mom == "DOWN" and mom_score > 0.01: + return mom, lv, lc, lw, "DOWN", f"⚠ RSI {r:.0f} extreme OB + momentum reversing → fade DOWN" + if r < 8 and mom == "UP" and mom_score > 0.01: + return mom, lv, lc, lw, "UP", f"⚠ RSI {r:.0f} extreme OS + momentum reversing → fade UP" # ── swing threshold gate ── thr = cfg.get("swing_threshold_pct", 0.005) diff --git a/btc.db b/btc.db index b7ff01d..5f49466 100644 Binary files a/btc.db and b/btc.db differ diff --git a/dashboard.py b/dashboard.py index 44075ad..32773f3 100644 --- a/dashboard.py +++ b/dashboard.py @@ -214,7 +214,7 @@ svg{display:block;flex:1}