QuantsappFaster in the app: live data, alerts, tradingOpen
Log inStart free
Stock F&OPositionalNIFTYlow complexity

Basis vs fair carry

NIFTY futures normally trade above spot by roughly the cost of carry: interest minus dividends until expiry. When the premium runs well above that, traders may be piling into longs; when it shrinks or turns cheap, hedgers may be selling futures. This strategy measures that excess basis daily, compares it with its own 60-day history, and trades the near-month future for five sessions when it is unusually rich or cheap.
Compares NIFTY futures' premium over spot with its fair cost of carry each day, and trades the future for five sessions when that premium is unusually rich or cheap.
Market viewEither direction (follows the move)
TradesNIFTY near-month futures, 1 lot
RiskOpen-ended (loss not capped by the structure)
CapitalFutures margin
SuitsAdvanced
Trades a month2.8
Typical hold7 days
Profitable months7 of 12
Longest losing run3 trades
Made money inSignals on trend days that close near the high or lowSignals on non-expiry daysEvenings when India VIX closed above 14.5
Lost money inSignals on quiet sessions with a range under 0.75%Signals on weekly expiry dayChoppy days that close mid-range
Default settings
Symbol
Mode
Z window
Z entry
Rate %
Div yield %
Signal time
Hold days
Exit time
Lots
Backtest this strategy →Change any setting, pick your own period and run it in the Quantsapp web app. Backtesting is part of the Max plan. Pro+ members can use it now as a free trial.
1

How it trades

What it trades
Universe
NIFTY Positional · 1 Oct 25 → 30 Sep 26
Enters
15:15 when the excess basis z-score is beyond ±1.0 (rich buys, cheap sells)
Legs
BUY FUT · near month · Current month · 1 lotSELL FUT · near month · Current month · 1 lot
Exits
time 15:15 on the 5th session after entryroll futures expiry inside the hold: roll to next month
Re-entry
Next signal after the hold ends
Reading
once a day at SIGNAL_TIME. Spot is implied from the nearest listed expiry that is NOT the futures contract's own (a weekly, a few days out): S = its put-call-parity forward / (1 + (RATE_PCT - DIV_YIELD_PCT)/100 x days/365). Fair basis of the near-month future = S x (RATE_PCT - DIV_YIELD_PCT)/100 x days-to-its-expiry/365. Excess basis = (future - S) - fair basis, in basis points of S.
Signal
z = (today's excess - mean of the previous Z_WINDOW readings) / their standard deviation. MODE "trend": z >= Z_ENTRY buys, z <= -Z_ENTRY sells (rich basis = bullish positioning, cheap = bearish). MODE "contrarian": the opposite (fade the crowd).
Entry
LOTS of the near-month future at SIGNAL_TIME on the signal day. One position at a time; no signal on a futures expiry day (the expiring contract's basis is ~0 whatever the positioning).
Exit
at EXIT_TIME of the HOLD_DAYS-th session after entry ("hold N sessions"). No stop, no target.
Roll
a position that meets the futures expiry is closed at the expiry ("expiry") and the rest of the hold is carried in the next contract (at that close when the curve lists it, else the next session's first print).
2

Results

PRE-BUILT · DEFAULTS
NIFTY · 2025-10-01 → 2026-09-30 · 33 trades · before costs
Net P&L+₹41,351
Win rate52%
Max drawdown−₹73,638
Avg per trade+₹1,253
Profit factor1.14
Worst trade−₹49,868
3

Where it made and lost money

In this test the type of day the signal fired on made a large difference. The 10 signals on trend days that closed near the high or low made ₹1,25,707 before costs with an 80% win rate: a rich basis on a strong up day, or a cheap one on a down day, marked positioning that carried on. Signals on 13 quiet sessions lost ₹62,744, as a basis reading without a price move had little to follow. Weekly expiry days were the weak spot, losing ₹75,942 over 17 trades against ₹1,17,293 over 16 trades on other days, perhaps because expiry flows distort the basis. Signals after India VIX closed above 14.5 made ₹61,665.

Expiry day (NIFTY weekly)
Expiry day−₹75,94217 trades41% won
Other days+₹1,17,29316 trades62% won
Kind of session on the entry day
Quiet session (range under 0.75%)−₹62,74413 trades38% won
Trend day (closed near the high or low)+₹1,25,70710 trades80% won
Choppy day (wide range, closed mid-range)−₹21,61210 trades40% won
Session direction on the entry day
NIFTY closed above its open+₹74,26014 trades57% won
NIFTY closed below its open−₹32,90919 trades47% won
Market while the trade was held
NIFTY rose over 1% while held+₹52,1389 trades44% won
NIFTY within ±1% while held−₹11,15912 trades42% won
NIFTY fell over 1% while held+₹37312 trades67% won
India VIX the evening before
VIX below 11.5 (calm)−₹22,1986 trades50% won
VIX 11.5-14.5 (normal)+₹1,88415 trades53% won
VIX above 14.5 (nervous)+₹61,66512 trades50% won
Trend going in
Uptrend (NIFTY above its 20-day average)+₹21,73118 trades50% won
Downtrend (NIFTY below its 20-day average)+₹19,62015 trades53% won
How the entry day opened
Gap up of 0.4% or more+₹2,5647 trades43% won
Flat open+₹45,39021 trades57% won
Gap down of 0.4% or more−₹6,6045 trades40% won
Day of the week
Monday+₹53,7046 trades67% won
Tuesday−₹53,53716 trades44% won
Wednesday+₹98,4426 trades83% won
Thursday+₹2,9252 trades50% won
Friday−₹60,1833 trades0% won
The same trades, split by the market conditions around each entry, before costs.
4

About this strategy

  1. At 15:15 each day, estimate spot from the put-call parity of the nearest weekly option that is not the futures contract's own expiry.
  2. Work out the fair premium of the near-month future: spot × (5.5% interest − 1.2% dividend yield) × days to expiry ÷ 365.
  3. Excess basis is the actual premium minus that fair premium, measured in basis points of spot.
  4. Compute its z-score against the previous 60 readings. In trend mode, buy one lot when z is +1.0 or more and sell when it is −1.0 or less.
  5. Hold until 15:15 on the fifth session after entry, rolling into the next month if the contract expires first.
  6. No stop and no target; no signal on a futures expiry day; one position at a time.

Why traders use it

The futures basis is a quiet window into positioning. Leveraged buyers bid futures above fair value when they are confident, and hedgers press it below when they are nervous, so an unusual basis can reveal sentiment that price alone does not. Comparing the basis with fair carry removes the part explained by interest and dividends, and a z-score against recent history adjusts for the normal level drifting. Traders can follow the crowd (trend mode) or fade it (contrarian mode).

Works best whenIn this test, signals that fired on trend days closing near their high or low, when unusual basis and a strong price move pointed the same way, and signals after India VIX closed above 14.5. Non-expiry days did far better than expiry days.
Struggles whenSignals on quiet or choppy sessions, where an unusual basis was not backed by price movement, and signals on weekly expiry day, which lost money overall in this test.

The year in plain words

On NIFTY from 1 Oct 2025 to 30 Sep 2026 in trend mode, the strategy made 33 trades, counting monthly rolls separately, won 52% and earned ₹41,351 before costs, a profit factor of 1.14. Wins (₹19,578) and losses (₹18,217) were similar, so the edge was thin, and the maximum drawdown reached ₹73,638. Twenty-five trades ended after the five-session hold and seven at a futures roll. June (+₹33,730) and July (+₹24,199) were strongest, while September lost ₹35,853. With one futures lot and few trades, costs were modest: after ₹20 per order and bid-ask slippage the result was ₹34,256.

What the settings do

ModeTrend buys a rich basis and sells a cheap one, following positioning; contrarian does the opposite, fading it.Z windowHow many past daily readings the z-score is measured against. A shorter window reacts faster to shifts in the normal basis.Z entryHow unusual the excess basis must be, in standard deviations, to trade. Higher values give fewer, more extreme signals.Rate %The annual interest rate used to compute fair carry. Changing it shifts every fair-value estimate.Div yield %The annual NIFTY dividend yield deducted from carry. NIFTY dividends cluster in July to September, which a flat yield does not capture.Signal timeWhen the basis is read and any trade entered.Hold daysHow many sessions each trade is held.Exit timeThe time on the last session when the trade is closed.

Risks

  • Futures positions held for five sessions with no stop can lose heavily on a sharp move.
  • The basis also moves with interest rates, dividends and arbitrage flows that have nothing to do with sentiment.
  • Spot is estimated from option prices, so errors in the chain feed straight into the signal.
  • Wins and losses are similar in size, so a few bad trades can erase the year's gain.

Who it suits

Experienced futures traders who understand cost of carry and want a positioning-based swing signal, with futures margin and tolerance for week-long holds without a stop.

5

Questions traders ask

What is the fair value of NIFTY futures?

Fair value is spot plus the cost of carrying the position to expiry: interest on the money minus the dividends the index pays. If spot is 25,000, interest is 5.5% and dividend yield 1.2%, a future with 30 days left should trade about 88 points above spot.

Is the basis versus fair carry strategy profitable?

In this backtest on NIFTY futures from 1 Oct 2025 to 30 Sep 2026 it made ₹41,351 before costs and ₹34,256 after ₹20 per order and bid-ask slippage (statutory charges not included), with a ₹73,638 drawdown before costs. Past results do not guarantee future ones.

What does a rich futures premium tell you?

When futures trade well above fair value, buyers are paying extra for leveraged long exposure, which usually signals bullish positioning. A cheap premium suggests heavy hedging or short selling. The strategy's trend mode follows that signal; contrarian mode bets it will reverse.

Why not trade on futures expiry day?

On the day a contract expires, its price converges to spot, so its basis is close to zero whatever traders think. Reading positioning from it that day would give a meaningless signal.

6

Before you rely on it

WATCH OUTthe basis is also moved by rate changes and by index rebalancing / arbitrage flows that have nothing to do with sentiment; the source gives no tested result. Gross of costs.
WHERE THE RULES WERE UNCLEAR · OUR CHOICES- The source describes what a rich / cheap basis means, not a trade: direction and the 5-session hold are the spec's interpretation, and both readings (trend, contrarian) are offered. - There is no cash-index series in the SDK: spot is backed out of the nearest weekly's put-call parity, a few days from expiry, so the rate assumption moves it by only a few points. Days whose only listed expiry is the futures contract's own (the last week of a series) have no reading and no signal. - Dividends are a flat DIV_YIELD_PCT yield; NIFTY's dividends bunch in Jul-Sep, which the z-score's 60-day window partly absorbs but a seasonal dip in the basis can still read as "hedging". - Readings for the Z_WINDOW sessions before START are taken from the days before the test, so the first days already have a z-score.
Also known aspremium discount futures signalcost of carry signal
Backtests run on historical NSE data with fills at the last traded price. "Before costs" excludes brokerage, taxes and slippage. Quantsapp is not recommending any strategy; it is just a backtesting utility. Past results are not a promise of future returns.

Log in or sign up

Enter your mobile number. New to Quantsapp? The same OTP creates your free account.

+91

By continuing you agree to the Terms of Use and Privacy Policy.