diff --git a/__pycache__/bot.cpython-311.pyc b/__pycache__/bot.cpython-311.pyc index b076a2e..208e3b6 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 1fedd9c..f47df72 100644 --- a/bot.log +++ b/bot.log @@ -1904,3 +1904,316 @@ sqlite3.OperationalError: no such column: id 2026-08-02 20:07:54,850 POST YES x1 KXXRP15M-26AUG022315-15 @ 50¢ — ⚠ RSI 4 extreme oversold → fade UP 2026-08-02 20:08:27,463 POST YES x1 KXBTC15M-26AUG022315-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP 2026-08-02 20:10:05,986 127.0.0.1 - - [02/Aug/2026 20:10:05] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:12:05,293 skip KXDOGE15M-26AUG022315-15: passes: No clear edge; RSI neutral, trend mixed +2026-08-02 20:12:18,883 POST NO x1 KXSOL15M-26AUG022315-15 @ 50¢ — DOWN: UP spike 0.02% conf=0.65 [RSI(1m)=75 overbought, fading sharp UP spike] +2026-08-02 20:12:50,766 skip KXETH15M-26AUG022315-15: passes: BTC bearish + Fear regime, no clear fade edge +2026-08-02 20:13:01,415 POST NO x1 KXXRP15M-26AUG022315-15 @ 50¢ — DOWN: DOWN spike 0.08% conf=0.65 [RSI 25 oversold but price still declining; fading the down s] +2026-08-02 20:13:23,700 POST YES x1 KXBTC15M-26AUG022315-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP +2026-08-02 20:17:18,978 skip KXDOGE15M-26AUG022330-30: passes: Choppy regime, no clear edge +2026-08-02 20:17:30,145 POST NO x1 KXSOL15M-26AUG022330-30 @ 50¢ — DOWN: DOWN spike 0.05% conf=0.65 [RSI oversold at 30, price near range low, fading the down sp] +2026-08-02 20:17:56,170 127.0.0.1 - - [02/Aug/2026 20:17:56] "GET /fleet HTTP/1.1" 200 - +2026-08-02 20:17:56,651 127.0.0.1 - - [02/Aug/2026 20:17:56] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:18:04,531 127.0.0.1 - - [02/Aug/2026 20:18:04] "GET /api/fleet/ticks?coin=doge&mins=5 HTTP/1.1" 200 - +2026-08-02 20:18:04,527 POST NO x1 KXXRP15M-26AUG022330-30 @ 50¢ — DOWN: DOWN spike 0.05% conf=0.75 [RSI(1m)=82 overbought, fading sharp up move] +2026-08-02 20:18:06,886 HEDGE KXBTC15M-TEST: no@45¢ + yes@42¢ → locked 13¢ +2026-08-02 20:18:13,859 skip KXETH15M-26AUG022330-30: no swing (0.005% < 0.005%) +2026-08-02 20:18:25,214 POST NO x1 KXBTC15M-26AUG022330-30 @ 50¢ — ⚠ RSI 86 extreme overbought → fade DOWN +2026-08-02 20:20:39,154 127.0.0.1 - - [02/Aug/2026 20:20:39] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:20:40,971 127.0.0.1 - - [02/Aug/2026 20:20:40] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:20:41,146 127.0.0.1 - - [02/Aug/2026 20:20:41] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:41,201 127.0.0.1 - - [02/Aug/2026 20:20:41] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:41,220 127.0.0.1 - - [02/Aug/2026 20:20:41] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:41,233 127.0.0.1 - - [02/Aug/2026 20:20:41] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:41,249 127.0.0.1 - - [02/Aug/2026 20:20:41] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:54,098 127.0.0.1 - - [02/Aug/2026 20:20:54] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:20:54,916 127.0.0.1 - - [02/Aug/2026 20:20:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:20:54,981 127.0.0.1 - - [02/Aug/2026 20:20:54] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:55,048 127.0.0.1 - - [02/Aug/2026 20:20:55] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:55,067 127.0.0.1 - - [02/Aug/2026 20:20:55] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:55,084 127.0.0.1 - - [02/Aug/2026 20:20:55] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:20:55,100 127.0.0.1 - - [02/Aug/2026 20:20:55] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:08,883 127.0.0.1 - - [02/Aug/2026 20:21:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:21:09,470 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:21:09,538 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:09,589 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:09,605 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:09,624 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:09,647 127.0.0.1 - - [02/Aug/2026 20:21:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:23,910 127.0.0.1 - - [02/Aug/2026 20:21:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:21:24,455 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:21:24,517 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:24,550 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:24,568 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:24,584 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:24,600 127.0.0.1 - - [02/Aug/2026 20:21:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:38,819 127.0.0.1 - - [02/Aug/2026 20:21:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:21:39,445 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:21:39,478 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:39,539 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:39,557 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:39,568 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:39,582 127.0.0.1 - - [02/Aug/2026 20:21:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:53,824 127.0.0.1 - - [02/Aug/2026 20:21:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:21:54,461 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:21:54,482 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:54,494 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:54,502 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:54,509 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:21:54,518 127.0.0.1 - - [02/Aug/2026 20:21:54] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:08,754 127.0.0.1 - - [02/Aug/2026 20:22:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:22:09,776 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:22:09,810 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:09,828 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:09,845 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:09,868 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:09,876 127.0.0.1 - - [02/Aug/2026 20:22:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:11,450 127.0.0.1 - - [02/Aug/2026 20:22:11] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:22:17,699 POST NO x1 KXDOGE15M-26AUG022330-30 @ 50¢ — ⚠ RSI 97 extreme overbought → fade DOWN +2026-08-02 20:22:23,731 127.0.0.1 - - [02/Aug/2026 20:22:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:22:24,239 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:22:24,257 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:24,270 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:24,278 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:24,289 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:24,296 127.0.0.1 - - [02/Aug/2026 20:22:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:26,119 skip KXSOL15M-26AUG022330-30: passes: RSI neutral, no clear spike to fade +2026-08-02 20:22:38,765 127.0.0.1 - - [02/Aug/2026 20:22:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:22:39,266 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:22:39,299 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:39,314 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:39,335 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:39,348 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:39,357 127.0.0.1 - - [02/Aug/2026 20:22:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:53,733 127.0.0.1 - - [02/Aug/2026 20:22:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:22:54,277 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:22:54,303 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:54,316 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:54,322 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:54,329 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:22:54,335 127.0.0.1 - - [02/Aug/2026 20:22:54] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:08,381 POST YES x1 KXXRP15M-26AUG022330-30 @ 50¢ — ⚠ RSI 5 extreme oversold → fade UP +2026-08-02 20:23:08,918 127.0.0.1 - - [02/Aug/2026 20:23:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:23:09,755 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:23:09,820 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:09,839 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:09,854 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:09,871 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:09,884 127.0.0.1 - - [02/Aug/2026 20:23:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:23,782 127.0.0.1 - - [02/Aug/2026 20:23:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:23:24,278 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:23:24,318 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:24,334 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:24,353 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:24,366 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:24,382 127.0.0.1 - - [02/Aug/2026 20:23:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:27,620 POST YES x1 KXBTC15M-26AUG022330-30 @ 50¢ — ⚠ RSI 1 extreme oversold → fade UP +2026-08-02 20:23:35,791 POST YES x1 KXETH15M-26AUG022330-30 @ 50¢ — ⚠ RSI 4 extreme oversold → fade UP +2026-08-02 20:23:38,751 127.0.0.1 - - [02/Aug/2026 20:23:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:23:39,416 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:23:39,465 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:39,492 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:39,504 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:39,519 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:39,532 127.0.0.1 - - [02/Aug/2026 20:23:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:53,726 127.0.0.1 - - [02/Aug/2026 20:23:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:23:54,450 127.0.0.1 - - [02/Aug/2026 20:23:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:23:55,686 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 20:23:57,016 WIN KXDOGE15M-26AUG021915-15 no@5¢ → no (+95¢) +2026-08-02 20:23:57,340 LOSS KXDOGE15M-26AUG021930-30 no@5¢ → yes (-5¢) +2026-08-02 20:23:57,425 127.0.0.1 - - [02/Aug/2026 20:23:57] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:57,441 127.0.0.1 - - [02/Aug/2026 20:23:57] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:57,449 127.0.0.1 - - [02/Aug/2026 20:23:57] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:57,459 127.0.0.1 - - [02/Aug/2026 20:23:57] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:57,469 127.0.0.1 - - [02/Aug/2026 20:23:57] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:23:57,663 WIN KXDOGE15M-26AUG021945-45 no@50¢ → no (+50¢) +2026-08-02 20:23:57,976 WIN KXDOGE15M-26AUG022015-15 no@50¢ → no (+50¢) +2026-08-02 20:23:58,289 WIN KXDOGE15M-26AUG022030-30 no@50¢ → no (+50¢) +2026-08-02 20:23:58,602 WIN KXDOGE15M-26AUG022100-00 no@50¢ → no (+50¢) +2026-08-02 20:23:58,933 WIN KXDOGE15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:23:59,246 WIN KXDOGE15M-26AUG022145-45 no@50¢ → no (+50¢) +2026-08-02 20:23:59,558 WIN KXDOGE15M-26AUG022200-00 yes@50¢ → yes (+50¢) +2026-08-02 20:23:59,881 WIN KXDOGE15M-26AUG022200-00 yes@50¢ → yes (+50¢) +2026-08-02 20:24:00,196 LOSS KXDOGE15M-26AUG022200-00 no@50¢ → yes (-50¢) +2026-08-02 20:24:00,255 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 20:24:00,255 staggering start by 20s +2026-08-02 20:24:00,513 WIN KXDOGE15M-26AUG022215-15 no@50¢ → no (+50¢) +2026-08-02 20:24:00,835 LOSS KXDOGE15M-26AUG022215-15 yes@50¢ → no (-50¢) +2026-08-02 20:24:01,162 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:01,477 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:01,793 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:02,213 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:02,527 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:02,840 WIN KXDOGE15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:24:03,156 WIN KXDOGE15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:24:03,468 WIN KXDOGE15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:24:03,788 WIN KXDOGE15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:24:04,098 WIN KXDOGE15M-26AUG022300-00 no@50¢ → no (+50¢) +2026-08-02 20:24:04,409 LOSS KXDOGE15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:24:04,719 LOSS KXDOGE15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:24:05,035 WIN KXDOGE15M-26AUG022315-15 no@50¢ → no (+50¢) +2026-08-02 20:24:05,332 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 20:24:05,332 staggering start by 40s +2026-08-02 20:24:08,743 127.0.0.1 - - [02/Aug/2026 20:24:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:24:09,297 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:24:09,313 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:09,324 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:09,332 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:09,338 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:09,345 127.0.0.1 - - [02/Aug/2026 20:24:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:10,359 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 20:24:10,359 staggering start by 60s +2026-08-02 20:24:12,617 POST NO x1 KXDOGE15M-26AUG022330-30 @ 50¢ — DOWN: DOWN spike 0.04% conf=0.75 [RSI 27 oversold + sharp down trend, fade the dip] +2026-08-02 20:24:15,295 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢ +2026-08-02 20:24:15,295 staggering start by 80s +2026-08-02 20:24:21,343 WIN KXSOL15M-26AUG021915-15 no@45¢ → no (+55¢) +2026-08-02 20:24:21,626 LOSS KXSOL15M-26AUG021930-30 no@5¢ → yes (-5¢) +2026-08-02 20:24:21,882 LOSS KXSOL15M-26AUG022000-00 no@50¢ → yes (-50¢) +2026-08-02 20:24:22,137 WIN KXSOL15M-26AUG022015-15 no@50¢ → no (+50¢) +2026-08-02 20:24:22,398 WIN KXSOL15M-26AUG022030-30 no@50¢ → no (+50¢) +2026-08-02 20:24:22,646 WIN KXSOL15M-26AUG022045-45 no@50¢ → no (+50¢) +2026-08-02 20:24:22,899 WIN KXSOL15M-26AUG022100-00 no@50¢ → no (+50¢) +2026-08-02 20:24:23,151 WIN KXSOL15M-26AUG022115-15 no@50¢ → no (+50¢) +2026-08-02 20:24:23,403 WIN KXSOL15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:24:23,656 WIN KXSOL15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:24:23,723 127.0.0.1 - - [02/Aug/2026 20:24:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:24:23,908 WIN KXSOL15M-26AUG022145-45 no@50¢ → no (+50¢) +2026-08-02 20:24:24,164 WIN KXSOL15M-26AUG022145-45 no@50¢ → no (+50¢) +2026-08-02 20:24:24,222 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:24:24,236 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:24,246 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:24,251 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:24,256 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:24,262 127.0.0.1 - - [02/Aug/2026 20:24:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:24,417 WIN KXSOL15M-26AUG022145-45 no@50¢ → no (+50¢) +2026-08-02 20:24:24,684 LOSS KXSOL15M-26AUG022200-00 yes@50¢ → no (-50¢) +2026-08-02 20:24:24,934 WIN KXSOL15M-26AUG022200-00 no@50¢ → no (+50¢) +2026-08-02 20:24:25,184 LOSS KXSOL15M-26AUG022215-15 yes@50¢ → no (-50¢) +2026-08-02 20:24:25,442 LOSS KXSOL15M-26AUG022215-15 yes@50¢ → no (-50¢) +2026-08-02 20:24:25,693 LOSS KXSOL15M-26AUG022215-15 yes@50¢ → no (-50¢) +2026-08-02 20:24:25,937 WIN KXSOL15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:26,199 WIN KXSOL15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:26,455 WIN KXSOL15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:26,709 LOSS KXSOL15M-26AUG022230-30 yes@50¢ → no (-50¢) +2026-08-02 20:24:26,963 LOSS KXSOL15M-26AUG022230-30 yes@50¢ → no (-50¢) +2026-08-02 20:24:27,221 WIN KXSOL15M-26AUG022300-00 no@50¢ → no (+50¢) +2026-08-02 20:24:27,476 WIN KXSOL15M-26AUG022300-00 no@50¢ → no (+50¢) +2026-08-02 20:24:27,748 LOSS KXSOL15M-26AUG022315-15 no@50¢ → yes (-50¢) +2026-08-02 20:24:28,031 LOSS KXSOL15M-26AUG022315-15 no@50¢ → yes (-50¢) +2026-08-02 20:24:34,429 skip KXSOL15M-26AUG022330-30: passes: RSI neutral, no clear spike to fade +2026-08-02 20:24:38,753 127.0.0.1 - - [02/Aug/2026 20:24:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:24:39,272 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:24:39,297 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:39,306 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:39,312 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:39,317 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:39,323 127.0.0.1 - - [02/Aug/2026 20:24:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:46,987 WIN KXETH15M-26AUG021915-15 no@5¢ → no (+95¢) +2026-08-02 20:24:47,399 LOSS KXETH15M-26AUG021930-30 no@5¢ → yes (-5¢) +2026-08-02 20:24:47,811 LOSS KXETH15M-26AUG021945-45 no@50¢ → yes (-50¢) +2026-08-02 20:24:48,221 WIN KXETH15M-26AUG022030-30 no@50¢ → no (+50¢) +2026-08-02 20:24:48,626 WIN KXETH15M-26AUG022045-45 no@50¢ → no (+50¢) +2026-08-02 20:24:49,035 WIN KXETH15M-26AUG022115-15 no@50¢ → no (+50¢) +2026-08-02 20:24:49,441 WIN KXETH15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:24:49,851 WIN KXETH15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:24:50,266 WIN KXETH15M-26AUG022130-30 no@50¢ → no (+50¢) +2026-08-02 20:24:50,686 WIN KXETH15M-26AUG022200-00 no@50¢ → no (+50¢) +2026-08-02 20:24:51,091 WIN KXETH15M-26AUG022215-15 no@50¢ → no (+50¢) +2026-08-02 20:24:51,500 WIN KXETH15M-26AUG022215-15 no@50¢ → no (+50¢) +2026-08-02 20:24:51,915 LOSS KXETH15M-26AUG022215-15 yes@50¢ → no (-50¢) +2026-08-02 20:24:52,409 WIN KXETH15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:52,819 WIN KXETH15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:53,230 LOSS KXETH15M-26AUG022230-30 yes@50¢ → no (-50¢) +2026-08-02 20:24:53,682 WIN KXETH15M-26AUG022230-30 no@50¢ → no (+50¢) +2026-08-02 20:24:53,737 127.0.0.1 - - [02/Aug/2026 20:24:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:24:54,091 LOSS KXETH15M-26AUG022230-30 yes@50¢ → no (-50¢) +2026-08-02 20:24:54,297 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:24:54,317 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:54,329 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:54,335 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:54,341 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:54,348 127.0.0.1 - - [02/Aug/2026 20:24:54] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:24:54,495 LOSS KXETH15M-26AUG022245-45 no@50¢ → yes (-50¢) +2026-08-02 20:24:54,901 WIN KXETH15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:24:55,312 LOSS KXETH15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:24:55,714 LOSS KXETH15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:24:56,126 WIN KXETH15M-26AUG022300-00 no@50¢ → no (+50¢) +2026-08-02 20:24:56,533 WIN KXETH15M-26AUG022315-15 no@50¢ → no (+50¢) +2026-08-02 20:24:56,940 WIN KXETH15M-26AUG022315-15 no@50¢ → no (+50¢) +2026-08-02 20:25:08,743 127.0.0.1 - - [02/Aug/2026 20:25:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:25:09,297 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:25:09,312 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:09,324 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:09,333 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:09,339 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:09,347 127.0.0.1 - - [02/Aug/2026 20:25:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:11,482 WIN KXXRP15M-26AUG022230-30 yes@50¢ → yes (+50¢) +2026-08-02 20:25:11,796 WIN KXXRP15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:12,230 WIN KXXRP15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:12,538 WIN KXXRP15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:12,848 LOSS KXXRP15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:25:13,158 LOSS KXXRP15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:25:13,469 LOSS KXXRP15M-26AUG022315-15 yes@50¢ → no (-50¢) +2026-08-02 20:25:13,786 WIN KXXRP15M-26AUG022315-15 no@50¢ → no (+50¢) +2026-08-02 20:25:18,176 POST YES x1 KXETH15M-26AUG022330-30 @ 50¢ — ⚠ RSI 10 extreme oversold → fade UP +2026-08-02 20:25:22,267 POST NO x1 KXXRP15M-26AUG022330-30 @ 50¢ — DOWN: DOWN spike 0.04% conf=0.65 [Spot at $1.0710, 1h/2h bearish trend, RSI(1m)=36 low — fadin] +2026-08-02 20:25:23,740 127.0.0.1 - - [02/Aug/2026 20:25:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:25:24,278 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:25:24,293 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:24,305 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:24,314 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:24,320 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:24,330 127.0.0.1 - - [02/Aug/2026 20:25:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:35,481 LOSS KXBTC15M-26AUG022230-30 yes@50¢ → no (-50¢) +2026-08-02 20:25:35,566 WIN KXBTC15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:35,652 WIN KXBTC15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:35,858 WIN KXBTC15M-26AUG022245-45 yes@50¢ → yes (+50¢) +2026-08-02 20:25:35,949 LOSS KXBTC15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:25:36,051 LOSS KXBTC15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:25:36,150 LOSS KXBTC15M-26AUG022300-00 yes@50¢ → no (-50¢) +2026-08-02 20:25:36,253 WIN KXBTC15M-26AUG022315-15 no@50¢ → no (+50¢) +2026-08-02 20:25:36,351 LOSS KXBTC15M-26AUG022315-15 yes@50¢ → no (-50¢) +2026-08-02 20:25:36,444 LOSS KXBTC15M-26AUG022315-15 yes@50¢ → no (-50¢) +2026-08-02 20:25:38,767 127.0.0.1 - - [02/Aug/2026 20:25:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:25:39,288 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:25:39,309 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:39,320 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:39,327 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:39,336 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:39,347 127.0.0.1 - - [02/Aug/2026 20:25:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:53,747 127.0.0.1 - - [02/Aug/2026 20:25:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:25:55,414 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:25:55,433 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:55,444 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:55,452 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:55,458 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:55,466 127.0.0.1 - - [02/Aug/2026 20:25:55] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:25:57,846 POST YES x1 KXBTC15M-26AUG022330-30 @ 50¢ — ⚠ RSI 1 extreme oversold → fade UP +2026-08-02 20:26:05,704 127.0.0.1 - - [02/Aug/2026 20:26:05] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:26:08,738 127.0.0.1 - - [02/Aug/2026 20:26:08] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:26:09,380 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:26:09,395 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:09,407 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:09,415 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:09,421 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:09,428 127.0.0.1 - - [02/Aug/2026 20:26:09] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:23,764 127.0.0.1 - - [02/Aug/2026 20:26:23] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:26:24,392 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:26:24,421 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:24,437 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:24,447 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:24,455 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:24,464 127.0.0.1 - - [02/Aug/2026 20:26:24] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:38,792 127.0.0.1 - - [02/Aug/2026 20:26:38] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:26:39,398 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:26:39,416 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:39,433 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:39,443 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:39,452 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:39,462 127.0.0.1 - - [02/Aug/2026 20:26:39] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:53,888 127.0.0.1 - - [02/Aug/2026 20:26:53] "GET /api/fleet HTTP/1.1" 200 - +2026-08-02 20:26:54,425 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/state HTTP/1.1" 200 - +2026-08-02 20:26:54,451 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:54,473 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:54,486 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:54,500 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 - +2026-08-02 20:26:54,521 127.0.0.1 - - [02/Aug/2026 20:26:54] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 - diff --git a/bot.py b/bot.py index f0a66fe..2fa5758 100644 --- a/bot.py +++ b/bot.py @@ -420,17 +420,17 @@ def resolve_bets(kx, conn): for oid, ticker, side, count, px, dry in open_orders: try: m = kx.req("GET", f"/markets/{ticker}") - status = m.get("status") - if status not in ("settled", "finalized", "determined"): - # also catch expired-untraded: close_time passed + no result → mark dead - ct = m.get("close_time") + mk = m.get("market", m) # Kalshi nests under "market" key + status = mk.get("status") + if status not in ("settled", "finalized", "determined", "closed"): + ct = mk.get("close_time") if ct: from datetime import datetime, timezone if datetime.fromisoformat(ct.replace("Z","+00:00")).timestamp() < time.time() - 120: conn.execute("UPDATE orders SET status='expired', settle_ts=? WHERE id=?", (time.time(), oid)) conn.commit() continue - result = (m.get("result") or "").lower() # 'yes' | 'no' + result = (mk.get("result") or "").lower() # 'yes' | 'no' if not result: continue won = (result == side) @@ -592,7 +592,8 @@ def run(): for oid, ticker, koid, side, px in open_orders: try: m = kx.req("GET", f"/markets/{ticker}") - ct = m.get("close_time","") + mk = m.get("market", m) # Kalshi nests under "market" + ct = mk.get("close_time","") if ct: close_ts = datetime.fromisoformat(ct.replace("Z","+00:00")).timestamp() mins_left = (close_ts - time.time())/60 @@ -643,7 +644,8 @@ def run(): continue try: verify = kx.req("GET", f"/markets/{ticker}") - st = verify.get("status", "open") + vm = verify.get("market", verify) # Kalshi nests under "market" + st = vm.get("status", "open") if st and st not in ("open", "active"): log_event(conn, "info", f"skip {ticker}: market closed (status={st})") continue diff --git a/btc.db b/btc.db index 4e3c80c..f89b01f 100644 Binary files a/btc.db and b/btc.db differ diff --git a/btc.json b/btc.json index 3cb6bc5..b937e41 100644 --- a/btc.json +++ b/btc.json @@ -24,5 +24,6 @@ "fast_llm_model": "qwen3.5:4b", "deep_llm_url": "http://10.30.20.186:11434", "deep_llm_model": "ornith:latest", - "color": "#f7931a" + "color": "#f7931a", + "proxy": "http://10.30.20.189:3128" } \ No newline at end of file diff --git a/doge.db b/doge.db index 182c3fd..bf23e69 100644 Binary files a/doge.db and b/doge.db differ diff --git a/eth.db b/eth.db index cb58587..e231401 100644 Binary files a/eth.db and b/eth.db differ diff --git a/sol.db b/sol.db index 45ee942..5717bd5 100644 Binary files a/sol.db and b/sol.db differ diff --git a/xrp.db b/xrp.db index d16307e..44190a1 100644 Binary files a/xrp.db and b/xrp.db differ