Procedura Rolling Futures Contracts
Quick Reference
Procedura per passare da contratto futures in scadenza a contratto successivo, minimizzando costi e slippage.
Overview
Problema: Futures hanno scadenza → need to roll position al next contract.
Obiettivo: Smooth transition mantenendo exposure costante.
Timing critico: Roll troppo presto/tardi = higher costs.
Quando Rollare
Roll Window Standard
Tipico timing: 5-10 giorni prima expiration.
Razionale: - Liquidity migra a next contract - Spread tightens su next contract - Time decay accelera su current
Roll Triggers
Trigger 1: Volume Crossover
When Volume(next) > Volume(current):
Initiate roll
Trigger 2: Open Interest
When OI(next) > OI(current):
Initiate roll
Trigger 3: Calendar Days
When Days_to_expiry < 10:
Initiate roll
Best practice: Combina tutti e tre triggers.
Step-by-Step Procedure
Step 1: Monitor Approach to Expiry
15 giorni prima: - Check volume ratio (next/current) - Check open interest ratio - Check spread (next - current)
Example tracking:
Date: Dec 5
Current contract: Dec (expires Dec 15)
Next contract: Mar
Volume ratio: 0.60 (next/current)
OI ratio: 0.45
Status: Wait
Step 2: Identify Roll Window
10 giorni prima:
Date: Dec 10
Volume ratio: 0.85
OI ratio: 0.80
Spread: -$0.25 (backwardation)
Status: Monitor closely, prepare to roll
5 giorni prima:
Date: Dec 12
Volume ratio: 1.20
OI ratio: 1.15
Spread: -$0.30
Status: START ROLLING
Step 3: Decide Roll Strategy
Full Roll (Recommended for Small Positions)
Day 1: Close ALL current, Open ALL next
Pros: Simple, completed fast Cons: All execution risk one day
Gradual Roll (Recommended for Large Positions)
Day 1: Roll 33%
Day 2: Roll 33%
Day 3: Roll 34%
Pros: Spreads execution risk Cons: More complex, longer exposure split
Step 4: Execute Roll
For each contract:
Close current: - Use limit order at bid (if long) / offer (if short) - Wait up to 50% of trading day - Fallback to market if not filled
Open next: - Simultaneously place limit at bid/offer - Maintain same net exposure - Use spread order if available
Step 5: Verify Exposure Maintained
Check:
Old position size × Old contract value =
New position size × New contract value
Example:
Old: 10 contracts × $50 × 2500 = $1,250,000
New: 10 contracts × $50 × 2550 = $1,275,000
Close enough (price change from movement)
Roll Costs
Explicit Costs
Bid-ask spread × 2 (exit + entry):
Cost_explicit = 2 × Spread × Position_size
Example (S&P 500, spread = 0.25):
Cost = 2 × 0.25 × 10 contracts × $5 = $25
Implicit Costs
Calendar spread (contango/backwardation):
Contango (next > current):
Pay: (Price_next - Price_current) × Position
Backwardation (next < current):
Receive: (Price_current - Price_next) × Position
Example (contango +$5):
Cost = $5 × 10 contracts × $5 = $250
Total roll cost: $25 + $250 = $275
Annualized Cost
If roll 4× per year (quarterly contracts):
Annual_cost = Roll_cost × 4
= $275 × 4 = $1,100
As % of position: $1,100 / $1,250,000 = 0.088%
Spread Orders
What Are They
Spread order: Simultaneous sell current + buy next at specified spread.
Example:
"Sell Dec, Buy Mar at -$5 spread"
Executed when: Mar - Dec = -$5
Advantages
- Single transaction
- Locks in spread
- Less slippage
- Faster execution
Availability
Common: Liquid futures (S&P, bonds, crude) Rare: Exotic futures Check broker capabilities
Contract Selection
Which Next Contract?
Standard: Next quarterly (Mar, Jun, Sep, Dec) Example: Dec expiring → Roll to Mar
Alternative: Skip to second contract When: First contract illiquid or wide spread Example: Dec → Jun instead of Mar
Verify Liquidity
Before rolling, check next contract: - Volume > 1000/day (minimum) - Spread < 2× current contract - Open interest growing
If insufficient: Consider skipping to later contract.
Special Cases
Physical Delivery Contracts
Extra caution needed: - Roll earlier (10-15 days before) - Never hold into delivery period - Check first notice day
Example (Crude oil): - Expiry: 3rd business day before 25th - First notice: Months before expiry - Roll by: 20 days before expiry minimum
Cash-Settled Contracts
Less urgent: - Can roll closer to expiry - No delivery risk - Still need liquidity
Example (S&P 500): - Expiry: 3rd Friday of month - Cash settled at open - Roll by: Week before ok
Roll Yield
Persistent Backwardation
Example: Crude oil often backwardated - Current: $80 - Next: $78 - Gain $2 per roll
Annual benefit: $2 × 4 rolls = $8 = 10% return! This is carry from futures curve.
Persistent Contango
Example: VIX futures usually contango - Current: $15 - Next: $18 - Pay $3 per roll
Annual cost: $3 × 12 rolls = $36 = -60% drag! Kill returns - avoid unless necessary.
Automation vs Manual
Manual Rolling
Appropriate for: - 1-10 instruments - Quarterly rolls - Part-time trader
Routine: - Set calendar reminder 15 days before - Check volume/OI - Execute roll over 1-3 days
Automated Rolling
Appropriate for: - 10+ instruments - Monthly rolls - Full-time system
Logic:
if volume_next / volume_current > 1.0:
if days_to_expiry < 10:
execute_roll()
Tracking
Roll Calendar
Maintain spreadsheet:
Instrument | Current | Next | Expiry | Roll Date | Cost
ES | Dec23 | Mar24| 12/15 | 12/10 | $275
GC | Dec23 | Feb24| 12/28 | 12/20 | $150
Update as roll completes.
Roll Costs Log
Per roll, record: - Date - Contracts rolled - Spread paid/received - Bid-ask cost - Total cost - Slippage vs expected
Annual review: Total roll costs vs budget.
Minimizing Roll Costs
Technique 1: Patience
Use limit orders: - Bid for long rolls - Offer for short rolls - Save ~50% of spread
Technique 2: Timing
Roll when: - Spread favorable - High liquidity day - Market calm (not news)
Avoid: - Expiry day rush - FOMC days - Low volume hours
Technique 3: Spread Orders
If available, use spread orders: - Better pricing - Faster execution - Less risk
Technique 4: Contract Choice
Prefer contracts with: - Tighter spreads - Higher volume - Less contango
Example: ES (tight) vs EMD (wide) - roll costs differ 10×.
Risk Management
Don't Get Stuck
Never hold into: - Last trading day - Delivery period - Illiquid phase
Emergency exit: If forget to roll, market order immediately.
Exposure Gap
During roll, temporary split exposure:
Day 1: 7 old contracts + 3 new contracts
Risk: Slight tracking error for 1-3 days. Acceptable: Small cost of gradual roll.
Price Moves During Roll
Market moves during multi-day roll:
Example: - Day 1: Roll 50% at favorable spread - Day 2: Market rallies, spread widens - Decision: Complete roll at worse price or wait?
Rule: Complete roll as planned, don't time spread.
Different Asset Classes
Equity Index Futures
- Roll: 5-10 days before
- Volume trigger reliable
- Usually liquid
- Spread orders available
Bond Futures
- Roll: 10 days before
- Check deliverable basket
- Front contract switches fast
- Use spread orders
Commodity Futures
- Roll: 10-20 days before
- Physical delivery risk
- Check first notice day
- Wide spreads possible
FX Futures
- Roll: 5-10 days before
- High liquidity
- Tight spreads
- Consider FX spot instead (no rolling)
Errori Comuni
- Roll too late: Stuck in illiquid contract, wide spreads
- Roll too early: Pay penalty for early roll, old contract still liquid
- Ignore volume/OI: Roll to illiquid contract
- All at once large position: Move market, high slippage
- Forget to roll: Forced liquidation or unwanted delivery
- Market orders: Pay full spread both sides
- Wrong next contract: Roll to wrong month, illiquid
- No tracking: Don't know roll costs, can't optimize
Concetti Correlati
- [[Futures vs CFD]] - CFD non hanno rolling
- [[Bid-Ask Spread]] - component of roll cost
- [[Carry]] - roll yield from curve shape
- [[Smart Execution]] - minimize roll costs
- [[Transaction Costs]] - roll costs part of total