Strategy Builder
Build quantitative strategies, backtest them with real data and transaction costs, promote winning strategies to production, and generate actionable trade lists.
Creating a Strategy
Navigate to Strategy Builder → Build New Strategy. Fill in the strategy identity fields at the top:
| Field | Description | Example |
|---|---|---|
| Fund Name | Display name for your strategy | Momentum Alpha Fund |
| Scheme Name | Strategy classification or category | Long Only Equity |
| Iteration Name | Label for this version of the strategy — useful when running multiple variants of the same idea | v1, Tight Constraints, High Beta |
Configuration Bar
Below the identity fields, a configuration bar lets you set the top-level strategy parameters:
| Control | Description | Options / Example |
|---|---|---|
| Universe | The pool of stocks the optimizer can allocate to | NIFTY, SENSEX, BSE 500, NIFTY 500, NIFTY 100, NIFTY 200, NIFTY MIDCAP 150, NIFTY SMALLCAP 250, NIFTY LARGEMIDCAP 250, NIFTY MICROCAP 250, NIFTY NEXT 50, FNO, Custom Screener |
| Benchmark | Index used for excess-return and tracking-error calculations | Nifty, BSE 500, Nifty 100, Nifty 500, Nifty Next 50, and more |
| Date | Reference date (used for data anchoring in some analyses) | Any valid trading date |
| Include Futures | Checkbox — when enabled, FNO (futures & options) eligible stocks are included in the universe | Enabled / Disabled |
Constraints
Full Constraints & Objectives Guide →Click Add in the Constraints card to add one or more constraints. The optimizer enforces all active constraints at every rebalance date. You can upload/download constraint sets as files or delete individual constraints.
| Constraint | Parameters | What It Controls |
|---|---|---|
| Maximum Capital | max_capital | Upper bound on total capital deployed (e.g. 1.0 = fully invested) |
| Maximum Number of Positions | max_positions | Hard cap on how many stocks the optimizer can hold |
| Position Size Bound | min_weight, max_weight | Min and max weight per stock (e.g. 0.01–0.10 for 1%–10%) |
| Minimum Position Size Constraint | min_position_size | Ensures each held position is at least this large — avoids tiny, unactionable allocations |
| Portfolio Risk Budget Constraint | risk_budget | Caps total portfolio variance/risk at a target level |
| Beta Exposure Constraint | min_beta, max_beta | Keeps portfolio beta within a band (e.g. 0.8–1.2 for near market-neutral) |
| Factor Exposure Constraint | factor_name, lower_bound, upper_bound | Constrains the portfolio's exposure to a specific factor (e.g. MOMENTUM between 0.2 and 1.5) |
| Sub Portfolio Capital Constraint | sub_capital | Limits capital allocated to a sub-group of stocks within the universe |
| Single Name Idiosyncratic Contribution | max_contribution | Caps how much idiosyncratic (stock-specific) risk any single stock can contribute to the portfolio |
| Portfolio Turnover Constraint | max_turnover | Limits how much of the portfolio can change at each rebalance (e.g. 0.3 = max 30% traded) |
| Category Selection Constraint | category, min_count, max_count | Enforces min/max number of stocks from a specific category (e.g. at least 3, at most 8 from IT) |
Objectives
Click Add in the Objectives card to define what the optimizer should aim for. Only one objective is used at a time (the first active one).
| Objective | Parameters | What It Does |
|---|---|---|
| Risk Minimization Objective | risk_type, weight | Finds the lowest-variance portfolio. Best for capital preservation |
| Return Maximization Objective | weight | Maximizes expected return. Tends to concentrate — pair with position size constraints |
| Risk-Adjusted Return Objective | weight | Maximizes Sharpe ratio — balances return and risk. Most practical general-purpose objective |
| Tracking Error Minimization | benchmark, weight | Keeps the portfolio close to a benchmark. Good for enhanced index strategies |
Configure & Run Backtest
Click Configure Backtest to open the backtest configuration dialog.
Date Range
| Field | Description |
|---|---|
| Start Date | First date of the simulation. Choose a date with at least 6–12 months of data before it for warm-up |
| End Date | Last date. Auto-filled with the latest available trading date |
Rebalance Schedule
Two modes:
| Mode | How | Options |
|---|---|---|
| Regular Interval | Optimizer re-runs at a fixed cadence | Weekly, Monthly, Quarterly |
| Specified Dates | Optimizer re-runs only on the exact dates you provide | Comma-separated dates in YYYY-MM-DD format (e.g. 2025-07-01, 2025-08-01) |
Weight Method
| Method | Description |
|---|---|
| Equal Weight | Each stock in the portfolio receives the same weight. Simple and transparent |
| Momentum | Weights are proportional to each stock's recent momentum score — higher momentum gets a larger allocation |
Stop Loss
An expandable section with two independent stop loss types. Both are optional and can be configured independently.
Total Stop Loss
Triggers on the total portfolio return (including factor exposure).
| Field | Description | Example |
|---|---|---|
| Stop Loss (%) | Maximum allowed loss before the stop fires | 10 |
| % of Portfolio | The portion of the portfolio this stop applies to (100 = entire portfolio) | 100 |
| Days to Exclude | Number of trading days the position is held out after the stop fires before being eligible to re-enter | 5 |
Residual Stop Loss
Triggers on the residual (idiosyncratic, stock-specific) return — the portion not explained by factor moves.
| Field | Description | Example |
|---|---|---|
| Stop Loss (%) | Maximum allowed residual loss before the stop fires | 8 |
| % of Portfolio | Fraction of portfolio this stop covers | 100 |
| Days to Exclude | Cooldown period in trading days after the stop fires | 5 |
Total vs Residual:Total stop loss fires on the stock's full price drop (including market and factor moves). Residual stop loss fires only on company-specific bad news, ignoring broad market selloffs — useful for avoiding false exits during market corrections.
Burn-in and Chunking
An expandable section that controls how the backtest periods are structured and how the model warms up.
| Field | Description | Default |
|---|---|---|
| Max Chunks | Splits the backtest into this many out-of-sample evaluation windows. Each chunk trains on prior data and tests on the next period — similar to walk-forward testing | 5 |
| Min Rebalance / Chunk | Minimum number of rebalances each chunk must contain. Prevents chunks from being too short to be statistically meaningful | 5 |
| Burn-in Rebalances | Number of initial rebalances discarded from performance reporting. Allows the model to settle before measurement begins — avoids distorting results with the cold-start period | 2 |
Running the Backtest
Click Run Full Backtest. The system:
- Saves your strategy, constraints, and objectives to the database
- At the start date, runs the optimizer to compute initial weights
- Simulates the portfolio daily using real historical prices
- At each rebalance date, re-runs the optimizer with updated data
- Applies transaction costs and stop loss rules
- Returns an equity curve, rebalance history, and summary metrics
Backtest Results
After completion you see:
- Total Return %, CAGR, Sharpe, Max Drawdown, Total Trades, Final Value
- Equity curve chart — portfolio value over time
- Rebalance history table — date, portfolio value, positions, turnover, trades at each rebalance
- Latest portfolio weights — current optimal allocations sorted by weight
Backtest Credits: Running a backtest costs credits (shown in the bottom bar as X / Y). Each account has a credit quota. Credits reset periodically.
Compute 1-Day Results
The Compute 1-Day Resultsbutton runs the optimizer once on today's data — no backtest, no simulation. This is useful for quickly seeing the current optimal portfolio without spending backtest credits.
Output:
- Expected Return %, Expected Risk %, Sharpe, Positions
- Optimal Portfolio Weights — full weight table sorted by allocation
Additional Analytics
Click Additional Analytics to attach factor signals to the backtest for enriched analysis. Two categories are available:
| Category | Description | Examples |
|---|---|---|
| User Created Factors | Factors you have built or uploaded in the Alpha Machine | Momentum Score, Value Composite, Quality Rank, Growth Score |
| Screener Factors | Standard fundamental and technical screener metrics | P/E Ratio, P/B Ratio, ROE, ROCE, EPS Growth, Beta, RSI, Operating Margin |
Selected factors appear as badges below the constraints/objectives section and are included in the analytics output. Use the search box to find specific factors. Selected factors are shown with remove badges.
Promote & Demote
Once you are satisfied with a strategy's backtest results, you can promote it to production.
- Click Promote on a backtested strategy — it moves to the Production tab
- Production strategies can generate live rebalance trade lists
- Click Demote to move it back to the Backtested tab
Live Rebalance
For production strategies, click Rebalanceto generate an actionable trade list using current market prices and the optimizer's latest target weights.
Trade Actions
| Action | Color | Meaning |
|---|---|---|
| NEW BUY | Green | Buy a stock not currently held |
| INCREASE | Green | Buy more of an existing holding |
| REDUCE | Amber | Sell some shares of an existing holding |
| EXIT | Red | Sell all shares (completely exit position) |
| HOLD | Gray | No change needed |
The trade list shows Symbol, Action, Current %, Target %, Delta %, Qty, Value, and Price for each position. Download as CSV for manual execution through your broker.