volatility / wire operation
Expected move (1σ)
totalfinance.volatility.expected_move
Compute the expected 1-sigma move of the underlying by expiry — the lognormal ±1σ band and the expected absolute move. Provide `impliedVolatility` + `timeToExpiryYears` to imply it from volatility, or `straddlePrice` to imply it from the ATM straddle. Risk-neutral, not a directional forecast.
| Pack / profiles | volatility / default, full, options, strategies |
|---|---|
| Default discovery | Included |
| Required capabilities | None |
| Effects / authorization | none / none |
| Cost / cancellation | small / Do not assume inline interruption |
| Handle-eligible inputs | None |
| Idempotency | not-applicable |
Input schema
{
"type": "object",
"properties": {
"spot": {
"type": "number",
"exclusiveMinimum": 0
},
"impliedVolatility": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Implied volatility (annualized decimal); with `timeToExpiryYears`, the 1σ move is spot·σ·√timeToExpiryYears"
},
"timeToExpiryYears": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Time to expiry in years (required with `impliedVolatility`)"
},
"straddlePrice": {
"type": "number",
"exclusiveMinimum": 0,
"description": "ATM straddle mid-price; when given, the move is implied from the straddle instead of IV"
}
},
"additionalProperties": false,
"required": [
"spot"
]
}Output schema
{
"type": "object",
"properties": {
"value": {
"type": "object",
"properties": {
"oneSigma": {
"type": "number"
},
"oneSigmaFraction": {
"type": "number"
},
"expectedAbsolute": {
"type": "number"
},
"lower": {
"type": "number"
},
"upper": {
"type": "number"
}
},
"required": [
"oneSigma",
"oneSigmaFraction",
"expectedAbsolute",
"lower",
"upper"
]
},
"assumptions": {
"type": "object",
"description": "Applied conventions"
},
"diagnostics": {
"type": "object",
"description": "Engine, method, warnings"
}
},
"required": [
"value"
]
}