2 votos

Sticky delta vs sticky strike

He estado tratando de entender estos conceptos, pero lo que he encontrado en línea ha causado más confusión: específicamente por qué un modelo de delta fijo podría llevar a un delta más alto o a un número mayor de contratos que un modelo de strike fijo.

Entiendo que son modelos diferentes, pero no estoy seguro por qué el delta fijo sería más alto. Estaba mirando el S&P 500 y el delta siendo más alto bajo delta fijo que bajo strike fijo; no estoy seguro por qué sería eso.

4voto

hoge Puntos 281

Al hacer un poco de caza diferencial, puedes obtener una solución en forma cerrada para el delta adaptado, también conocido como sticky, de una opción de compra de mercado. Recordemos que el precio C de una opción de compra de mercado se da por la ecuación de Black-Scholes, por lo que $$C = BS(S, K, \sigma, T)$$. En el entorno de delta pegajoso, sabemos que la volatilidad $\sigma$ depende funcionalmente del delta de Black-Scholes $$\sigma = f(\delta)$$ y $$\delta = \frac{\partial BS}{\partial S}(S,K,\sigma,T)$$

Al realizar derivadas y resolver, demostramos que $$\frac{d C}{d S}=\frac{\partial BS}{\partial S} + \frac{\partial BS}{\partial \sigma}\times\frac{\frac{\partial^2 BS}{\partial S^2}\frac{\partial \sigma}{\partial \delta}}{1-\frac{\partial^2 BS}{\partial S \partial \sigma} \frac{\partial \sigma}{\partial \delta}}$$ Por lo tanto, el impacto en el delta pegajoso normal está determinado por el signo del término $\frac{\partial \sigma}{\partial \delta}$, que típicamente es positivo en torno al nivel forward en el dinero. Dado que en esa zona el gamma y vega también son positivos, siempre y cuando la pendiente de la curva de volatilidad en el espacio de delta no sea demasiado dramática, veremos que el delta de la opción de compra adaptada es mayor que el delta de la opción de compra de strike pegajoso.

(Editar - Agregando prueba)

$$\frac{dC}{dS} = \frac{\partial BS}{\partial S} + \frac{\partial BS}{\partial \sigma} \frac{\partial \sigma}{\partial \delta}\frac{d\delta}{dS}$$ $$\frac{d\delta}{dS} = \frac{\partial \delta}{\partial S} + \frac{\partial \delta}{\partial \sigma} \frac{\partial \sigma}{\partial \delta}\frac{d\delta}{dS} \implies \frac{d\delta}{dS}=\frac{\frac{\partial \delta}{\partial S}}{1-\frac{\partial \delta}{\partial \sigma}\frac{\partial \sigma}{\partial \delta}}$$ Pero $$\delta = \frac{\partial BS}{\partial S}(S,K,\sigma,T)$$ entonces $$\frac{d\delta}{dS}=\frac{\frac{\partial^2 BS}{\partial S^2}}{1-\frac{\partial^2 BS}{\partial S \partial \sigma}\frac{\partial \sigma}{\partial \delta}}$$ y por lo tanto $$\frac{d C}{d S}=\frac{\partial BS}{\partial S} + \frac{\partial BS}{\partial \sigma}\times\frac{\frac{\partial^2 BS}{\partial S^2}\frac{\partial \sigma}{\partial \delta}}{1-\frac{\partial^2 BS}{\partial S \partial \sigma} \frac{\partial \sigma}{\partial \delta}}$$

2voto

rod Puntos 11

Un ejemplo simple.

Supongamos que tienes una llamada y los rallies de spot ($\Delta S >0$), digamos que tu skew es de pendiente descendente, entonces ganarías dinero pero no tanto como creerías en un régimen de delta pegajoso.

Esto se debe a que tu pnl de delta positiva ($\delta_{BS} \Delta S$) se compensa parcialmente por la pérdida de vega ($\nu \Delta \sigma_i $) a medida que la volatilidad disminuye ($\Delta \sigma_i < 0 $) para una strike fijo.

1voto

BC. Puntos 9229

Siempre encuentro los gráficos intuitivos. Miraré las calls, pero también es fácil extenderlo a puts.

Como se menciona en un comentario:

  • La sticky strike es realmente solo el delta de Black Scholes calculado con Diferencias Finitas.
  • Sticky delta se refiere a ajustar IV cuando subes y bajas (porque IV está pegado al delta / moneyness).

Utilizo Julia para trazar y calcular los valores relevantes. El siguiente código se utiliza para trazar una superficie de volatilidad ficticia que tiene 3 regiones diferentes:

  • una IV con pendiente descendente (alrededor de P2) -> Sticky Delta será menor
  • una IV plana (alrededor de P5) -> Sticky Delta será idéntico
  • una IV con pendiente ascendente (alrededor de P8) -> Sticky Delta será mayor

El gráfico en el lado izquierdo (LHS) muestra en la línea verde punteada una superficie de volatilidad plana donde las subidas y bajadas alrededor del spot tienen la misma volatilidad como entrada. Los puntos naranjas en el RHS corresponden a los puntos naranjas en el LHS. La única diferencia son las dos IV al principio y al final, lo que hace que la pendiente sea más pronunciada.

enter image description here

usando Plots, Distributions, DataFrames, PrettyTables
vola = [0.2474, 0.2471, 0.2470,0.2470,0.2470,0.2470, 0.2470, 0.2471, 0.2473]
vola_flat = [0.2471, 0.2471, 0.2471,0.2470,0.2470, 0.2470,  0.2471, 0.2471, 0.2471]
vola2 = [0.2484, 0.2471, 0.2470,0.2470,0.2470,0.2470,0.2470, 0.2471, 0.2483]
strike = 98.5:0.5:102.5
vol = Dict(zip(strike,vola))
vol_flat = Dict(zip(strike,vola_flat))
vol2 = Dict(zip(strike,vola2))
p1 = plot(strike, vola, ylims=(mínimo(vola2)-0.0005,máximo(vola2)+0.0005),xlabel="Strike",
    ylabel="IV",  label = false, linewidth = 3)
plot!(strike, vola_flat, ylims=(mínimo(vola2)-0.0005,máximo(vola2)+0.0005),xlabel="Strike",
    ylabel="IV",  label = false, linewidth = 2, linestyle = :dashdot, linecolor = :green)
[annotate!([strike[i]], [vola[i]+0.0001], "P$i") for i in 2:3:8]
[plot!([strike[i], strike[i]], [vola[i], 0], linestyle = :dashdot) for i in 2:3:8]
plot!(strike, vola, seriestype=:scatter, label = false, color = :orange)
p2 = plot(strike, vola2, ylims=(mínimo(vola2)-0.0005,máximo(vola2)+0.0005),xlabel="Strike",
    ylabel="IV", label = false, linewidth = 3)
plot!(strike, vola2, seriestype=:scatter, label = false,color = :green)
plot!(strike, vola, seriestype=:scatter, label = false, color = :orange)
[annotate!([strike[i]], [vola[i]+0.0001], "P$i") for i in 2:3:8]
[plot!([strike[i], strike[i]], [vola[i], 0], linestyle = :dashdot) for i in 2:2:8]
plot(p1,p2, left_margin = 2Plots.mm, legend = false)
plot!(size=(900,500))

Empecemos por calcular los valores y Delta de Black Scholes primero. La función se ve así (el cp_flag permite calls (1) y puts (-1)):

function BSM(S,K,t,rf,d,, cp_flag)
    d1 = (log(S/K) + (rf - d + 1/2*^2)*t) / (*sqrt(t))
    d2 = d1 - *sqrt(t)
    opt = cp_flag*exp(-d*t)S*N(cp_flag*d1) - exp(-rf*t)*cp_flag*K*N(cp_flag*d2)
  return opt, exp(-d*t)*N(cp_flag*d1)
end

Evaluamos esto para diferentes valores del spot, que corresponden a los 3 diferentes puntos,

    df = DataFrame("Spot" => spot, "Call Constant Vol" => [BSM(spot,k,t,log(1+r*t)/t,log(1+d*t)/t,vol_flat[spot], 1)[1] for spot in spot], 
     "IV Constant" => vola_flat,
    "Call BS Delta" => [round(BSM(spot,k,t,log(1+r*t)/t,log(1+d*t)/t,vol_flat[spot], 1)[2]*100, digits = 3) for spot in spot],  
    "Call Variable IV I" => [BSM(spot,k,t,log(1+r*t)/t,log(1+d*t)/t,vol[spot], 1)[1] for spot in spot],
    "IV I" => vola,
    "Call Variable IV II" => [BSM(spot,k,t,log(1+r*t)/t,log(1+d*t)/t,vol2[spot], 1)[1] for spot in spot],
    "IV II" => vola2)
hl_1 = Highlighter((data,i,j) -> data[i,1] == 99.0, crayon"bg:dark_gray white bold")
hl_2 = Highlighter((data,i,j) -> data[i,1] == 100.5, crayon"bg:dark_gray white bold")
hl_3 = Highlighter((data,i,j) -> data[i,1] == 102.0, crayon"bg:dark_gray white bold")
PrettyTables.pretty_table(df, border_crayon = Crayons.crayon"blue", 
                                header_crayon = Crayons.crayon"bold green", 
                                 formatters = ft_printf("%.2f" ),
                                 highlighters = (hl_value(55.307),hl_value(57.643), hl_value(59.915), hl_1,hl_2, hl_3))

lo que da como resultado la siguiente tabla:

enter image description here

Las líneas negras indican dónde queremos calcular el Delta. La tabla ya muestra el Delta de Black Scholes correspondiente en color naranja. También calculó todos los valores de BSM correspondientes para los diversos valores del spot, ya sea con una volatilidad plana (los spots desplazados usarán IV idénticas) o volatilidades reales de acuerdo con el cambio en el moneyness / delta que corresponde al desplazamiento.

Ahora solo queda mostrar a qué se refieren la sticky strike y el sticky delta. Como se mencionó anteriormente, la sticky strike simplemente corresponde al Delta de BSM. Diferencias Finitas significa que subes y bajas para obtener el delta (ver el enlace arriba para más detalles). En nuestro caso se ve así:

df_delta = DataFrame( "Spot" => ["$(spot[i+1])" for i in 1:2:5], 
            "Sticky Strike" =>  [round((df[!, "Call Constant Vol"][i+2] - df[!, "Call Constant Vol"][i])/0.01, digits = 2) for i in 1:3:8],
            "Sticky Delta I" => [round((df[!, "Call Variable IV I"][i+2] - df[!, "Call Variable IV I"][i])/0.01, digits = 2) for i in 1:3:8],
           "Sticky Delta II" => [round((df[!, "Call Variable IV II"][i+2] - df[!, "Call Variable IV II"][i])/0.01, digits = 2) for i in 1:3:8])
PrettyTables.pretty_table(df_delta, border_crayon = Crayons.crayon"blue", 
                                header_crayon = Crayons.crayon"bold green", 
                                 formatters = ft_printf("%.2f" ),
                                 highlighters = (hl_value(55.31),hl_value(57.64), hl_value(59.91)))

enter image description here

Como se sugirió al principio:

  • El Sticky Delta será menor si la superficie de IV tiene pendiente descendente
  • El Sticky Delta será idéntico si la superficie de IV es plana (alrededor del spot)
  • El Sticky Delta será mayor si la superficie de IV tiene pendiente ascendente

Cuanto más pronunciado sea, más marcado será este efecto. Puedes comprobar rápidamente el caso de la superficie plana si tienes Bloomberg. Carga OVML (para FX) y compara Delta con sticky delta (ambos se muestran). Anula manualmente IV y verás que ambos se vuelven idénticos.

Dado que las tablas muestran también los valores BSM, también es fácil encontrar una explicación. Bajar el spot hace que una opción de compra valga más. Aumentar IV también. Si la superficie tiene pendiente descendente, tienes valores BSM más altos si bajas y más bajos si subes. Dado que la diferencia es lo que importa, obtienes valores de delta más pequeños. Lo opuesto ocurre para superficies con pendiente ascendente.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X