Skip to content

Add VIX Mini Futures (VXM) Support#9400

Open
Ruuudy1 wants to merge 2 commits into
QuantConnect:masterfrom
Ruuudy1:feature-6655-vxm-futures
Open

Add VIX Mini Futures (VXM) Support#9400
Ruuudy1 wants to merge 2 commits into
QuantConnect:masterfrom
Ruuudy1:feature-6655-vxm-futures

Conversation

@Ruuudy1
Copy link
Copy Markdown

@Ruuudy1 Ruuudy1 commented Apr 14, 2026

Summary

  • Add Futures.Indices.VIXMini = "VXM" constant to support VIX Mini Futures
  • Implement expiry function: 30 days before third Friday of following month
  • Add symbol properties: multiplier 100, tick size 0.01 (USD)
  • Add 15 test data pairs (2023-2025) to FuturesExpiryFunctionsTestData.xml
  • Add test case with EightOClockChicagoTime settlement
  • Add market hours matching VX trading schedule

Description

Adds LEAN support for VIX Mini Futures (VXM) traded on Cboe Futures Exchange (CFE). VXM provides one-tenth the exposure of standard VIX futures contracts with identical expiration mechanics.

Related Issue

Closes #6655

Motivation and Context

VIX Mini Futures enable traders to get VIX exposure with lower capital requirements. Without LEAN support, users cannot trade or backtest VXM contracts in the framework.

Requires Documentation Change

N/A

How Has This Been Tested?

  • Build validation: All 0 compilation errors
  • Code follows existing VX implementation pattern
  • Test data populated for 2023-2025 contract months
  • Added test case to IndicesExpiryDateFunction_WithDifferentDates_ShouldFollowContract

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • Code builds with 0 errors
  • Changes follow existing LEAN conventions
  • Test data added for VXM expiry dates
  • Branch follows naming convention feature-[ISSUE_NUMBER]-[description]

@Martin-Molinero
Copy link
Copy Markdown
Member

Martin-Molinero commented Apr 14, 2026

Would be nice to add a sample margin file too see VX at https://github.com/QuantConnect/Lean/tree/master/Data/future/cfe/margins

Comment on lines +558 to +561
if (holidays.Contains(expiryDate) || holidays.Contains(nextThirdFriday))
{
expiryDate = expiryDate.AddDays(-1);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor but this is blindly shifting a day backwards, doesn't validate it's a tradable date, just if it's a holiday, which seems error prone?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

*suggest checking how it's done in the others

Ruuudy1 and others added 2 commits April 14, 2026 13:31
Adds complete LEAN support for VIX Mini Futures (VXM) traded on CBOE:
- Add Futures.Indices.VIXMini = "VXM" constant
- Add expiry function: 30 days before third Friday of following month
- Add symbol properties: multiplier 100, tick 0.01 (USD)
- Add 15 test date pairs for 2023-2025 to FuturesExpiryFunctionsTestData.xml
- Add [TestCase(VIXMini, EightOClockChicagoTime)] to IndicesExpiryDateFunction test
- Add market hours configuration mirroring VX trading hours

Closes QuantConnect#6655

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Replace single `if` holiday check with `while` loop using
  `IsCommonBusinessDay()` to ensure the computed expiry date
  is always a valid tradable day (not just one step back)
- Fix test data: 2025-03-19 -> 2025-03-18 (April 18 2025 is
  Good Friday, a CFE holiday, shifting the expiry back)
- Add Data/future/cfe/margins/VXM.csv margin file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Ruuudy1 Ruuudy1 force-pushed the feature-6655-vxm-futures branch from fb8843d to 33eee65 Compare April 14, 2026 20:42
@Ruuudy1
Copy link
Copy Markdown
Author

Ruuudy1 commented Apr 14, 2026

@Martin-Molinero Made the necessary changes. Added sample file, same as VIX sample file but at 1/10th of the maintenance since for VXM.

@Ruuudy1 Ruuudy1 closed this Apr 20, 2026
@Ruuudy1 Ruuudy1 deleted the feature-6655-vxm-futures branch April 20, 2026 17:11
@Ruuudy1 Ruuudy1 restored the feature-6655-vxm-futures branch May 19, 2026 20:31
@Ruuudy1 Ruuudy1 reopened this May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adds Support to Mini VIX (VXM) Futures

2 participants