Notifications - enter trade prices
Account summary
Exposure & funds summary
| Account | Total Exp | Current Exp | % Exp | Day P/L | Total Fund | Used Fund | Available |
|---|---|---|---|---|---|---|---|
| Waiting for data... | |||||||
Exposure summary
| Account | Total Exp | Current Exp | % Exposure | Day P/L |
|---|---|---|---|---|
| Waiting for data... | ||||
Funds summary
| Account | Total Fund | Used Fund | Available Fund |
|---|---|---|---|
| Waiting for data... | |||
Average execution loss by account
Waiting for data...
Position grid
Positions by leg
Condensed totals all timeframes per Account x Stock. Tap an account row to
expand / collapse its legs.
| Sr | Account | Stock | Indicator | TF | Total Qty | Qty (net) | LTP | Exposure |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Positions master - legs that always display
Every chart you run belongs here. Listed legs
appear in Positions by leg even before any alert (Qty 0), with the Total Qty you set -
editable there any time. Editing a Total Qty in the table above also adds the leg here.
Saved OK
| Account | Stock | Indicator | TF | Total Qty | |
|---|---|---|---|---|---|
| Loading... | |||||
Positions snapshot - end of day / next morning
Export downloads today's open positions
(account, stock, indicator, TF, side, qty, average price, Total Qty) as a CSV.
Import loads that file back as opening balances - each row becomes an executed
trade at its average price, so it lands in Positions by leg and in P&L. Legs that
already hold an open position are skipped automatically, so importing twice can't double
your book.
Live day-wise P&L
Day-wise P&L uses broker-style Account + Stock
buckets: carryforward opens at futures previous close, today's trades use Trade PX first,
then Fut @ Signal, then Alert PX. In Account & Scrip view, click any row to see
the trade-wise split it adds up from - what is still held valued at LTP, and what was sold
matched against the opening position first, then today's purchases.
| Account | Stock | Position | Prev Close | Avg | LTP | Day-wise P&L | Realized | Unrealized | Total P/L |
|---|---|---|---|---|---|---|---|---|---|
| Waiting for data... | |||||||||
Create a TradingView alert
Paste the Alert name into TradingView's alert-name box (it must start
with SDT for Gmail matching) and the Message into the message box, then enable
"Send email" in the alert's notifications.
Auto mode gives one alert for both directions - SIDE fills itself via
{{strategy.order.action}}, which resolves only when the chart runs a Pine
strategy (on a plain indicator it stays literal and the side would be wrong).
Alerts created today
| Time | Account | Stock | Indicator | TF | Mode | Qty | Alert name | |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Execution P/L - signal vs actual fill (today)
Checking Zerodha connection...
Put your actual fill in My Price.
Green + = execution profit,
red - = execution loss.
NIFTY and BANKNIFTY need no Fut @ Signal - they always read 0.00%.
Fut @ Signal arrives three ways. For an alert it is captured
live the moment the alert lands (second-accurate, needs the webhook plus your daily
Kite login). Run back-fills whatever the live capture missed, using the futures
contract's 1-minute candle close at the trade's timestamp (40 rows per run - press
Run again for the rest), and also refreshes rows after changing futures month. For a
manual trade there was no alert, so nothing is captured when it is created - Run
still tries the candle for it, but if the timestamp has no candle (back-dated entry,
outside market hours) type the rate into the Fut @ Signal box yourself; those rows
are tagged. Any figure you type is kept and never overwritten by Run.
Imported and copied opening positions are not listed here - they are position
transfers, not executions, so there is no signal for them to have slipped against.
NIFTY and BANKNIFTY are dealt as the index itself, so there is no futures rate
for them to have slipped against either - those rows never ask for a Fut @ Signal,
always report 0.00%, and are left out of the averages.
Then put your actual fill in My Price and Exec P/L recalculates.
Green + = execution profit (bought below / sold above the signal),
red - = execution loss. Activate the API in Settings first.
Trades
| Time | Account | Stock | TF | Side | Qty | Alert Px | Fut @ Signal | My Price | P/L per Unit | Exec P/L % |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||||
Add a trade manually
For an alert that never arrived - the trade is
logged like any other and updates Positions by leg instantly. It's saved as
already-executed at the price you enter, so it counts in P&L straight away.
Opening balances and the legs that always display are on the Exposure tab.
Added OK
Manual entries
Trades added here, newest first. They also appear
on the Alerts tab tagged manual, and count in Positions,
P&L and Execution P/L like any other trade.
| Time | Account | Stock | Indicator | TF | Side | Qty | Price | |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Download data
One .xlsx file with separate formatted sheets:
Trade Log (every alert with Qty, prices, Executed, Exec P/L %),
Positions (net per leg for the range),
Execution P-L (with weighted-average summary), and
Alert Creator History. Leave "To" empty for a single day.
The tabs above show only today's data - everything older is stored in the
background and downloadable here.
Looking for the open-positions CSV? Export and Import now live on the Exposure tab, next to the positions they change.
Looking for the open-positions CSV? Export and Import now live on the Exposure tab, next to the positions they change.
Zerodha Kite Connect
Saved OK
Daily activation
-
Zerodha sessions expire every day, so connect once each morning before
using the Execution Loss tab. If your Kite app's Redirect URL is set to this
dashboard's URL (-
),
the connection completes automatically after login - this also pre-loads futures
contracts so webhook alerts get their live signal price stamped instantly all day. Otherwise, copy the
request_token from the redirected URL and paste it below.
Note: Kite Connect is a paid Zerodha product and minute-candle history
needs their Historical Data add-on - check current pricing on developers.kite.trade.
Keys are stored only inside this Apps Script project in your own Google account.
Futures price month
Saved
Users (admin)
Add or remove users, set their password and
choose which accounts' alerts each operator sees in their Notifications screen and Alerts
tab. All accounts is the default. Positions and other tabs are unaffected.
A user with no password logs in by picking their name.
| User | Role | Accounts | Password |
|---|
Add a user
Added
New users start with access to all accounts - narrow it in the table above
once they are added. An admin must have a password.
Change the shared admin PIN:
Updated OK
Data cleanup (admin)
Copy all current open positions from one account into a new or existing
account. Existing open legs in the target account are skipped, so it will not double-copy.
Clears all trading records from the dashboard: trades, pending alerts,
open positions, position size overrides, funds rows and alert creator history. Users,
master dropdowns, admin PIN and Kite settings stay saved.
Instant alerts - TradingView webhook
For 1-3 second trade ingestion (instead of the 1-minute Gmail cycle),
add this URL in your TradingView alert's Webhook URL box (needs TradingView
Pro or above). Keep "Send email" on as backup - duplicates are prevented automatically.
Requires a deployment with access "Anyone": Deploy -> New deployment -> Web app ->
Execute as Me -> Who has access: Anyone -> use that deployment's URL below. Anonymous
visitors to that URL cannot see your dashboard - it only accepts webhook posts.
Master - dropdown values (Alert Creator)
Master - dropdown values
Saved OK
Add or remove values, then save - the Alert Creator dropdowns update instantly.
Export downloads these four lists as a .json file - keep it as
a backup or use it to set up another install. Import loads one back:
Merge only adds what is missing and updates lot sizes, so nothing can go missing;
Replace makes the lists exactly match the file. Importing saves immediately.
Today's alerts
Every alert received, executed or not.
Ticked alerts disappear from the dashboard's pending panel but stay here.
The full permanent history lives in the Trade Log sheet.
| Time | Account | Stock | Indicator | TF | Side | Qty | Alert Px | Trade Px | Actions |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Runs on this dashboard's Kite connection — the API key
in Settings is the only one you need. Tick streaming is off here, so the terminal refreshes on
its own 60-second cycle.
Build the Live Watchlist from Exposure line items
Saved OK
Quantity comes from each leg's Total Qty.
Building replaces the terminal's auto entries; manual trades there are kept. Anything left
unmapped is listed rather than silently dropped.
Mapping - stocks, indicators, timeframes and accounts
Map each stock, indicator and timeframe used in
Exposure to its equivalent in the terminal's Masters. The mapping is saved on this
server and reused - open this only when something needs changing.
Cross check - dashboard vs terminal
Compares the position you actually hold, per
account x stock x timeframe, against what the terminal's indicators say you should be
holding. Dashboard qty is the net of logged alerts; terminal qty is its
LONG/SHORT state multiplied by the quantity set for that account.
Show:
Layout:
| Stock | Timeframes | Terminal Qty | Dashboard Qty | Difference | Status |
|---|---|---|---|---|---|
| Hit "Compare now" to reconcile. | |||||