feat: 3-model ensemble (qwen3.5+ornith+llama3.2), WR-based stake rebalancing, 25% exposure cap, rebalance ceiling .50, exposure throttling

This commit is contained in:
drjones
2026-08-02 21:51:00 -07:00
parent 0408ff026f
commit 32cfdfe842
14 changed files with 1098 additions and 26 deletions

Binary file not shown.

Binary file not shown.

929
bot.log
View File

@@ -2217,3 +2217,932 @@ sqlite3.OperationalError: no such column: id
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 -
2026-08-02 20:29:22,629 POST NO x1 KXDOGE15M-26AUG022330-30 @ 50¢ — ⚠ RSI 99 extreme overbought → fade DOWN
2026-08-02 20:30:04,103 LOSS KXETH15M-26AUG022330-30 yes@50¢ → no (-50¢)
2026-08-02 20:30:04,515 LOSS KXETH15M-26AUG022330-30 yes@50¢ → no (-50¢)
2026-08-02 20:30:09,317 LOSS KXXRP15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:09,636 WIN KXXRP15M-26AUG022330-30 yes@50¢ → yes (+50¢)
2026-08-02 20:30:09,722 WIN KXBTC15M-26AUG022330-30 no@50¢ → no (+50¢)
2026-08-02 20:30:09,818 LOSS KXBTC15M-26AUG022330-30 yes@50¢ → no (-50¢)
2026-08-02 20:30:09,912 LOSS KXBTC15M-26AUG022330-30 yes@50¢ → no (-50¢)
2026-08-02 20:30:09,951 LOSS KXXRP15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:22,409 LOSS KXDOGE15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:22,655 LOSS KXSOL15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:22,731 LOSS KXDOGE15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:23,090 LOSS KXDOGE15M-26AUG022330-30 no@50¢ → yes (-50¢)
2026-08-02 20:30:29,824 POST YES x1 KXSOL15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:30:41,990 POST NO x1 KXETH15M-26AUG022345-45 @ 50¢ — DOWN: DOWN spike 0.02% conf=0.65 [RSI(5m)=27 oversold, BTC bearish macro, 1h/2h declining tren]
2026-08-02 20:30:58,181 skip KXXRP15M-26AUG022345-45: no swing (0.001% < 0.005%)
2026-08-02 20:31:03,298 POST YES x1 KXBTC15M-26AUG022345-45 @ 50¢ — ⚠ RSI 3 extreme oversold → fade UP
2026-08-02 20:32:23,934 🔧 self-adapt: Improve win rate and reduce losses — override={"force_min_conf": 0.62, "force_swing_threshold": 0.007}
2026-08-02 20:32:57,205 127.0.0.1 - - [02/Aug/2026 20:32:57] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:34:20,517 POST YES x1 KXDOGE15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:35:01,300 127.0.0.1 - - [02/Aug/2026 20:35:01] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:35:03,258 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:35:03,282 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:03,296 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:03,307 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:03,318 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:03,330 127.0.0.1 - - [02/Aug/2026 20:35:03] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:16,299 127.0.0.1 - - [02/Aug/2026 20:35:16] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:35:17,241 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:35:17,260 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:17,272 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:17,281 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:17,290 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:17,302 127.0.0.1 - - [02/Aug/2026 20:35:17] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:26,491 POST YES x1 KXSOL15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:35:31,230 127.0.0.1 - - [02/Aug/2026 20:35:31] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:35:32,128 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:35:32,145 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:32,159 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:32,168 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:32,175 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:32,182 127.0.0.1 - - [02/Aug/2026 20:35:32] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:32,324 POST YES x1 KXETH15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:35:46,248 127.0.0.1 - - [02/Aug/2026 20:35:46] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:35:47,129 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:35:47,145 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:47,164 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:47,175 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:47,186 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:47,199 127.0.0.1 - - [02/Aug/2026 20:35:47] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:35:56,297 POST YES x1 KXXRP15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:36:01,102 POST YES x1 KXBTC15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:36:01,309 127.0.0.1 - - [02/Aug/2026 20:36:01] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:36:02,288 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:36:02,313 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:02,335 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:02,349 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:02,366 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:02,378 127.0.0.1 - - [02/Aug/2026 20:36:02] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:16,225 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:36:16,815 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:36:16,838 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:16,849 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:16,857 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:16,866 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:16,876 127.0.0.1 - - [02/Aug/2026 20:36:16] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:31,227 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:36:31,754 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:36:31,778 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:31,815 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:31,831 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:31,842 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:31,855 127.0.0.1 - - [02/Aug/2026 20:36:31] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:46,236 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:36:46,891 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:36:46,910 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:46,922 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:46,931 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:46,940 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 20:36:46,953 127.0.0.1 - - [02/Aug/2026 20:36:46] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 20:37:01,487 127.0.0.1 - - [02/Aug/2026 20:37:01] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 20:37:02,088 127.0.0.1 - - [02/Aug/2026 20:37:02] "GET /api/state HTTP/1.1" 200 -
2026-08-02 20:37:35,593 loop error: HTTPSConnectionPool(host='api.elections.kalshi.com', port=443): Read timed out. (read timeout=15)
2026-08-02 20:39:24,022 POST YES x1 KXDOGE15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:40:30,825 POST YES x1 KXSOL15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:40:46,166 POST YES x1 KXETH15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:40:59,400 POST YES x1 KXXRP15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:41:02,657 POST YES x1 KXBTC15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:42:40,999 🔧 self-adapt: Improve win rate and reduce losses. — override={"force_min_conf": 0.62, "force_swing_threshold": 0.008}
2026-08-02 20:44:27,486 POST YES x1 KXDOGE15M-26AUG022345-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:45:08,037 LOSS KXSOL15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:08,298 LOSS KXSOL15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:08,587 LOSS KXSOL15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:27,569 LOSS KXDOGE15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:27,890 LOSS KXDOGE15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:28,207 LOSS KXDOGE15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:31,823 LOSS KXBTC15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:32,086 LOSS KXBTC15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:32,098 WIN KXXRP15M-26AUG022345-45 yes@50¢ → yes (+50¢)
2026-08-02 20:45:32,248 LOSS KXBTC15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:32,426 WIN KXXRP15M-26AUG022345-45 yes@50¢ → yes (+50¢)
2026-08-02 20:45:36,402 WIN KXETH15M-26AUG022345-45 no@50¢ → no (+50¢)
2026-08-02 20:45:36,809 POST NO x1 KXSOL15M-26AUG030000-00 @ 50¢ — DOWN: DOWN spike 0.05% conf=0.65 [RSI(1m) at 50 neutral, but BTC bearish macro + choppy regime]
2026-08-02 20:45:36,819 LOSS KXETH15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:37,231 LOSS KXETH15M-26AUG022345-45 yes@50¢ → no (-50¢)
2026-08-02 20:45:41,967 POST NO x1 KXETH15M-26AUG030000-00 @ 50¢ — DOWN: DOWN spike 0.03% conf=0.65 [Sharp 1h/2h downtrend + BTC bearish macro, fading the down s]
2026-08-02 20:45:57,256 POST YES x1 KXXRP15M-26AUG030000-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:46:01,587 POST YES x1 KXBTC15M-26AUG030000-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:49:25,875 POST NO x1 KXDOGE15M-26AUG030000-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 20:50:34,135 POST YES x1 KXSOL15M-26AUG030000-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:50:53,383 POST YES x1 KXETH15M-26AUG030000-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 20:51:01,194 POST NO x1 KXXRP15M-26AUG030000-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 20:51:02,716 POST NO x1 KXBTC15M-26AUG030000-00 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 20:53:27,642 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 20:53:32,708 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 20:53:32,708 staggering start by 20s
2026-08-02 20:53:37,740 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 20:53:37,740 staggering start by 40s
2026-08-02 20:53:43,013 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 20:53:43,014 staggering start by 60s
2026-08-02 20:53:47,949 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 20:53:47,949 staggering start by 80s
2026-08-02 20:53:53,089 diverifier failed: HTTPConnectionPool(host='10.30.20.154', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:53:53,091 loop error: 'BORDERLINE'
2026-08-02 20:54:15,708 diverifier failed: HTTPConnectionPool(host='10.30.20.71', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:54:15,711 loop error: 'BORDERLINE'
2026-08-02 20:54:51,161 diverifier failed: HTTPConnectionPool(host='10.30.20.189', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:54:51,164 loop error: 'BORDERLINE'
2026-08-02 20:55:07,056 diverifier failed: HTTPConnectionPool(host='10.30.20.154', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:55:07,058 loop error: 'BORDERLINE'
2026-08-02 20:55:40,751 diverifier failed: HTTPConnectionPool(host='10.30.20.189', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:55:40,753 loop error: 'BORDERLINE'
2026-08-02 20:58:30,473 CANCEL stale KXDOGE15M-26AUG030000-00 no@50¢ (mins_left=1.5)
2026-08-02 20:58:31,572 CANCEL stale KXETH15M-26AUG030000-00 no@50¢ (mins_left=1.5)
2026-08-02 20:58:37,469 CANCEL stale KXBTC15M-26AUG030000-00 no@50¢ (mins_left=1.4)
2026-08-02 20:58:48,880 diverifier failed: HTTPConnectionPool(host='10.30.20.154', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:58:48,883 loop error: 'BORDERLINE'
2026-08-02 20:59:13,838 diverifier failed: HTTPConnectionPool(host='10.30.20.71', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:59:13,846 loop error: 'BORDERLINE'
2026-08-02 20:59:46,516 diverifier failed: HTTPConnectionPool(host='10.30.20.189', port=3128): Read timed out. (read timeout=15)
2026-08-02 20:59:46,518 loop error: 'BORDERLINE'
2026-08-02 21:00:17,656 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:00:22,508 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:00:22,508 staggering start by 20s
2026-08-02 21:00:27,515 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:00:27,516 staggering start by 40s
2026-08-02 21:00:32,629 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:00:32,629 staggering start by 60s
2026-08-02 21:00:33,901 POST YES x1 KXDOGE15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:00:37,678 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:00:37,678 staggering start by 80s
2026-08-02 21:00:43,610 WIN KXSOL15M-26AUG030000-00 no@50¢ → no (+50¢)
2026-08-02 21:00:44,580 LOSS KXSOL15M-26AUG030000-00 yes@50¢ → no (-50¢)
2026-08-02 21:01:09,049 LOSS KXETH15M-26AUG030000-00 yes@50¢ → no (-50¢)
2026-08-02 21:01:14,105 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:01:14,111 skip KXSOL15M-26AUG030015-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:01:33,931 LOSS KXXRP15M-26AUG030000-00 yes@50¢ → no (-50¢)
2026-08-02 21:01:34,546 WIN KXXRP15M-26AUG030000-00 no@50¢ → no (+50¢)
2026-08-02 21:01:47,825 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:01:47,829 skip KXETH15M-26AUG030015-15: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:01:48,785 skip KXXRP15M-26AUG030015-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP
2026-08-02 21:01:59,219 LOSS KXBTC15M-26AUG030000-00 yes@50¢ → no (-50¢)
2026-08-02 21:02:21,705 skip KXBTC15M-26AUG030015-15: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP
2026-08-02 21:03:47,762 127.0.0.1 - - [02/Aug/2026 21:03:47] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:05:44,799 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:05:45,749 POST YES x1 KXDOGE15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:06:12,310 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:06:12,997 POST YES x1 KXSOL15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:06:22,727 POST NO x1 KXETH15M-26AUG030015-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:07:00,146 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:07:01,009 POST NO x1 KXXRP15M-26AUG030015-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:07:25,256 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:07:26,253 POST YES x1 KXBTC15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:10:50,278 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:10:51,274 POST YES x1 KXDOGE15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:11:12,899 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:11:13,535 POST NO x1 KXSOL15M-26AUG030015-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:11:48,917 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:11:50,097 POST NO x1 KXETH15M-26AUG030015-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:11:51,421 POST YES x1 KXXRP15M-26AUG030015-15 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:12:38,135 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:12:39,184 POST NO x1 KXBTC15M-26AUG030015-15 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:15:27,965 WIN KXETH15M-26AUG030015-15 no@50¢ → no (+50¢)
2026-08-02 21:15:28,316 LOSS KXBTC15M-26AUG030015-15 yes@50¢ → no (-50¢)
2026-08-02 21:15:29,057 WIN KXETH15M-26AUG030015-15 no@50¢ → no (+50¢)
2026-08-02 21:15:29,081 WIN KXBTC15M-26AUG030015-15 no@50¢ → no (+50¢)
2026-08-02 21:15:32,394 LOSS KXSOL15M-26AUG030015-15 yes@50¢ → no (-50¢)
2026-08-02 21:15:33,023 WIN KXSOL15M-26AUG030015-15 no@50¢ → no (+50¢)
2026-08-02 21:15:37,679 WIN KXDOGE15M-26AUG030015-15 yes@50¢ → yes (+50¢)
2026-08-02 21:15:38,561 WIN KXDOGE15M-26AUG030015-15 yes@50¢ → yes (+50¢)
2026-08-02 21:15:38,653 WIN KXXRP15M-26AUG030015-15 no@50¢ → no (+50¢)
2026-08-02 21:15:39,225 WIN KXDOGE15M-26AUG030015-15 yes@50¢ → yes (+50¢)
2026-08-02 21:15:39,366 LOSS KXXRP15M-26AUG030015-15 yes@50¢ → no (-50¢)
2026-08-02 21:16:09,349 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:16:09,353 skip KXDOGE15M-26AUG030030-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:16:12,749 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:16:12,752 skip KXSOL15M-26AUG030030-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:16:23,771 POST NO x1 KXETH15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:16:49,551 POST NO x1 KXXRP15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:17:12,997 POST NO x1 KXBTC15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:20:51,697 POST YES x1 KXDOGE15M-26AUG030030-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:21:00,447 POST YES x1 KXSOL15M-26AUG030030-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:21:35,839 POST NO x1 KXETH15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:22:03,844 127.0.0.1 - - [02/Aug/2026 21:22:03] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:22:08,178 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=15)
2026-08-02 21:22:08,982 POST NO x1 KXXRP15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:22:25,671 POST NO x1 KXBTC15M-26AUG030030-30 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:24:17,085 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:24:22,055 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:24:22,055 staggering start by 20s
2026-08-02 21:24:27,273 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:24:27,273 staggering start by 40s
2026-08-02 21:24:32,210 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:24:32,210 staggering start by 60s
2026-08-02 21:24:33,193 POST YES x1 KXDOGE15M-26AUG030030-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:24:37,134 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:24:37,134 staggering start by 80s
2026-08-02 21:24:57,167 POST YES x1 KXSOL15M-26AUG030030-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:26:02,229 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:26:02,232 skip KXETH15M-26AUG030030-30: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:26:18,453 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:26:19,473 POST YES x1 KXXRP15M-26AUG030030-30 @ 50¢ — ⚠ RSI 3 extreme oversold → fade UP
2026-08-02 21:26:23,345 POST YES x1 KXBTC15M-26AUG030030-30 @ 50¢ — ⚠ RSI 8 extreme oversold → fade UP
2026-08-02 21:28:30,333 CANCEL stale KXDOGE15M-26AUG030030-30 yes@50¢ (mins_left=1.5)
2026-08-02 21:28:31,091 CANCEL stale KXDOGE15M-26AUG030030-30 yes@50¢ (mins_left=1.5)
2026-08-02 21:28:32,083 CANCEL stale KXSOL15M-26AUG030030-30 yes@50¢ (mins_left=1.5)
2026-08-02 21:28:32,642 CANCEL stale KXSOL15M-26AUG030030-30 yes@50¢ (mins_left=1.5)
2026-08-02 21:28:43,409 CANCEL stale KXXRP15M-26AUG030030-30 yes@50¢ (mins_left=1.3)
2026-08-02 21:28:45,098 CANCEL stale KXBTC15M-26AUG030030-30 yes@50¢ (mins_left=1.3)
2026-08-02 21:29:30,197 POST YES x1 KXDOGE15M-26AUG030030-30 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:29:51,302 CANCEL stale KXDOGE15M-26AUG030030-30 yes@50¢ (mins_left=0.2)
2026-08-02 21:30:33,842 LOSS KXETH15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:30:34,758 LOSS KXETH15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:30:35,124 LOSS KXBTC15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:30:35,834 LOSS KXBTC15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:30:36,959 LOSS KXXRP15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:30:37,603 LOSS KXXRP15M-26AUG030030-30 no@50¢ → yes (-50¢)
2026-08-02 21:31:11,947 POST NO x1 KXBTC15M-26AUG030045-45 @ 50¢ — ⚠ RSI 87 extreme overbought → fade DOWN
2026-08-02 21:31:14,655 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:31:14,658 skip KXSOL15M-26AUG030045-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:31:19,488 POST NO x1 KXETH15M-26AUG030045-45 @ 50¢ — DOWN: UP spike 0.11% conf=0.75 [[ENSEMBLE: 0U/2D/0S] qwen3.5=DOWN | ornith=DOWN]
2026-08-02 21:31:21,013 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:31:21,019 skip KXXRP15M-26AUG030045-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:32:45,707 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:32:45,708 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:32:50,648 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:32:50,649 staggering start by 20s
2026-08-02 21:32:55,767 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:32:55,767 staggering start by 40s
2026-08-02 21:33:00,047 POST YES x1 KXDOGE15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:33:00,708 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:33:00,708 staggering start by 60s
2026-08-02 21:33:05,729 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:33:05,729 staggering start by 80s
2026-08-02 21:33:20,374 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:22,122 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:23,781 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:24,806 skip KXSOL15M-26AUG030045-45: passes: [ENSEMBLE: 0U/0D/2S] qwen3.5=SKIP | ornith=SKIP
2026-08-02 21:33:25,578 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:27,794 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:29,529 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:31,380 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:33,421 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:35,228 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:37,088 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:39,125 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:41,179 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:43,088 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:45,060 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:46,996 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:48,865 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:50,913 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:53,055 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:54,866 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:56,514 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:33:58,233 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:00,078 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:01,237 POST NO x1 KXETH15M-26AUG030045-45 @ 50¢ — ⚠ RSI 92 extreme overbought → fade DOWN
2026-08-02 21:34:01,842 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:03,624 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:05,773 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:07,779 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:09,677 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:11,668 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:13,506 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:15,518 POST NO x1 KXXRP15M-26AUG030045-45 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:34:15,623 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:17,421 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:19,078 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:20,764 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:22,607 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:24,402 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:26,282 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:27,256 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:34:28,218 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:30,023 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:31,957 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:34,042 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:36,022 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:37,653 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:39,428 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:41,209 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:43,194 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:45,045 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:46,925 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:48,699 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:50,613 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:51,266 POST NO x1 KXBTC15M-26AUG030045-45 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:34:52,613 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:54,606 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:56,381 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:58,129 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:34:59,802 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:01,602 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:03,276 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:05,037 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:06,903 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:08,915 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:10,863 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:12,094 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:12,700 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:14,346 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:15,338 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:16,130 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:17,789 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:18,319 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:19,594 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:21,303 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:21,643 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:23,706 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:24,302 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:25,714 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:27,313 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:27,674 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:29,450 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:30,305 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:31,355 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:33,002 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:33,278 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:34,988 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:36,281 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:37,149 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:39,045 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:39,469 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:41,169 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:42,611 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:42,927 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:44,839 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:45,765 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:46,818 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:48,699 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:48,750 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:50,710 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:51,838 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:52,741 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:54,780 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:54,963 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:56,666 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:35:57,958 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:35:58,655 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:00,553 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:01,475 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:02,727 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:04,459 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:05,036 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:06,715 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:08,510 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:08,706 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:10,909 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:12,178 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:12,674 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:14,705 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:15,854 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:16,801 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:18,895 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:19,516 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:20,989 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:23,193 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:23,303 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:24,957 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:26,868 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:27,284 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:29,171 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:30,276 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:31,305 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:33,233 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:33,632 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:34,967 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:36,638 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:36,894 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:38,415 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:40,091 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:40,281 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:41,882 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:43,666 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:43,722 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:45,638 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:46,674 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:47,464 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:49,872 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:50,300 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:51,847 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:53,590 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:53,708 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:55,805 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:57,049 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:36:57,695 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:36:59,824 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:00,295 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:01,993 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:03,450 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:03,986 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:05,817 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:06,896 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:07,939 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:09,740 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:10,482 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:11,583 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:13,632 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:13,632 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:15,286 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:17,302 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:17,410 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:19,294 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:20,660 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:21,327 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:23,320 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:23,634 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:25,073 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:26,955 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:27,059 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:28,975 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:30,561 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:31,018 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:33,027 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:33,578 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:34,898 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:36,810 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:36,811 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:38,468 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:40,159 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:40,299 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:41,946 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:43,579 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:43,753 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:45,631 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:46,820 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:47,643 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:37:49,812 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:53,121 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:56,686 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:37:59,086 POST YES x1 KXDOGE15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:37:59,639 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:02,627 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:05,816 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:09,088 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:12,607 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:15,619 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:19,132 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:19,727 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:21,944 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:22,031 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:22,720 POST YES x1 KXSOL15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:38:24,680 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:25,220 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:27,327 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:28,614 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:29,869 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:31,805 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:32,274 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:34,808 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:34,940 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:37,429 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:37,975 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:40,070 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:41,324 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:42,367 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:44,714 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:45,181 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:47,728 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:47,778 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:50,359 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:51,464 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:52,725 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:54,961 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:38:54,963 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:57,503 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:38:58,125 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:00,099 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:01,279 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:02,371 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:04,778 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:04,855 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:07,315 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:08,028 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:09,944 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:11,276 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:12,389 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:14,253 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:14,808 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:17,089 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:17,252 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:19,514 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:20,798 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:21,880 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:39:21,882 skip KXETH15M-26AUG030045-45: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:39:22,313 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:23,800 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:24,710 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:26,981 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:27,343 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:39:29,257 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:31,532 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:33,964 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:36,352 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:39,127 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:41,872 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:44,068 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:39:44,687 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:45,018 POST NO x1 KXXRP15M-26AUG030045-45 @ 50¢ — ⚠ RSI 100 extreme overbought → fade DOWN
2026-08-02 21:39:47,211 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:49,929 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:52,401 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:55,176 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:39:57,599 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:00,415 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:03,043 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:05,467 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:08,047 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:08,824 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:40:08,827 skip KXBTC15M-26AUG030045-45: no swing (0.003% < 0.005%)
2026-08-02 21:40:10,520 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:13,075 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:15,868 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:18,389 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:20,909 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:23,487 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:26,188 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:28,445 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:29,669 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:30,822 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:32,665 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:33,289 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:35,595 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:35,635 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:38,044 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:39,170 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:40,661 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:42,494 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:43,308 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:45,611 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:45,777 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:48,127 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:49,050 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:50,639 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:52,403 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:53,041 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:55,336 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:55,690 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:40:57,792 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:40:58,844 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:00,204 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:02,138 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:02,935 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:05,346 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:05,534 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:07,756 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:08,686 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:10,188 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:11,960 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:12,682 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:15,261 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:15,286 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:17,882 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:18,559 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:20,148 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:21,649 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:22,440 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:24,928 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:24,963 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:27,520 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:28,466 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:30,048 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:31,844 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:32,603 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:35,185 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:35,402 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:37,477 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:38,854 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:39,901 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:42,403 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:42,646 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:45,270 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:45,567 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:47,931 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:49,159 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:50,554 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:52,898 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:53,126 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:55,630 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:56,380 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:41:58,370 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:41:59,944 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:00,809 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:03,292 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:03,537 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:05,709 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:06,568 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:08,434 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:10,506 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:11,558 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:13,655 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:14,178 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:16,996 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:17,004 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:20,264 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:20,666 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:23,288 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:24,140 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:25,816 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:27,372 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:28,207 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:30,749 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:30,853 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:33,663 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:34,409 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:36,514 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:37,553 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:38,866 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:40,824 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:41,299 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:43,801 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:43,851 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:46,298 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:47,151 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:48,688 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:42:50,431 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:53,460 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:42:58,597 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:43:00,055 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:43:03,394 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:43:03,395 staggering start by 20s
2026-08-02 21:43:08,519 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:43:08,519 staggering start by 40s
2026-08-02 21:43:13,471 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:43:13,471 staggering start by 60s
2026-08-02 21:43:14,727 POST YES x1 KXDOGE15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:43:18,845 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:43:18,845 staggering start by 80s
2026-08-02 21:43:35,688 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:43:48,219 CANCEL stale KXDOGE15M-26AUG030045-45 yes@50¢ (mins_left=1.2)
2026-08-02 21:43:50,076 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:44:03,321 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:44:08,320 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:44:09,561 POST YES x1 KXSOL15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:44:16,759 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:44:30,111 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:44:30,851 CANCEL stale KXSOL15M-26AUG030045-45 yes@50¢ (mins_left=0.5)
2026-08-02 21:44:31,589 CANCEL stale KXSOL15M-26AUG030045-45 yes@50¢ (mins_left=0.5)
2026-08-02 21:44:40,784 ⚖ BTC WR=29% → stake $1.00→$0.75 (bets:21)
2026-08-02 21:44:41,551 POST YES x1 KXXRP15M-26AUG030045-45 @ 50¢ — ⚠ RSI 6 extreme oversold → fade UP
2026-08-02 21:44:53,814 loop error: HTTPSConnectionPool(host='api.elections.kalshi.com', port=443): Max retries exceeded with url: /trade-api/v2/markets?series_ticker=KXSOL15M&status=open&limit=3 (Caused by ProxyError('Unable to connect to proxy', RemoteDisconnected('Remote end closed connection without response')))
2026-08-02 21:44:54,470 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:44:56,902 POST YES x1 KXETH15M-26AUG030045-45 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:45:03,681 ⚖ DOGE WR=69% → stake $1.00→$1.25 (bets:35)
2026-08-02 21:45:15,361 WIN KXBTC15M-26AUG030045-45 no@50¢ → no (+50¢)
2026-08-02 21:45:16,283 WIN KXBTC15M-26AUG030045-45 no@50¢ → no (+50¢)
2026-08-02 21:45:16,571 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:45:17,314 WIN KXETH15M-26AUG030045-45 no@50¢ → no (+50¢)
2026-08-02 21:45:17,987 WIN KXETH15M-26AUG030045-45 no@50¢ → no (+50¢)
2026-08-02 21:45:18,878 LOSS KXETH15M-26AUG030045-45 yes@50¢ → no (-50¢)
2026-08-02 21:45:21,376 LOSS KXXRP15M-26AUG030045-45 no@50¢ → yes (-50¢)
2026-08-02 21:45:21,972 LOSS KXXRP15M-26AUG030045-45 no@50¢ → yes (-50¢)
2026-08-02 21:45:22,565 WIN KXXRP15M-26AUG030045-45 yes@50¢ → yes (+50¢)
2026-08-02 21:45:36,527 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:36,612 WIN KXDOGE15M-26AUG030045-45 yes@50¢ → yes (+50¢)
2026-08-02 21:45:36,629 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:36,641 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:36,647 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:36,648 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:45:36,653 127.0.0.1 - - [02/Aug/2026 21:45:36] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:37,380 WIN KXDOGE15M-26AUG030045-45 yes@50¢ → yes (+50¢)
2026-08-02 21:45:37,686 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:38,231 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:45:38,549 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:45:38,557 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:38,567 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:38,573 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:38,583 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:38,589 127.0.0.1 - - [02/Aug/2026 21:45:38] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:38,840 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:40,247 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:41,270 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:42,405 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:43,580 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:43,648 127.0.0.1 - - [02/Aug/2026 21:45:43] "GET /fleet HTTP/1.1" 200 -
2026-08-02 21:45:44,046 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:45:44,665 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:45:44,680 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:44,690 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:44,698 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:44,706 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:44,714 127.0.0.1 - - [02/Aug/2026 21:45:44] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:44,745 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:45,993 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:47,021 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:48,254 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:49,275 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:50,602 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:51,613 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:52,683 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:54,025 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:55,177 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:56,641 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:58,211 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:59,245 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:45:59,358 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:45:59,889 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:45:59,903 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:59,917 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:59,931 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:59,950 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:45:59,971 127.0.0.1 - - [02/Aug/2026 21:45:59] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:00,760 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:01,768 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:02,156 POST YES x1 KXBTC15M-26AUG030100-00 @ 50¢ — ⚠ RSI 1 extreme oversold → fade UP
2026-08-02 21:46:02,981 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:04,380 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:05,452 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:06,815 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:07,963 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:09,090 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:10,356 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:11,483 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:12,842 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:13,870 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:14,069 127.0.0.1 - - [02/Aug/2026 21:46:14] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:46:14,980 127.0.0.1 - - [02/Aug/2026 21:46:14] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:46:14,995 127.0.0.1 - - [02/Aug/2026 21:46:14] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:15,016 127.0.0.1 - - [02/Aug/2026 21:46:15] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:15,025 127.0.0.1 - - [02/Aug/2026 21:46:15] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:15,036 127.0.0.1 - - [02/Aug/2026 21:46:15] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:15,044 127.0.0.1 - - [02/Aug/2026 21:46:15] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:15,416 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:17,052 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:17,441 127.0.0.1 - - [02/Aug/2026 21:46:17] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:46:18,096 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:19,209 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:20,660 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:21,791 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:22,606 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:23,432 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:24,948 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:25,378 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:26,297 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:27,561 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:27,803 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:29,056 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:46:29,102 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:29,757 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:46:29,768 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:29,782 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:29,790 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:29,798 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:29,803 127.0.0.1 - - [02/Aug/2026 21:46:29] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:30,237 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:30,542 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:31,371 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:32,604 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:32,787 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:33,831 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:35,149 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:35,276 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:36,305 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:37,531 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:37,963 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:39,611 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:40,624 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:40,640 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:41,692 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:42,834 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:42,888 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:44,055 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:44,063 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:46:44,731 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:46:44,741 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:44,759 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:44,766 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:44,775 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:44,786 127.0.0.1 - - [02/Aug/2026 21:46:44] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:45,252 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:45,314 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:46,330 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:47,635 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:47,782 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:48,771 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:49,913 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:50,186 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:50,908 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:52,097 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:52,653 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:53,189 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:54,416 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:55,100 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:46:55,651 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:56,796 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:46:59,072 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:46:59,654 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:46:59,664 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:59,675 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:59,683 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:59,692 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:46:59,699 127.0.0.1 - - [02/Aug/2026 21:46:59] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:00,427 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:47:00,428 ⚖ DOGE WR=70% → stake $1.00→$1.25 (bets:37)
2026-08-02 21:47:05,352 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:47:05,352 staggering start by 20s
2026-08-02 21:47:10,376 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:47:10,376 staggering start by 40s
2026-08-02 21:47:14,043 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:47:14,531 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:47:14,542 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:14,555 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:14,561 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:14,571 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:14,578 127.0.0.1 - - [02/Aug/2026 21:47:14] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:14,722 POST YES x1 KXDOGE15M-26AUG030100-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:47:15,330 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:47:15,330 staggering start by 60s
2026-08-02 21:47:20,360 K4LSH1_OPS online — mode=AUTO dry_run=False stake=10¢ max_spend=100¢
2026-08-02 21:47:20,360 staggering start by 80s
2026-08-02 21:47:29,069 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:47:29,761 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:47:29,774 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:29,783 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:29,791 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:29,801 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:29,810 127.0.0.1 - - [02/Aug/2026 21:47:29] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:38,697 skip KXSOL15M-26AUG030100-00: no swing (0.003% < 0.005%)
2026-08-02 21:47:44,043 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:47:44,632 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:47:44,640 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:44,652 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:44,659 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:44,665 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:44,671 127.0.0.1 - - [02/Aug/2026 21:47:44] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:59,045 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:47:59,622 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:47:59,631 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:59,644 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:59,652 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:59,658 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:47:59,664 127.0.0.1 - - [02/Aug/2026 21:47:59] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:14,190 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:48:14,726 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:48:14,740 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:14,757 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:14,768 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:14,779 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:14,787 127.0.0.1 - - [02/Aug/2026 21:48:14] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:29,155 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:48:29,671 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:48:29,693 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:29,710 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:29,725 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:29,738 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:29,756 127.0.0.1 - - [02/Aug/2026 21:48:29] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:41,900 ⚖ BTC WR=35% → stake $1.00→$0.75 (bets:23)
2026-08-02 21:48:43,992 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:48:43,995 skip KXETH15M-26AUG030100-00: passes: [ENSEMBLE: 0U/1D/2S] qwen3.5=SKIP | ornith=DOWN | llama3.2=SKIP
2026-08-02 21:48:44,049 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:48:44,569 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:48:44,579 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:44,588 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:44,593 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:44,600 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:44,606 127.0.0.1 - - [02/Aug/2026 21:48:44] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:59,150 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:48:59,199 diverifier failed: HTTPConnectionPool(host='10.30.20.89', port=11434): Read timed out. (read timeout=30)
2026-08-02 21:48:59,759 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:48:59,776 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:59,797 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:59,818 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:59,835 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:48:59,848 127.0.0.1 - - [02/Aug/2026 21:48:59] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:00,788 POST YES x1 KXXRP15M-26AUG030100-00 @ 50¢ — ⚠ RSI 0 extreme oversold → fade UP
2026-08-02 21:49:05,671 POST NO x1 KXBTC15M-26AUG030100-00 @ 50¢ — DOWN: DOWN spike 0.07% conf=0.75 [[ENSEMBLE: 0U/2D/0S] qwen3.5=DOWN | ornith=DOWN]
2026-08-02 21:49:14,051 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:49:14,607 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:49:14,620 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:14,632 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:14,640 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:14,647 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:14,655 127.0.0.1 - - [02/Aug/2026 21:49:14] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:29,061 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:49:29,579 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:49:29,594 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:29,608 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:29,618 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:29,625 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:29,632 127.0.0.1 - - [02/Aug/2026 21:49:29] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:44,051 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:49:44,557 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:49:44,571 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:44,581 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:44,587 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:44,604 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:44,610 127.0.0.1 - - [02/Aug/2026 21:49:44] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:49:59,067 127.0.0.1 - - [02/Aug/2026 21:49:59] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:49:59,592 127.0.0.1 - - [02/Aug/2026 21:49:59] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:50:01,068 127.0.0.1 - - [02/Aug/2026 21:50:01] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:01,084 127.0.0.1 - - [02/Aug/2026 21:50:01] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:01,091 127.0.0.1 - - [02/Aug/2026 21:50:01] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:01,100 127.0.0.1 - - [02/Aug/2026 21:50:01] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:01,110 127.0.0.1 - - [02/Aug/2026 21:50:01] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:14,055 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:50:14,904 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:50:14,929 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:14,947 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:14,958 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:14,969 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:14,979 127.0.0.1 - - [02/Aug/2026 21:50:14] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:29,161 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet HTTP/1.1" 200 -
2026-08-02 21:50:29,684 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/state HTTP/1.1" 200 -
2026-08-02 21:50:29,693 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet/ticks?coin=btc&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:29,702 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet/ticks?coin=doge&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:29,713 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet/ticks?coin=eth&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:29,721 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet/ticks?coin=sol&mins=60 HTTP/1.1" 200 -
2026-08-02 21:50:29,731 127.0.0.1 - - [02/Aug/2026 21:50:29] "GET /api/fleet/ticks?coin=xrp&mins=60 HTTP/1.1" 200 -

165
bot.py
View File

@@ -281,6 +281,26 @@ def enriched_context(cfg, price, mom, mom_score, conn):
regime = "choppy" if vol < 0.01 else "trending" if vol > 0.05 else "normal"
lines.append(f"market regime: {regime} (vol={vol:.3f}%)")
# Pattern matching: find similar historical states in Chroma
try:
state_text = f"{mom} {mom_score:.3f}% RSI1m:{r1 or '?'} RSI5m:{r5 or '?'} {coin} {btc_chg:+.1f}% 24h vol:{ix.get('vol24',0):.0f}"
embed = requests.post(cfg.get("embed_url","http://10.30.20.186:11434")+"/api/embed",
json={"model": cfg.get("embed_model","nomic-embed-text-v2-moe:latest"), "input": state_text},
timeout=8).json()
vec = embed.get("embeddings",[[]])[0]
if vec:
chroma_r = requests.post("http://10.30.20.89:27124/api/v1/collections/kalshi-patterns/query",
json={"query_embeddings": [vec], "n_results": 5, "include": ["metadatas"]}, timeout=8)
if chroma_r.status_code == 200:
results = chroma_r.json()
if results.get("metadatas") and results["metadatas"][0]:
outcomes = [m.get("outcome","?") for m in results["metadatas"][0] if m]
wins = outcomes.count("won"); losses = outcomes.count("lost")
if wins + losses > 0:
lines.append(f"PATTERN: 5 nearest historical market states → {wins}W/{losses}L")
except Exception:
pass # silently skip if Chroma/embed not available
# On-chain
if "fee_fast" in ix:
lines.append(f"mempool fast fee: {ix['fee_fast']} sat/vB")
@@ -312,8 +332,9 @@ def llm_vote(cfg, price, mom, mom_score, conn):
fast_url = cfg.get("fast_llm_url", cfg.get("ollama_url","http://localhost:11434"))
fast_model = cfg.get("fast_llm_model", "qwen3.5:4b")
r1 = requests.post(fast_url+"/api/generate",
json={"model": fast_model, "prompt": prompt, "stream": False, "think": False,
"options": {"temperature": 0.3, "num_predict": 60}}, timeout=8)
json={"model": fast_model, "prompt": prompt, "stream": False, "think": False, "keep_alive": "10m",
"options": {"temperature": 0.3, "num_predict": 60}}, timeout=8,
proxies={"http": None, "https": None}) # bypass proxy for localhost
txt = r1.json().get("response","")
s, e = txt.find("{"), txt.rfind("}")+1
d1 = json.loads(txt[s:e]) if s >= 0 else {}
@@ -321,25 +342,58 @@ def llm_vote(cfg, price, mom, mom_score, conn):
except Exception as ex:
fast_v, fast_c, fast_w = "BORDERLINE", 0.50, f"gate: {str(ex)[:40]}"
if fast_v == "BORDERLINE" or (fast_v in ("UP","DOWN") and fast_c < 0.70):
# ── 3-model ensemble: qwen3.5 (MacBook) + ornith (GPU) + llama3.2 (CT518 diverifier) ──
NO_PROXY = {"proxies": {"http": None, "https": None}} # bypass proxy for LAN Ollama calls
votes = []
# Model 1: qwen3.5 fast gate (MacBook)
v1 = fast_v if fast_v in ("UP","DOWN","SKIP") else "SKIP"
votes.append((v1, fast_c if fast_v in ("UP","DOWN","SKIP") else 0.50, fast_w, "qwen3.5"))
# Model 2: ornith deep verify (GamingPC RTX 3070)
try:
deep_url = cfg.get("deep_llm_url", "http://10.30.20.186:11434")
deep_model = cfg.get("deep_llm_model", "ornith:latest")
r2 = requests.post(deep_url+"/api/generate",
json={"model": deep_model, "prompt": prompt, "stream": False, "think": False, "keep_alive": "10m",
"options": {"temperature": 0.2, "num_predict": 90}}, timeout=60, **NO_PROXY)
txt2 = r2.json().get("response","")
s2, e2 = txt2.find("{"), txt2.rfind("}")+1
d2 = json.loads(txt2[s2:e2]) if s2 >= 0 else {}
v2 = str(d2.get("vote","SKIP")).upper()
if v2 not in ("UP","DOWN","SKIP"): v2 = "SKIP"
votes.append((v2, float(d2.get("conf",0)), str(d2.get("why",""))[:120], "ornith"))
except Exception as ex2:
LOG.warning(f"ornith failed: {ex2}")
votes.append(("SKIP", 0.0, "ornith offline", "ornith"))
# Model 3: llama3.2 diverifier (CT518) — runs only on disputed signals
fast_vote = votes[0][0]; deep_vote = votes[1][0]
if fast_vote != deep_vote or (fast_vote in ("UP","DOWN") and votes[0][1] < 0.55):
try:
deep_url = cfg.get("deep_llm_url", cfg.get("ollama_url","http://10.30.20.186:11434"))
deep_model = cfg.get("deep_llm_model", cfg.get("ollama_model","ornith:latest"))
r2 = requests.post(deep_url+"/api/generate",
json={"model": deep_model, "prompt": prompt, "stream": False, "think": False,
"options": {"temperature": 0.2, "num_predict": 90}}, timeout=60)
txt2 = r2.json().get("response","")
s2, e2 = txt2.find("{"), txt2.rfind("}")+1
d2 = json.loads(txt2[s2:e2]) if s2 >= 0 else {}
v = str(d2.get("vote","SKIP")).upper()
if v not in ("UP","DOWN","SKIP"): v = "SKIP"
return v, float(d2.get("conf",0)), str(d2.get("why",""))[:120]
except Exception as ex2:
LOG.warning(f"deep llm failed: {ex2}")
if fast_v in ("UP","DOWN","SKIP"): return fast_v, fast_c, fast_w
return "SKIP", 0.0, "llm offline"
if fast_v not in ("UP","DOWN","SKIP"): fast_v = "SKIP"
return fast_v, fast_c, fast_w
div_url = cfg.get("diverify_url", "http://10.30.20.89:11434")
div_model = cfg.get("diverify_model", "llama3.2:latest")
r3 = requests.post(div_url+"/api/generate",
json={"model": div_model, "prompt": prompt, "stream": False, "keep_alive": "10m",
"options": {"temperature": 0.3, "num_predict": 60}}, timeout=30, **NO_PROXY)
txt3 = r3.json().get("response","")
s3, e3 = txt3.find("{"), txt3.rfind("}")+1
d3 = json.loads(txt3[s3:e3]) if s3 >= 0 else {}
v3 = str(d3.get("vote","SKIP")).upper()
if v3 not in ("UP","DOWN","SKIP"): v3 = "SKIP"
votes.append((v3, float(d3.get("conf",0)), str(d3.get("why",""))[:120], "llama3.2"))
except Exception as ex3:
LOG.warning(f"diverifier failed: {ex3}")
votes.append(("SKIP", 0.0, "diverifier offline", "llama3.2"))
# Majority vote: UP vs DOWN vs SKIP counts
tally = {"UP": 0, "DOWN": 0, "SKIP": 0}
for v, c, w, src in votes:
tally[v] += 1
winner = "UP" if tally["UP"] >= 2 else ("DOWN" if tally["DOWN"] >= 2 else "SKIP")
avg_conf = sum(v[1] for v in votes if v[0] == winner) / max(1, tally[winner])
reasons = " | ".join(f"{src}={v}" for v, _, _, src in votes)
tag = "ENSEMBLE" if tally[winner] >= 2 else "SPLIT"
return winner, avg_conf, f"[{tag}: {tally['UP']}U/{tally['DOWN']}D/{tally['SKIP']}S] {reasons}"
def decide(cfg, conn, price):
"""Two-tier decision: qwen fast-gate → ornith deep-verify.
@@ -439,9 +493,50 @@ def resolve_bets(kx, conn):
("won" if won else "lost", time.time(), pnl, oid))
conn.commit()
log_event(conn, "info", f"{'[SIM] ' if dry else ''}{'WIN' if won else 'LOSS'} {ticker} {side}@{px}¢ → {result} ({'+' if won else ''}{pnl}¢)")
# Store pattern in Chroma for future matching
try:
from bot import rsi as _rsi, momentum as _mom
c_rsi = _rsi(conn); c_mom, c_score = _mom(conn)
state_text = f"{c_mom} {c_score:.3f}% RSI:{c_rsi or '?'} ticker:{ticker[:6]}"
embed = requests.post("http://10.30.20.186:11434/api/embed",
json={"model": "nomic-embed-text-v2-moe:latest", "input": state_text}, timeout=8).json()
vec = embed.get("embeddings",[[]])[0]
if vec:
requests.post("http://10.30.20.89:27124/api/v1/collections/kalshi-patterns/add",
json={"embeddings": [vec], "metadatas": [{"outcome": "won" if won else "lost", "coin": ticker[:4],
"pnl": pnl, "side": side, "ticker": ticker, "ts": time.time()}],
"ids": [f"{ticker}-{oid}"], "documents": [state_text]}, timeout=8)
except Exception:
pass
except Exception:
continue
# ───────── exposure cap: total open ≤ 25% of balance ─────────
_exposure_cache = {"ts": 0, "balance": 0, "open_cents": 0}
def check_exposure_cap(kx, cfg, new_cost_cents):
"""Block trades if total open exposure would exceed 25% of balance."""
global _exposure_cache
now = time.time()
if now - _exposure_cache["ts"] < 60: # cache for 60s
bal = _exposure_cache["balance"]; open_c = _exposure_cache["open_cents"]
else:
try:
b = kx.balance()
bal = float(b.get("balance_dollars", 0)) * 100 # cents
# Sum open positions from Kalshi
positions = kx.positions()
open_c = sum(int(float(p.get("exposure_dollars", 0)) * 100) for p in positions)
_exposure_cache.update({"ts": now, "balance": bal, "open_cents": open_c})
except Exception:
bal = 2500; open_c = 0 # fallback: assume $25, no open
cap = bal * 0.25
projected = open_c + new_cost_cents
allowed = projected <= cap
if not allowed:
LOG.info(f"exposure cap: open={open_c}¢ + new={new_cost_cents}¢ = {projected}¢ > 25% of {bal:.0f}¢ ({cap:.0f}¢)")
return allowed, open_c, bal
# ───────── counter-hedge: lock in profit on open positions ─────────
def hedge_positions(conn, kx, ticker, cfg, book):
"""Scan open positions. If opposite side is cheap enough, buy it to lock profit.
@@ -486,6 +581,22 @@ def adapt_controls(conn, cfg):
).fetchall()
if len(resolved) < 5:
return
# ── WR-based stake rebalancing (always runs, not dependent on LLM) ──
coin_name = cfg.get("coin","?")
max_spend = cfg.get("max_spend_cents", 100)
wins_rb = conn.execute("SELECT COUNT(*) FROM orders WHERE status='won' AND dry=0").fetchone()[0]
total_rb = conn.execute("SELECT COUNT(*) FROM orders WHERE status IN ('won','lost') AND dry=0").fetchone()[0]
if total_rb >= 5:
wr_rb = wins_rb / total_rb
new_stake = max_spend
if wr_rb >= 0.60: new_stake = min(250, max_spend + 25)
elif wr_rb < 0.35: new_stake = max(25, max_spend - 25)
if new_stake != max_spend:
conn.execute("INSERT OR REPLACE INTO kv(k,v) VALUES ('stake_rebalance',?)",
(json.dumps({"from": max_spend, "to": new_stake, "wr": round(wr_rb,2), "total": total_rb}),))
conn.commit()
LOG.info(f"{coin_name} WR={wr_rb:.0%} → stake ${max_spend/100:.2f}→${new_stake/100:.2f} (bets:{total_rb})")
_last_adapt_ts = time.time() # throttle rebalance logs to 10min
wins = sum(1 for r in resolved if r[1] and r[1] > 0)
wr = wins / len(resolved)
summary = {"recent_bets": len(resolved), "win_rate": round(wr, 2),
@@ -584,6 +695,12 @@ def run():
try:
resolve_bets(kx, conn)
adapt_controls(conn, cfg)
# WR-based stake rebalance (from adapt_controls) — override config
try:
reb = conn.execute("SELECT v FROM kv WHERE k='stake_rebalance'").fetchone()
if reb:
cfg["max_spend_cents"] = json.loads(reb[0]).get("to", cfg.get("max_spend_cents", 100))
except Exception: pass
# cancel stale unfilled orders close to market expiration
try:
open_orders = conn.execute(
@@ -651,7 +768,7 @@ def run():
continue
except Exception:
pass
# confidence-scaled contracts: max $1.00 total spend
# confidence-scaled contracts: max_spend cap + 25% exposure cap
max_spend = cfg.get("max_spend_cents", 100)
if ask and ask <= max_spend:
n = 1 if lc < 0.70 else (2 if lc < 0.80 else (3 if lc < 0.90 else 4))
@@ -663,6 +780,12 @@ def run():
n = 1
px = min(cfg.get("post_price_cents", 50), max_spend)
maker = True
# 25% total exposure cap
trade_cost = n * px
ok, open_c, bal = check_exposure_cap(kx, cfg, trade_cost)
if not ok:
log_event(conn, "info", f"skip {ticker}: exposure cap ({open_c}¢+{trade_cost}¢ > 25% of {bal:.0f}¢)")
continue
try:
res = kx.order(ticker, side, n, px, cfg["dry_run"])
oid = res.get("order_id", res.get("order", {}).get("order_id", "sim"))

BIN
btc.db

Binary file not shown.

View File

@@ -25,5 +25,9 @@
"deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest",
"color": "#f7931a",
"proxy": "http://10.30.20.189:3128"
"proxy": "http://10.30.20.189:3128",
"diverify_url": "http://10.30.20.89:11434",
"diverify_model": "llama3.2:latest",
"embed_url": "http://10.30.20.186:11434",
"embed_model": "nomic-embed-text-v2-moe:latest"
}

BIN
doge.db

Binary file not shown.

View File

@@ -24,5 +24,9 @@
"fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b",
"deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest"
"deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434",
"diverify_model": "llama3.2:latest",
"embed_url": "http://10.30.20.186:11434",
"embed_model": "nomic-embed-text-v2-moe:latest"
}

BIN
eth.db

Binary file not shown.

View File

@@ -24,5 +24,9 @@
"fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b",
"deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest"
"deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434",
"diverify_model": "llama3.2:latest",
"embed_url": "http://10.30.20.186:11434",
"embed_model": "nomic-embed-text-v2-moe:latest"
}

BIN
sol.db

Binary file not shown.

View File

@@ -24,5 +24,9 @@
"fast_llm_url": "http://localhost:11434",
"fast_llm_model": "qwen3.5:4b",
"deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest"
"deep_llm_model": "ornith:latest",
"diverify_url": "http://10.30.20.89:11434",
"diverify_model": "llama3.2:latest",
"embed_url": "http://10.30.20.186:11434",
"embed_model": "nomic-embed-text-v2-moe:latest"
}

BIN
xrp.db

Binary file not shown.

View File

@@ -25,5 +25,9 @@
"fast_llm_model": "qwen3.5:4b",
"deep_llm_url": "http://10.30.20.186:11434",
"deep_llm_model": "ornith:latest",
"color": "#00AAE4"
"color": "#00AAE4",
"diverify_url": "http://10.30.20.89:11434",
"diverify_model": "llama3.2:latest",
"embed_url": "http://10.30.20.186:11434",
"embed_model": "nomic-embed-text-v2-moe:latest"
}