DocsAPI ReferenceWheelOptimal Roll

Optimal Roll

Ranked roll candidates for an option position, scored by the same engine as the dashboard's Optimal Roll table.

Get roll candidates

GET/optimal-roll
Parameters
symbolstringrequired
Underlying ticker.
strikenumberrequired
Current strike.
expirationdaterequired
Current expiration (YYYY-MM-DD).
optionTypestringrequired
put or call.
positionSidestring
short (default) or long.
curl -H "Authorization: Bearer qw_live_YOUR_KEY" \
  "https://quantwheel.com/api/v1/optimal-roll?symbol=NVDA&strike=120&expiration=2026-08-15&optionType=put"

Response

Candidates come from live options chains and are ranked best-first. Fields vary slightly between short and long positions.

200 OK (abridged)
{
  "ticker": "NVDA",
  "currentExpiration": "2026-08-15",
  "currentStrike": 120,
  "optionType": "put",
  "positionSide": "short",
  "stockPrice": 124.9,
  "currentBid": 1.85,
  "currentAsk": 1.95,
  "currentMid": 1.9,
  "opportunities": [
    {
      "newExpiration": "2026-09-19",
      "newStrike": 115,
      "netPremium": 1.45,
      "yield": 0.42,
      "yearlyYield": 15.3,
      "rating": 91,
      "riskOfAssignment": 0.12,
      "equityReleased": 500,
      "pnlImprovement": 145.0
    }
    // ranked candidates; rows also carry indicative bid/ask, IV and greeks
    // for the specific contracts being evaluated
  ]
}

What the score weighs

InputWhy it matters
netPremiumRolls should pay you, not the market maker.
yearlyYieldTime added vs. credit received, annualized.
riskOfAssignmentDerived assignment probability at the new strike.
equityReleased / pnlImprovementCollateral freed and P&L improvement vs. holding.