2026-06-22 06:27:40,439 INFO __main__ Grid Bot starting — mode=DEMO 2026-06-22 06:27:40,439 INFO __main__ Tradernet API: https://tradernet.by 2026-06-22 06:27:40,439 INFO __main__ Trading pair: BTC-USDT.IMEX 2026-06-22 06:27:40,439 INFO __main__ Starting web dashboard on 0.0.0.0:5555 2026-06-22 06:27:40,439 INFO __main__ DEMO mode → auto-starting trading loop 2026-06-22 06:27:40,440 INFO __main__ [bot-thread] starting trading_loop... 2026-06-22 06:27:40,440 INFO __main__ [KILL-SWITCH] monitor thread running 2026-06-22 06:27:40,440 INFO __main__ [KILL-SWITCH] started (DD>10.0%, 5err/600s, TG every 30s) 2026-06-22 06:27:40,440 INFO __main__ [main] trading_loop thread started: 130272511129280, alive=True 2026-06-22 06:27:40,443 INFO __main__ Restored 11 trades from trade_history.json, balance=375.56 2026-06-22 06:27:40,450 INFO __main__ [FEE-VALIDATOR] step=0.500% vs required=0.500% (round-trip fee 0.400% × safety 1.25) → margin +0.0% * Serving Flask app 'grid-bot' * Debug mode: off 2026-06-22 06:27:40,466 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:27:40,466 INFO werkzeug Press CTRL+C to quit 2026-06-22 06:27:41,416 INFO __main__ [DEBUG] state.demo_mode=True resolved demo_mode=True branch=DEMO 2026-06-22 06:27:41,754 INFO __main__ Candles refreshed: tf=60min, 140 candles 2026-06-22 06:27:41,755 INFO __main__ [SMA] SMA(24, 60m) = $64,161.54 (140 candles) 2026-06-22 06:27:41,755 INFO __main__ [DEMO] Placed 3 BUY / 0 SELL at price $64,090.00 (bias=range, asymmetry=3:2, sma=$64,161.54) 2026-06-22 06:28:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:28:37,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:28:37,023 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:28:37,029 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:28:37,031 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:28:41,749 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:41] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:28:42,513 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:42] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:28:51,970 CRITICAL __main__ [KILL-SWITCH] TRIGGERED: test:test_by_kolp 2026-06-22 06:28:52,356 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:52] "POST /api/kill-switch/test HTTP/1.1" 200 - 2026-06-22 06:28:53,778 CRITICAL __main__ [KILL-SWITCH] loop exiting: test:test_by_kolp 2026-06-22 06:28:53,778 INFO grid [DEMO] cancelled 3 open BUY order(s) and refunded $19.06; reason=kill_switch:test:test_by_kolp 2026-06-22 06:28:53,778 WARNING __main__ [KILL-SWITCH] cancelled 3 demo BUY orders 2026-06-22 06:28:56,111 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:56] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:28:56,881 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:28:56] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:29:04,828 WARNING __main__ [KILL-SWITCH] RESET - kill event cleared, peak=0 2026-06-22 06:29:04,828 WARNING __main__ [KILL-SWITCH] RESET via /api/kill-switch/reset (manual) 2026-06-22 06:29:05,156 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:05] "POST /api/kill-switch/reset HTTP/1.1" 200 - 2026-06-22 06:29:05,923 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:05] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:29:06,171 ERROR werkzeug 35.225.153.65 - - [22/Jun/2026 06:29:06] code 400, message Bad request syntax ('CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1b\x00\x00\x00M') 2026-06-22 06:29:06,172 INFO werkzeug 35.225.153.65 - - [22/Jun/2026 06:29:06] "CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1b\x00\x00\x00M" 400 - 2026-06-22 06:29:06,682 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:06] "POST /api/bot/start HTTP/1.1" 200 - 2026-06-22 06:29:06,684 INFO __main__ Restored 11 trades from trade_history.json, balance=375.56 2026-06-22 06:29:06,685 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:29:07,412 INFO __main__ [DEBUG] state.demo_mode=True resolved demo_mode=True branch=DEMO 2026-06-22 06:29:07,412 INFO __main__ [DEMO] Placed 3 BUY / 0 SELL at price $64,109.60 (bias=range, asymmetry=3:2, sma=$64,161.54) 2026-06-22 06:29:11,445 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:11] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:29:12,205 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:12] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:29:21,902 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:21] "GET /api/kill-switch/status HTTP/1.1" 200 - 2026-06-22 06:29:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:29:37,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:29:37,023 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:29:37,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:29:37,028 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:29:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:30:01,745 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:01] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:30:01,774 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:01] "GET /api/_debug/demo_orders HTTP/1.1" 200 - 2026-06-22 06:30:01,798 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:01] "GET /api/logs?limit=5 HTTP/1.1" 200 - 2026-06-22 06:30:37,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:30:37,028 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:30:37,029 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:30:37,033 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:30:37,036 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:30:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:31:13,896 ERROR werkzeug 176.65.139.140 - - [22/Jun/2026 06:31:13] Request timed out: TimeoutError('timed out') 2026-06-22 06:31:37,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:31:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:31:37,025 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:31:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:31:37,028 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:31:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:31:37,031 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:31:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:31:37,032 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:31:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:32:37,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:32:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:32:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:32:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:32:37,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:32:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:32:37,023 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:32:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:32:37,026 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:32:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:32:42,136 INFO __main__ Candles refreshed: tf=60min, 140 candles 2026-06-22 06:32:42,136 INFO __main__ [SMA] SMA(24, 60m) = $64,161.54 (140 candles) 2026-06-22 06:33:37,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:33:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:33:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:33:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:33:37,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:33:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:33:37,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:33:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:33:37,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:33:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:34:37,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:34:37] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:34:37,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:34:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:34:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:34:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:34:37,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:34:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:34:37,023 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:34:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:01,953 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:01] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:01,973 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:01] "GET /api/_debug/demo_orders HTTP/1.1" 200 - 2026-06-22 06:35:01,991 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:01] "GET /api/logs?limit=5 HTTP/1.1" 200 - 2026-06-22 06:35:20,552 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:20] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:20,555 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:20] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:20,558 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:20] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:20,559 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:20] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:35:20,564 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:20] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:22,432 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:22] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:22,435 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:22] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:22,435 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:22] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:25,435 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:25] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:25,436 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:25] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:25,441 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:25] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:25,443 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:25] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:27,443 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:27] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:35:28,428 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:28] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:28,431 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:28] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:28,432 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:28] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:31,437 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:31] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:31,439 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:31] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:31,442 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:31] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:31,442 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:31] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:35,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:35] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:35,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:35] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:35,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:35] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:35,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:35] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:38,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:38] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:38,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:38] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:38,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:38] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:35:38,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:38] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:38,023 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:38] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:41,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:41] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:41,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:41] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:41,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:41] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:44,002 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:44] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:44,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:44] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:44,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:44] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:44,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:44] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:47,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:47] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:47,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:47] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:47,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:47] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:47,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:47] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:48,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:48] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:35:50,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:50] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:50,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:50] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:50,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:50] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:50,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:50] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:53,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:53] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:53,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:53] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:53,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:53] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:53,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:53] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:56,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:56] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:56,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:56] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:56,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:56] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:56,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:56] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:35:58,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:58] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:35:59,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:59] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:35:59,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:59] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:35:59,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:59] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:35:59,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:35:59] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:02,001 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:02] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:02,005 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:02] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:02,003 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:02] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:05,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:05] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:05,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:05] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:05,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:05] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:05,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:05] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:08,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:08] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:08,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:08] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:08,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:08] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:08,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:08] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:36:08,026 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:08] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:11,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:11] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:11,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:11] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:11,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:11] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:14,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:14] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:14,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:14] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:14,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:14] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:14,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:14] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:17,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:17] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:17,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:17] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:17,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:17] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:17,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:17] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:18,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:18] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:36:20,004 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:20] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:20,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:20] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:20,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:20] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:23,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:23] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:23,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:23] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:23,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:23] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:23,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:23] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:26,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:26] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:26,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:26] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:26,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:26] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:26,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:26] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:28,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:28] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:36:29,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:29] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:29,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:29] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:29,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:29] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:36:29,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:29] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:37,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:37] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:36:37,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:37] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:36:37,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:37] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:36:37,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:36:37] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:17,319 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:17] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:17,320 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:17] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:17,323 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:17] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:17,325 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:17] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:37:17,328 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:17] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:19,442 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:19] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:19,443 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:19] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:19,445 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:19] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:22,431 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:22] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:22,433 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:22] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:22,434 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:22] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:22,437 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:22] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:25,435 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:25] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:25,439 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:25] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:25,440 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:25] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:25,441 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:25] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:27,436 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:27] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:37:29,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:29] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:29,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:29] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:29,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:29] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:29,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:29] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:32,006 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:32] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:32,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:32] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:32,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:32] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:35,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:35] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:35,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:35] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:35,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:35] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:35,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:35] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:38,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:38] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:38,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:38] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:38,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:38] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:38,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:38] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:37:38,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:38] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:41,017 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:41] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:41,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:41] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:41,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:41] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:41,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:41] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:42,657 INFO __main__ Candles refreshed: tf=60min, 140 candles 2026-06-22 06:37:42,657 INFO __main__ [SMA] SMA(24, 60m) = $64,161.54 (140 candles) 2026-06-22 06:37:44,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:44] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:44,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:44] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:44,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:44] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:47,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:47] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:47,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:47] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:47,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:47] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:47,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:47] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:48,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:48] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:37:50,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:50] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:50,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:50] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:50,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:50] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:50,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:50] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:53,010 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:53] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:53,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:53] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:53,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:53] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:56,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:56] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:56,012 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:56] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:37:56,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:56] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:56,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:56] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:37:58,007 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:58] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:37:59,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:59] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:37:59,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:59] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:37:59,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:37:59] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:02,008 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:02] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:02,009 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:02] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:38:02,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:02] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:38:02,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:02] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:38:05,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:05] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:05,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:05] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:38:05,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:05] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:38:05,019 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:05] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:38:08,015 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:08] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:08,018 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:08] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:38:08,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:08] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:38:08,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:08] "GET /api/kronos HTTP/1.1" 200 - 2026-06-22 06:38:08,024 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:08] "GET /api/price-history?range=1h HTTP/1.1" 200 - 2026-06-22 06:38:11,011 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:11] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:11,013 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:11] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:38:11,016 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:11] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:38:14,014 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:14] "GET /api/grid HTTP/1.1" 200 - 2026-06-22 06:38:14,020 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:14] "GET /api/status HTTP/1.1" 200 - 2026-06-22 06:38:14,021 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:14] "GET /api/logs HTTP/1.1" 200 - 2026-06-22 06:38:14,022 INFO werkzeug 127.0.0.1 - - [22/Jun/2026 06:38:14] "GET /api/kronos HTTP/1.1" 200 -