TERMINUS
OPTIONCHAIN ALGOTRADER · NSE
USERNAME
PASSWORD
CLIENT ID
PIN
CLIENT ID *
NAME
EMAIL
PASSWORD *
CONFIRM *
After registering, log in as CLIENT. Admin must approve before trading begins.

Enter the reset token provided by your administrator.

Admin password reset: SSH → export TERMINUS_ADMIN_PASSWORD=new && pm2 restart algo

Default admin: admin / admin123 · Default client PIN = client ID
CRITICAL: Core Data Feeder Auto-Authentication Failed. Verify API Secrets.
Market Overview ·
SPOT PRICE
ATM STRIKE
Indicators · · TF
RSI-14
OS 30 OB 70
VWAP-500
ADX-20
WEAK STRONG
EMA CROSS
F S
DI SIGNAL
+DI −DI
Option OI ·
Strikes ±ATM
PUT/CALL RATIO
ΣCE OI ΣPE OI
MAX CE OI (resistance)
MAX PE OI (support)
Execution Workers
No execution workers active.
Run add_client --id C001 --capital 500000 in the terminal to register a client.
Client Portfolio
Waiting for client data…
Broker Connectivity
No client sub-accounts active.
Execute add_client in the AdminConsole terminal to hook an execution worker.
Open Positions
No open positions — click Refresh to fetch from brokers
Symbol Qty Avg P&L Client
TOTAL P&L
Live Event Feed
No events yet…
Emergency Control

Halts all clients + broadcasts KILL_SWITCH. Two clicks within 5 s.

Manual Rebalance
Lot Multiplier Override
Broker Re-Authentication
System
CLIENTS
LIVE
HALTED
WORKERS
ACTIVE IDX
EVENTS
INSTRUMENT loading…
LIVE STRATEGY STATUS
No strategies running for .
Live Trap Status
Side Gate State TF HTF Ref HTF Entry HTF SL MTF Ref MTF Entry Inner Zone Low Gate 3 Sweep Level Live Price Distance to Trap
No unmitigated zones in memory.
Active Position
Side:
Entry:
Live LTP:
SL:
Target A/B1/B2:
Dist to SL:
Dist to Target:
T1/T2 status:
Unrealized P&L:
D1 Trap — Live Zone Monitor
No active D1 trap books — deploy a d1_trap_index or d1_trap_fno strategy first.

How the MIN floor is measured: raw LTP or option THETA (time value).

First filter — both legs must be ≥ this. 0 = off.

Lots per entry (1 lot = exchange lot size for index).

Strategy-specific; overrides broker default.

Injecting parameters into live strategy loops…
Active-Active Infrastructure
DUAL STREAM FEEDER CONNECTION CONTROLS
UPSTOX LATENCY
FYERS LATENCY
WS CLIENTS
🌐 GLOBAL AUTHORIZATION REDIRECT BASE
All broker OAuth callbacks redirect to this base URL + /callback/{broker}. Must start with https:// for Upstox, Zerodha, and other strict-HTTPS brokers. Example: https://abc123.ngrok-free.app or https://terminus.yourdomain.com
Risk Management System
GLOBAL RMS PANEL
MAX DAILY DRAWDOWN CEILING (%)
Aggregate loss > limit triggers global KILL SWITCH
ORDER THROTTLE LIMIT (orders/sec)
AUTO SQUARE-OFF (HH:MM IST)
DISTANCE FILTER (% from ATM)
Emergency Liquidation

Loops all active clients, transmits market-exit requests, halts all strategy execution. 2-click / 5 s window.

Live Option Chain
IV MATRIX ·
SPREAD ALERT >
STRIKE CALL OI CALL IV% SPREAD PUT IV% PUT OI
State Persistence
DATABASE CACHE & WARM RECOVERY
LAST CHECKPOINT
CACHED STRIKES
Regulatory Controls
SEBI COMPLIANCE FILTERS
AUTO SQUARE-OFF TIME (IST)
Intraday exchange cutoff (SEBI)
EXECUTION DISTANCE FILTER (%)
Max % variance from ATM for order placement
Regulatory Compliance
MASTER SYSTEM AUDIT TRAIL
📥 EXPORT CSV
No audit entries — click ⟳ REFRESH to load the latest system log.

TrapEngine Parameters

Lot sizes (NSE): NIFTY=65 · BANKNIFTY=30 · FINNIFTY=60
AMO Broker Connectivity Test
Place a 1-lot AMO to verify broker symbol resolution and order routing. Cancel immediately from broker terminal.
REAL ORDER
No broker bindings found for . Log in as that client → go to the Brokers tab → click + Add Broker, fill in credentials and save. Then come back here and re-open this panel (it reloads on open).
ORDER PLACED — cancel from broker terminal
ORDER FAILED
Order ID:  |  Provider:  |  Symbol:
Underlying:   Expiry:   Strike:   Qty: ( lots × )
Full server response:

        
FnO STOCK SCANNER
No qualifying stocks — no fresh zones (≤15 days) approaching from the correct side with R:R ≥ 1.5
FnO POSITIONAL POSITIONS
No FnO positional books active. Deploy strategy fno_positional on a binding to start.
Portfolio Risk
GLOBAL RISK AGGREGATOR
RISK ENGINE LIVE REGISTRY FALLBACK
Total Firm Capital
Net MTM (Firm)
Realised + Unrealised
Open Lots
Across all clients
Avg Slippage
Per-fill vs signal price
EMERGENCY FIRM-WIDE KILL-SWITCH
Halts ALL active clients simultaneously — stops all execution workers, blocks new signals firm-wide. Requires two-click confirmation within 5 seconds.
CONFIRM? (5s)
EXECUTING KILL-ALL…
Execution Engine
MULTI-TENANT CLIENT REGISTRY
No client profiles registered — use the provisioning form below to add the first account.
CLIENT ID NAME CAPITAL LOT MUL DAILY MTM BROKER STATUS ACTIONS
Static-IP Brokers
DEDICATED EGRESS IP ASSIGNMENT

Zerodha Kite whitelists a globally-unique static IP per app, so each client needs their own egress IP. Assign the LOCAL/private IP (the bot binds orders to it) + the PUBLIC IP (the client whitelists in their broker).

CLIENT
BROKER BINDING
SOURCE IP (private, e.g. 172.31.16.130)
WHITELIST IP (public, e.g. 13.127.2.68)
Onboarding
NEW CLIENT ACCOUNT PROVISIONING
0. START THE ENGINE PROCESS FIRST
The dashboard is just a frontend. The strategy engine, feeders, and order router live inside the OS process started by pm2 start run_system.py. You must start that process once (and after every reboot, or use pm2 save + pm2 startup). Only then do Terminal / Deploy / Run toggles have any effect.
1. ONBOARDING — every broker (Zerodha, AngelOne, Dhan, Upstox, Shoonya…)
a. Create the client account below.
b. Add the client's broker with its API credentials (api_key / api_secret / etc. per provider).
c. Redirect/postback URL (OAuth brokers): https://<your-server>/callback/<provider>.
d. Client clicks Terminal ON → logs in → token stored.
e. Client opens Deploy, picks the strategy + index, then flips that strategy's Run toggle to start.
2. STATIC-IP WHITELIST — REQUIRED FOR ALL BROKERS (SEBI mandate, enforced 01-Apr-2026)
⚠ Per SEBI, every broker now rejects API orders from non-whitelisted IPs. Each broker app needs a static IP. source_ip = PRIVATE 172.31.x.x · whitelist/broker console = PUBLIC 13.x.x.x. (Zerodha additionally requires the IP be globally UNIQUE per app — so a separate IP per Zerodha app.)
AWS/EC2 (system admin), once per broker binding:
A1. EC2 → Elastic IPs → Allocate a new EIP (public 13.x.x.x).
A2. EC2 → Instance → Networking → ENI → Manage IP addresses → Assign new IPv4 (private 172.31.x.x).
A3. Elastic IPs → the new EIP → Associate → choose the new private IP.
A4. Verify: curl --interface 172.31.x.x https://ifconfig.me → must print the new EIP.
In the app (admin): A5. Set the broker binding's source_ip = PRIVATE IP, whitelist_ip = PUBLIC EIP.
Client (broker developer console): A6. Whitelist the PUBLIC EIP (13.x.x.x) in the broker app's Allowed/Static IPs. ← the only IP the client enters.
Finish: A7. Terminal OFF → ON → confirm pm2 logs algo | grep "source IP" shows bound API egress to source IP 172.31.x.x. Orders now leave from the whitelisted EIP.
Non-Zerodha brokers may share one static IP across clients (only Zerodha needs a unique IP per app). AWS limits: secondary private IPs per ENI depend on instance type; EIPs default 5/region (request increase to scale).
CLIENT ID *
DISPLAY NAME
CAPITAL ALLOCATION (INR)
LOT MULTIPLIER
MAX RISK / TRADE (%)
MAX DAILY LOSS (%)
INITIAL BROKER PROVIDER
BINDING ID (optional)
Strategy selection is done by the client after login. Available strategies: Sell Straddle · Iron Condor · Trap Scanner
Pending Approvals
AWAITING ADMIN ACTIVATION
No pending registrations.
Compliance
CLIENT AUDIT TRAIL
Click ⟳ to load audit log — then filter by Client ID above.
WELCOME
Account registered. Add your broker credentials to continue.
ADD BROKER CHANNEL
ACCOUNT ID *
BROKER
LABEL (optional)
TRADING MODE
PRODUCT TYPE

MIS = intraday auto-sqoff  |  NRML = carry forward

AWAITING ACTIVATION
Your account and broker credentials have been submitted.
The admin is reviewing your account. Once approved, you will be able to start the trading bot.
SUBMITTED BROKER CHANNELS
ACCOUNT ID *
BROKER
TODAY'S P&L
Today's P&L
Strategies
Brokers
Broker Accounts
No brokers connected yet — add one in the Brokers tab.
Select Strategies to Run
Choose which strategies to activate. Conditions & rules are configured by the admin — you only select which ones to run and on which index.
Current Selection
Risk Override
Override admin defaults for this strategy / instrument. Empty fields use admin defaults.
Your Broker Accounts
No brokers added yet. Click "+ Add Broker" to connect your first account.
⚡ Strategy Deployments —
One broker can run multiple strategies simultaneously
ACTIVE DEPLOYMENTS
No strategies deployed yet — add one below.
ADD STRATEGY

Independent of Product Type below (MIS/NRML is just a broker margin choice). Default is same-day close for every strategy — carry forward only if explicitly selected here.

✎ Editing credentials — leave any field blank to keep the existing saved value.
ACCOUNT ID *
BROKER
LABEL (optional)
TRADING MODE
DEFAULT PRODUCT (strategies override)

Each strategy sets its own MIS/NRML; this is only the fallback.

⚡ After saving, use the Deploy button on the broker card to assign one or more strategies.
Credentials are encrypted at rest and used only for automated daily token generation. They are never displayed after saving.
SPOT ·
ATM
RSI-14
ADX-20
No broker accounts added yet. Go to Brokers tab to add one.
Trade History
No trade history yet.
TIME ACTION STRATEGY INSTRUMENT STRIKE PRICE P&L REASON REMARK
Live Activity Feed
No events yet…
TERMINUS · OptionChain AlgoTrader · NSE Options