NSE F&O · PIN unlocks this device session
iPhone: Share → Add to Home Screen for full-screen.
Same URL on laptop: open in Chrome or Edge (e.g. http://100.65.94.58:18472/ or http://localhost:18472/).
Kotak limits() field Net — tap Refresh or trade to update.
Emergency flatten: market-exit each open F&O leg.
Loading…
Live positions, one-tap exits, and SL-attach moved to the chart workspace (Phase 2). The chart shows every open leg at its strike with live P&L, click-to-close, draggable SL lines, and the bulk “add SL to selected legs” form — so the whole position can be managed from one surface.
Emergency flatten is still here on this page under Fail-safe above.
No rows
Loading…
Engine state persists across restarts. Open positions are NEVER touched when the engine is turned off — auto-SL and time exits keep managing them.
Each strategy is Off, Paper (default — trades are simulated and recorded, nothing reaches the broker) or Live (real orders with auto-SL). The engine above must be running for any of them to fire.
Every paper trade lands here with simulated fills, live MTM and the exit reason once closed. Same numbers as the Dashboard tab.
No paper trades yet — they'll appear after the first scheduled fire.
Total algo cap is ₹5,00,000. Manual trades take precedence — when broker funds are tight, the effective budget shrinks.
Loading…
Rules watch a symbol's bars for a Supertrend flip and queue a strategy template.
dry_run = log intent only.
armed = also consult the capital governor and embed its decision in the audit (still does not place).
live = real broker placement, gated by env vars
KOTAK_ALGO_LIVE_ENABLED=1 + KOTAK_ALGO_LIVE_ACCOUNTS allowlist.
No rules yet. Add one below.
No fires recorded yet.
No live fires recorded yet.
Merges every data/trades_log/*_trades.csv file. Optional from/to dates filter overview, calendar, campaigns, and the table to trades on those days only.
Computed live from data/trades_log/*.csv via DuckDB (no schema migration). Honors the date range above.
Live state of data/triggers.json. Chart drawings, signal rules, and strategy SLs all mirror into this registry as legacy:* entries. If a drawing doesn't fire, check it shows up here with status=active.
Each closed campaign is classified by its open leg's tag: algo|* = bot-fired, anything else = user-placed (live). Use the date range above to scope this — drop strategies whose row total is red.
Simulated results of every strategy running in paper mode — win rate and realized P&L build up here before you take anything live.
Same trades, normalized per lot, so 1-lot and 10-lot runs become comparable. RR/lot is the number to fix: it strips position size out of risk-reward.
Rows appear after a recorded fill; rejected or unfilled orders are usually absent.
From the append-only audit log data/sl_state/sl_events.jsonl joined with the daily trade log. Window:
Realized leg loss ÷ rule's intended loss. <1.0 = SL contained loss; >1.0 = SL leaked.
Sum of realized losses bucketed by IST hour.
—
Each row is a daily MTM brake event (warning or trip).
Each triggered SL/TP rule joined to its actual fill. Slippage = filled price minus SL trigger (signed).
Per-template win rate, top losses with anatomy, exit-reason attribution, and PnL by IST entry hour. Built from the trade-log + sl_events join.
The chart workspace moved to its own page so it can host the full toolbar (cursor / line / trendline / quick-place / delete), context menu, edit-drawing modal, hover tips, simulator toggle, and the "deploy strategy on touch" sidebar — none of which the inline desktop widget had room for.
Active drawings still fire from the same evaluator regardless of which surface you opened them on; the workspace is just the UI.
Watch a symbol's tick stream and draw horizontal levels or trendlines. When a level is crossed, the bot fires the configured action — Telegram alert, exit a strategy, patch its max-loss, or auto-place a template. Drawings persist per-account across restarts; the bot keeps watching even on quiet days when the level may not get hit for weeks.
Chart library not installed.
Place
lightweight-charts.standalone.production.js
(Apache-2.0, ~35 KB) at
api/_shared/vendor/
and reload. Source: lightweight-charts on npm /
github.com/tradingview/lightweight-charts.
Fires once when price crosses the line, then the drawing flips to
triggered so it can't double-fire on a wiggle.
Re-arm by editing the drawing back to active in the table below.