Update Skew and Vol Path

    Set Skew Settings

    The SetSkewSettings message enables the client to set model settings for the specified instrument month. The SkewTypes documented in this message correspond to the options available in the Theoretical Model Wizard. SetSkewSettings is used to configure all SkewTypes, whether FIXED or FLOATING.

    For those who use a FLOATING VolPath, an additional SetVolPath message is necessary to configure the FLOATING VolPath. When updating these settings, it is recommended to follow each new SetSkewSettings message immediately with the appropriate SetVolPath message. In this case, the ATMStrike and ATMVol parameters are ignored, since these values are defined by the (FLOATING) curve. The partial exception to this is when the "Apply to Center" setting is enabled in the Metro GUI; if that option is set, the ATMStrike field in a server-bound SetSkewSettings message is used to assign the CenterDelta. This is not 100% supported by Subway as of May 2015 (since the CenterDelta value cannot be queried), so any necessary confirmation must be obtained via the Metro GUI.

    Parameters for the SetSkewSettings message depend on volatility skew type and point type; message syntax can be found below:

    Assigned (ASSIGNED)

    SetSkewSettings <InstrumentMonthID> ASSIGNED <Strike 1> <Volatility 1> <Strike 2> <Volatility 2> <Strike 3> <Volatility 3> ...

    Bounded Spline (BOUNDEDSPLINE) and Flexible (Cubic) Spline (FLEXIBLESPLINE)

    SetSkewSettings <InstrumentMonthID> < _SkewType_> <CallWingSlope> <CallWingDelta> <CallWingFactor> <CallFirstDelta> <CallFirstFactor> <CallSecondDelta> <CallSecondFactor> <PutWingSlope> <PutWingDelta> <PutWingFactor> <PutFirstDelta> <PutFirstFactor> <PutSecondDelta> <PutSecondFactor> <ATMStrike> <ATMVol>

    The BOUNDEDSPLINE and FLEXIBLESPLINE SetSkewSettings messages (above) have identical syntax. The FLEXIBLESPLINEOFFSET message, below, has a similar syntax, but all of the "Factor" parameters become "Offset" parameters.

    Flexible (Cubic) Spline with Offset (FLEXIBLESPLINEOFFSET)

    SetSkewSettings <InstrumentMonthID> <SkewType> <CallWingSlope> <CallWingDelta> <CallWingOffset> <CallFirstDelta> <CallFirstOffset> <CallSecondDelta> <CallSecondOffset> <PutWingSlope> <PutWingDelta> <PutWingOffset> <PutFirstDelta> <PutFirstOffset> <PutSecondDelta> <PutSecondOffset> <ATMStrike> <ATMVol>

    Quartic Polynomial (QUARTIC)

    SetSkewSettings <InstrumentMonthID> QUARTIC <CallCutoffFactor> <CallFirstDelta> <CallFirstFactor> <CallSecondDelta> <CallSecondFactor> <PutCutoffFactor> <PutFirstDelta> <PutFirstFactor> <PutSecondDelta> <PutSecondFactor> <ATMStrike> <ATMVol> <CallWingSlope> <PutWingSlope>

    Ratio (RATIO)

    SetSkewSettings <InstrumentMonthID> RATIO <ATMStrike> <ATMVol> <Skew> <Factor> <Curvature>

    Standard Fourth Order (FOURTHORDER)

    SetSkewSettings <InstrumentMonthID> FOURTHORDER <CallCutoffFactor> <CallFirstDelta> <CallFirstFactor> <CallSecondDelta> <CallSecondFactor> <PutCutoffFactor> <PutFirstDelta> <PutFirstFactor> <PutSecondDelta> <PutSecondFactor> <ATMStrike> <ATMVol> <IsLinked>

    Two-Sided (TWOSIDED) and Two-Sided Smoothed (TWOSIDEDSMOOTHED)

    SetSkewSettings <InstrumentMonthID> <SkewType> <ATMVol> <ATMStrike> <PutSlope> <PutCurve> <CallSlope> <CallCurve> <PutWing> <PutWingSlope> <CallWing> <CallWingSlope>

    The TWOSIDED and TWOSIDEDSMOOTHED SetSkewSettings messages have identical syntax.


    Set Volatility Path

    The SetVolPath message enables the Subway client to set up the volatility path for curves that use floating skews. Sending this message, aside from submitting the parameters given, will do two other things:

    1. The SkewType will be set to FLOAT for the InstrumentMonth specified.
    2. The ATM Volatility and ATM Price as specified in (or configured via) any previous messages will be overwritten by the curve and the current market underlying, respectively.
    3. When setting left/right point values, these values are offset to the middle point. For example, a flat path would have left/right values of 0. Negative values are accepted.

    Therefore it is very important for Floating Skew configurations to send in a SetSkewSettings message first, and (if using a floating skew) then submit a SetVolPath message.


    SetVolPath <MonthID> <LeftPointXType> <LeftPointXValue> <LeftPointYType> <LeftPointYValue> <MiddlePointXValue> <MiddlePointYValue> <RightPointXType> <RightPointXValue> <RightPointYType> <RightPointYValue> <VolPathTilt>


    To set the volatility path to a constant 20 vol:

    SetVolPath 120550 Strike 90 Volatility 0 100 0.2 Strike Price 110 Volatility 0 1


    Modify Skew Settings

    The ModifySkew message enables Subway users to modify their skew using the same parameters provided in the Metro GUI.


    ModifySkew <InstrumentMonthID> <Tilt> <PutTilt> <CallTilt> <Kurtosis> <Put Kurtosis> <Call Kurtosis>

    If the Subway user wants to modify the skew using a subset of the available parameters, they will enter a zero value for the parameters they aren’t changing (a value of zero indicates zero modification to that parameter).

    For example, if they want to adjust the curve by adding a volatility of 10 to the tilt only, they would send something similar to the following:


    ModifySkew 1000100 .10 0 0 0 0 0


    Commit Theo Model Settings

    By default, messages sent in to the server to change Theoretical Model Settings (this includes the SetSkewSettings, SetVolPath, SetModelParameters, ModifySkew, and SetTheoCenterSettings messages) are not published immediately, but instead the first of any of these will start a five-second timer during which any quantity of the OTHER messages can be pushed to the server. At the end of the timeout, all of these model settings will be applied. This is to prevent incidental (however brief) application of incorrect settings. If it is necessary to apply model settings before the default 5-second timeout completes, then a FlushTheoTx message may be sent.



    There is no ACK notification from the server; to confirm that new model settings have been applied, send a ModelSettingsSnapshotRequest message.

    Model Settings Update

    The server-bound ModelSettingsUpdate message is deprecated. Please use the SetSkewSettings and (for those with a floating SkewType) then the SetVolPath message.

    Model Update Notification

    The ModelUpdateNotification notification is received when there have been changes to the model by another client and a ModelSettingsSnapshot needs to be performed in order to obtain the most current model parameters.