Connect your Kite account
You'll be redirected to Zerodha's official login page. After authorisation, an access token is saved locally and used for all API calls.
Tokens expire daily at ~6:00 AM IST — by Zerodha's design.
Holdings
| Symbol | Exch | Qty | Avg | LTP | P&L |
|---|---|---|---|---|---|
| Click Refresh to load holdings… | |||||
Raw API response
No data yet. Click Refresh above.
ATM Algo — Live Trading (Real Orders)
Runs
| Run # | Started | Spot | ATM | Expiry | Considered | Status |
|---|---|---|---|---|---|---|
| Click Run Cycle to start. | ||||||
Raw API response
No data yet. Click Run Cycle or Refresh Status above.
Options Chain NIFTY — Nearest Expiry · Premium ₹100–₹300
| Symbol | ΔATM | Lot | LTP | VWAP |
|---|---|---|---|---|
| Click Refresh to load. | ||||
| Symbol | ΔATM | Lot | LTP | VWAP |
|---|---|---|---|---|
| Click Refresh to load. | ||||
Raw API response (chain)
No data yet. Click Refresh above.
Expiry Algo — NIFTY (Tue) & SENSEX (Thu)
Upcoming Expiries — click to select
Market Snapshot · —
Active States
| Source | Index | Type | Symbol | Strike | Qty | Attempt | Sell ₹ | Exit ₹ | LTP ₹ | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| Click Start, or tick a candidate below. | ||||||||||
Candidates Below Ceiling · — (tick to add to CE/PE pick dropdown)
| Add | Symbol | LTP | VWAP | Lot |
|---|---|---|---|---|
| Select an expiry above. | ||||
| Add | Symbol | LTP | VWAP | Lot |
|---|---|---|---|---|
| Select an expiry above. | ||||
Raw API response
No data yet. Click Start or Tick above.
Condor · Weekend Iron Condor …
📖 What this algo does (read me first)
This tab runs two separate trades with the same engine. Both sell an "iron condor": collect premium by selling one CE above the market and one PE below, with cheaper bought options ("wings") further out as insurance. Profit comes from time decay when the index stays inside your sold range.
| NIFTY Weekend | SENSEX Midweek | |
|---|---|---|
| Enters | Friday 09:40 | Wednesday 09:40 |
| On expiry | Coming Tuesday (NSE weekly) | Next day Thursday (BSE weekly) |
| Exits by | Monday 15:00 | Same day 15:00 — pure day trade |
| Overnight risk | Weekend gap (wings cap it) | None — never held overnight |
| Margin clash | Neither holds on Tue/Thu, so the Expiry algo always gets its margin | |
Order sequence (4 legs): it always BUYS the two wings first, then SELLS the two income legs — so you are never naked-short even for a second. If any leg fails mid-entry, everything already placed is closed immediately.
✅ Checks before ANY order is placed — every step must pass, else it simply doesn't trade that day (each pass/fail shows in the View checks popup below):
- Allowed to trade? Kill switch off · this profile enabled · no position already open.
- Right time? Correct day, 09:35–11:00 window, and today isn't in your skip-dates list.
- Market really open? The spot quote must show a live tick from today — holidays auto-skip.
- Calm morning? Opening gap vs yesterday ≤ 0.8% and India VIX ≤ 17 (both config).
- Sane expiry? Nearest weekly must be 1–6 days away and never today — if a holiday shifted the expiry onto entry day, it refuses to sell a dying contract.
- Good strikes? Sell legs must be far enough from spot with premium inside your band (nearest to target); wings must exist within the cost cap. No candidates → no trade.
- Money fits? The Kite rule: margin already used + this basket must fit inside your TOTAL funds (cash + collateral) with buffer, and use at most half of it. Lots are auto-sized to what fits — if even 1 lot doesn't, no trade.
- Tradeable prices? Bid-ask spread ≤ 15% on every leg, enough market depth for your quantity, and the net credit (sells minus wings) above your minimum.
How it exits (watched every 2 seconds, first trigger wins): PER SHORT LEG: a sold option hitting your per-leg profit target books THAT side (short + its wing); hitting the per-leg stop-loss cuts THAT side — the other side keeps running with its own triggers. Whole position still closes when the index comes within 0.5% of a sold strike, at the hard 15:00 square-off (cron backstop 15:02), or at a net emergency floor of 2× the stop. If the broker rejects an exit, the engine retries with fresh circuit-clamped prices and the position STAYS under the monitor until truly flat. Exits buy back the shorts first, then sell the wings. Your current target/stop values are in the Config section below — those exact numbers are what the monitor uses live.
Worst case: even if the app, internet and broker all die at the worst moment, the wings cap the maximum loss at roughly (wing distance − credit received) × quantity — it's structural math fixed at entry, shown as "Max loss" on the position card. Day-to-day, the stop exits far earlier; the cap exists for gap moves no software can react to.
⚠️ Paper vs LIVE: condor_paper_mode in Config controls BOTH profiles —
1 = simulated fills (nothing sent to the broker), 0 = REAL orders. The badge in this tab's title
shows the current mode. Every check, order and exit is logged to logs/condor/app.log.
Legs
| Role | Symbol | Strike | Side | Qty | Entry ₹ | LTP / Exit ₹ | Status |
|---|---|---|---|---|---|---|---|
| No open position. | |||||||
Runs
| # | Entry | Exit by | Expiry | Qty | Net credit | Realized | Charges | Exit reason | Mode | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| No runs yet. | ||||||||||
Config (saved instantly per field)
Skip dates (events: RBI, budget, elections — no entry on these days)
Raw API response
No data yet.
Intraday Index PAPER
Candlestick setups on the NIFTY and BANK NIFTY front-month futures. A setup only counts where price is already at a level someone has to defend — the candle is the timing trigger, not the reason. If the next candle does not take the trigger, it is cancelled. No real orders are ever placed.
Today's levels
where a reaction is worth tradingToday's scan funnel
why nothing traded is as important as what didPaper trades
By level
does WHERE it formed matter?By pattern
Raw API response
No data yet.
NIFTY 50 · Pattern Recognition
Support / Resistance
| Price | Touches | |
|---|---|---|
| — | ||
| Price | Touches | |
|---|---|---|
| — | ||
Fibonacci Levels
| Level | Price |
|---|---|
| Load a chart first. | |
Cycle Backtest
Downside-continuation cycle on 3-min NIFTY data. Choose parameters and run.Cycles
| # | Status | Start | Start LTP | VWAP | Support | End | End LTP | P&L | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Set parameters and click Run Backtest. | |||||||||
Raw API response
No data yet. Click Load above.
Live Cycle Monitor
Polls 3-min NIFTY data every 30s and applies the same cycle logic as the backtest. Monitor-only — does not place orders.Cycles in this session
| # | Status | Start | Start LTP | VWAP | Support | End | End LTP | P&L | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Click Start to begin monitoring. | |||||||||
Past sessions — click a row to see all its cycles
| # | Started | Stopped | Status | Cycles | Success | Failed | Terminated | Net P&L |
|---|---|---|---|---|---|---|---|---|
| Click Refresh to load past sessions. | ||||||||
VWAP Bounce — Live
Eligible candle: last 2 candles' open & close both above VWAP. Entry on VWAP touch in first 10 sec only. Exit check at 2:50 only. Monitor-only — does not place orders.Cycles in this session
| # | Status | Candle | Entry | Buy LTP | VWAP | Exit (2:50) | Exit LTP | P&L | Reason |
|---|---|---|---|---|---|---|---|---|---|
| Click Start to begin monitoring. | |||||||||
Past sessions — click a row to see all its cycles
| # | Started | Stopped | Status | Cycles | Success | Failed | Net P&L |
|---|---|---|---|---|---|---|---|
| Click Refresh to load past sessions. | |||||||
Journey P&L (day-wise gross — manual Kite orders excluded)
Per-day gross profit/loss of orders this app placed. Open it for the full day-by-day breakdown.
Reports
Orders
| Placed | Algo | Symbol | Type | Side | Qty | Order ₹ | Avg Fill | VWAP | Sell-ref | Attempt | Status | Run # | Note |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Choose a date and click Generate. | |||||||||||||
Daily P&L breakdown — per-day net cash P&L (SELL − BUY notional)
| Date | Orders | Filled | Rejected | BUY ₹ | SELL ₹ | Net P&L |
|---|---|---|---|---|---|---|
| Click Generate. | ||||||
ATM vs Expiry comparison — side-by-side
| Algo | Orders | Filled | Fill Rate | BUY ₹ | SELL ₹ | Net P&L | Avg P&L/order |
|---|---|---|---|---|---|---|---|
| Click Generate. | |||||||
Per-symbol breakdown — sorted by net P&L (winners first)
| Symbol | Algo | Orders | Filled | Fill Rate | BUY ₹ | SELL ₹ | Net P&L |
|---|---|---|---|---|---|---|---|
| Click Generate. | |||||||
Hourly distribution — IST hour-of-day buckets; find your good and bad windows
| Hour (IST) | Orders | Filled | Rejected | Fill Rate | Net P&L |
|---|---|---|---|---|---|
| Click Generate. | |||||
Kill switch / daily-limit events — every time the safety brake fired
| Occurred (IST) | Event | Reason |
|---|---|---|
| Click Generate. | ||
Raw API response
No report generated yet.
Settings
All values persisted in system_state. Changes take effect on the next algo call. Restart is not required.
Algo priority & margin split
Each weekday has its own ordered list. Top of the list = highest priority. Every algo may only ever use its own % of total funds, so an algo that runs earlier in the day can never spend the margin a higher-priority algo needs later — if its own share is too small for the trade, that run is skipped. An algo not on the day's list cannot trade that day. A 09:00 cron turns these percentages into rupee amounts from your total funds.
Scheduler Jobs
Cron expressions are evaluated in IST (Asia/Kolkata). Format: min hour dom month dow (Sun=0, Mon=1, … Sat=6).
Database Backups
All backups go to the archive/ folder. Files are never deleted automatically. To restore, stop the app and run python -m app.backup restore <filename>.
Raw API response
No data yet.