2026-06-22 06:46:02,301 INFO __main__ Grid Bot starting — mode=DEMO 2026-06-22 06:46:02,302 INFO __main__ Tradernet API: https://tradernet.by 2026-06-22 06:46:02,302 INFO __main__ Trading pair: BTC-USDT.IMEX 2026-06-22 06:46:02,302 INFO __main__ Starting web dashboard on 0.0.0.0:5555 2026-06-22 06:46:02,302 INFO __main__ DEMO mode → auto-starting trading loop 2026-06-22 06:46:02,303 INFO __main__ [bot-thread] starting trading_loop... 2026-06-22 06:46:02,303 INFO __main__ [main] trading_loop thread started: 131873664661184, alive=True 2026-06-22 06:46:02,304 INFO __main__ [KILL-SWITCH] monitor thread running * Serving Flask app 'grid-bot' 2026-06-22 06:46:02,304 INFO __main__ [KILL-SWITCH] started (DD>10.0%, 5err/600s, TG every 30s) * Debug mode: off 2026-06-22 06:46:02,321 INFO __main__ Restored 11 trades from trade_history.json, balance=375.56 2026-06-22 06:46:02,321 INFO __main__ [FEE-VALIDATOR] step=0.500% vs required=0.500% (round-trip fee 0.400% × safety 1.25) → margin +0.0% 2026-06-22 06:46:02,333 INFO werkzeug WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5555 * Running on http://46.29.164.31:5555 2026-06-22 06:46:02,334 INFO werkzeug Press CTRL+C to quit 2026-06-22 06:46:02,639 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:02] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:02,642 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:02] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:02,643 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:02] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:02,646 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:02] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:02,652 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:02] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:03,262 INFO __main__ [DEBUG] state.demo_mode=True resolved demo_mode=True branch=DEMO 2026-06-22 06:46:03,472 INFO __main__ Candles refreshed: tf=60min, 140 candles 2026-06-22 06:46:03,472 INFO __main__ [SMA] SMA(24, 60m) = $64,161.54 (140 candles) 2026-06-22 06:46:03,473 INFO __main__ [DEMO] Placed 3 BUY / 0 SELL at price $64,064.60 (bias=range, asymmetry=3:2, sma=$64,161.54) 2026-06-22 06:46:05,635 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:05] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:05,639 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:05] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:05,640 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:05] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:05,641 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:05] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:05,645 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:05] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:08,620 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:08] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:08,626 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:08] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:08,631 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:08] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:08,632 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:08] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:11,623 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:11] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:11,625 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:11] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:11,628 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:11] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:11,629 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:11] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:11,630 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:11] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:12,622 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:12] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:14,632 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:14] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:14,635 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:14] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:14,638 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:14] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:14,640 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:14] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:14,641 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:14] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:17,623 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:17] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:17,627 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:17] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:17,632 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:17] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:17,634 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:17] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:20,622 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:20] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:20,627 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:20] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:20,629 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:20] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:20,630 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:20] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:20,633 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:20] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:22,622 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:22] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:23,630 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:23] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:23,633 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:23] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:23,636 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:23] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:23,637 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:23] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:23,642 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:23] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:26,999 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:26] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:27,000 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:27] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:27,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:27] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:27,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:27] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:27,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:27] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:29,999 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:29] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:30,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:30] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:30,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:30] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:30,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:30] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:30,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:30] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:33,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:33,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:33,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:33,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:33,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:33,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:33] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:35,992 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:35] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:35,993 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:35] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:35,996 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:35] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:35,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:35] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:38,997 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:38] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:39,000 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:38] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:39,002 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:39] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:39,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:39] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:39,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:39] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:42,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:42] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:42,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:42] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:42,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:42] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:42,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:42] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:42,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:42] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:43,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:43] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:45,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:45] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:45,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:45] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:45,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:45] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:45,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:45] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:48,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:48] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:48,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:48] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:48,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:48] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:48,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:48] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:48,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:48] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:49,481 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:49] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:51,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:51] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:51,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:51] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:51,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:51] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:51,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:51] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:52,999 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:52] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:46:53,994 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:53] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:53,997 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:53] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:53,999 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:53] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:54,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:54] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:54,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:54] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:56,966 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:56] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:57,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:57] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:57,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:57] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:57,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:57] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:46:57,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:57] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:46:57,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:57] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:46:59,994 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:59] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:46:59,995 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:59] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:46:59,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:46:59] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:00,002 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:00] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:03,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:03,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:03,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:03,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:03,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:03,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:03] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:47:06,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:06] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:06,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:06] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:06,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:06] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:06,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:06] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:06,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:06] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:08,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:08] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:09,000 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:09] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:09,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:09] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:09,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:09] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:11,231 CRITICAL __main__ [KILL-SWITCH] TRIGGERED: test:final_demo_test 2026-06-22 06:47:11,558 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:11] "POST /api/kill-switch/test HTTP/1.1" 200 - 2026-06-22 06:47:11,740 CRITICAL __main__ [KILL-SWITCH] loop exiting (mode=DEMO): test:final_demo_test 2026-06-22 06:47:11,740 INFO grid [DEMO] cancelled 3 open BUY order(s) and refunded $19.06; reason=kill_switch:test:final_demo_test 2026-06-22 06:47:11,740 WARNING __main__ [KILL-SWITCH] cancelled 3 demo BUY orders 2026-06-22 06:47:12,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:12] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:12,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:12] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:12,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:12] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:12,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:12] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:12,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:12] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:13,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:13] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:47:14,995 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:14] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:14,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:14] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:14,999 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:14] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:15,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:15] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:15,343 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:15] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:16,178 WARNING __main__ [KILL-SWITCH] RESET - kill event cleared, peak=0 2026-06-22 06:47:16,179 WARNING __main__ [KILL-SWITCH] RESET via /api/kill-switch/reset (manual) 2026-06-22 06:47:16,451 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:16] "POST /api/kill-switch/reset HTTP/1.1" 200 - 2026-06-22 06:47:16,471 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:16] "POST /api/bot/start HTTP/1.1" 200 - 2026-06-22 06:47:16,474 INFO __main__ Restored 11 trades from trade_history.json, balance=375.56 2026-06-22 06:47:16,475 INFO __main__ [FEE-VALIDATOR] step=0.500% vs required=0.500% (round-trip fee 0.400% × safety 1.25) → margin +0.0% 2026-06-22 06:47:17,252 INFO __main__ [DEBUG] state.demo_mode=True resolved demo_mode=True branch=DEMO 2026-06-22 06:47:17,252 INFO __main__ [DEMO] Placed 3 BUY / 0 SELL at price $64,035.50 (bias=range, asymmetry=3:2, sma=$64,161.54) 2026-06-22 06:47:17,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:17] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:18,000 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:18] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:18,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:18] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:18,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:18] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:18,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:18] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:20,623 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:20] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:20,625 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:20] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:20,626 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:20] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:20,628 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:20] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:22,626 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:22] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:47:23,631 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:23] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:23,633 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:23] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:23,636 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:23] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:23,638 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:23] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:23,640 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:23] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:26,992 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:26] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:26,995 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:26] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:26,998 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:26] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:27,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:27] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:27,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:27] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:30,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:30] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:30,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:30] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:30,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:30] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:30,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:30] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:30,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:30] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:32,633 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:32] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:32,635 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:32] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:32,638 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:32] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:47:32,641 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:32] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:32,643 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:32] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:33,151 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET / HTTP/1.1" 200 - 2026-06-22 06:47:33,307 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /static/chart.umd.min.js HTTP/1.1" 304 - 2026-06-22 06:47:33,308 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /static/chartjs-plugin-annotation.min.js HTTP/1.1" 304 - 2026-06-22 06:47:33,388 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/settings HTTP/1.1" 200 - 2026-06-22 06:47:33,390 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:33,391 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:33,395 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:33,396 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:33,397 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:47:33,452 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:33] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:36,403 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:36] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:36,406 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:36] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:47:36,408 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:36] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:47:36,411 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:36] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:36,413 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:36] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:39,391 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:39] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:47:39,396 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:39] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:47:39,397 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:39] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:47:39,400 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:47:39] "GET /api/logs HTTP/1.1" 200 -