1 votos

Cómo calcular la varianza del punto a partir de la TSRV (Varianza realizada a dos escalas)

Si el TSRV está dado por:

$$TSRV = \frac{1}{K} \sum_{i=K}^{n} (S_i - S_{i-K})^2 - \frac{\bar{n}}{n}\sum_{i=1}^n (S_i - S_{i-1})^2 $$

donde $\bar{n} = \frac{n - K + 1}{K}$, con $n$ siendo el número de puntos de datos, $K$ siendo los ticks.

La varianza spot en el intervalo $[t-h,t]$ está dada por:

$$\sigma_t^2 = \frac{TSRV_t - TSRV_{t-h}}{h} $$

Supongamos que tengo $n=10,000$ puntos de datos, y estoy tratando de encontrar $\sigma_t^2$, que es un array en diferentes momentos, $t$. Entonces si el tamaño de $S$ es $n=10,000$, y $K=10$ entonces dejamos que el array de TSRV tenga un tamaño de algo así como 800.

Mi código en python está a continuación. Estoy confundido con el $n$ en el TSRV. ¿Debería ser $n$ el número de puntos hasta el tiempo $t$, o siempre es el número de puntos hasta el tiempo máximo, $n = tamaño(t_{max})$?

Porque a veces obtengo TSRV negativo porque el 1er término es más grande que el 2do, pero por lo que entiendo, la varianza de $S_i - S_{i-K}$ siempre debería ser mayor que $S_i - S_{i-1}$

H = 800 # tamaño del array TSRV

K=10

n = np.size(S)   # S es un array con tamaño 10,000

time_index = np.linspace(0,n,H+1,dtype=int)
time_index = time_index[1:]  # nueva escala de tiempo para el TSRV

TSRV = np.empty(H)

idx=0
for j in time_index:
    n = n.size(S[K:j])
    n_bar = (n-K+1) / K

    TSRV_1 = np.sum((S[K:j]- S[:j-K])**2)
    TSRV_2 = np.sum((S[1:j] - S[:j-1])**2)

    TSRV[idx] = 1/K * TSRV_1 - n_bar / n * TSRV_2

    idx+=1

t=0
idx=0
T = int(H/2)
variance = np.empty(T)

# Aquí estamos eligiendo h = 2, entonces TSRV_2 - TSRV_0,  TSRV_4 - TSRV_2,… 
while t < T:
    variance[idx] = (TSRV[2*(t+1)] - TSRV[2*t]) / (time_max/T)
    t+=1

    idx+=1
```

1voto

xrost Puntos 129

Establecimiento de $n$ en tu procedimiento de simulación:

$n$ es la cantidad de datos intradía entre dos días $[t-1, t]$. Si asumimos una frecuencia de 1 segundo durante las horas de apertura de la Bolsa de Nueva York, tenemos $n = 60 \cdot 60 \cdot 6.5 = 23400$ puntos de datos intradía (el horario de la Bolsa de Nueva York es de 9:30 a. m. a 4 p. m., lo que nos da 6.5 horas). Trabajar con datos durante las horas de apertura del mercado es generalmente lo preferido empíricamente para muchos artículos financieros de alta frecuencia.

Para muchos procedimientos de simulación relacionados con la volatilidad realizada, si reunimos 23400 puntos de datos en el lapso de 6.5 horas o asumimos su distribución a lo largo de un período completo de 24 horas no impacta significativamente los resultados. La mayoría de las veces, el objetivo del procedimiento de simulación es investigar el estimador realizado de una manera que sea independiente del período específico de muestreo intradía de los datos. Esto es cierto, por ejemplo, si deseas verificar si tu estimador realizado converge hacia la volatilidad "verdadera" de tu proceso estocástico.

Por lo tanto, puedes tomar $n=23400$ y asumir que se distribuye durante todo el período de 24 horas.


Estimación negativa de TSRV:

Para abreviar, definamos el estimador TSRV como: \begin{align} TSRV &= \frac{1}{K} \sum_{i=K}^{n} (S_i - S_{i-K})^2 - \frac{\bar{n}}{n}\sum_{i=1}^n (S_i - S_{i-1})^2 \\ &= RV_t^{subavg} - RV_t^{noisy}. \end{align}

El hecho de que el TSRV pueda dar estimaciones negativas está bien documentado en la literatura.

El estimador está diseñado para trabajar con datos ruidosos de muy alta frecuencia, lo que significa configuraciones donde los datos en bruto se muestrean cada pocos segundos en el caso de datos financieros típicos. Si este no es el caso, el término de corrección de sesgo podría corregir demasiado la volatilidad, lo que lleva a estimaciones negativas.

Un extracto de Aït-Sahalia, Yacine, y Jean Jacod. Econometría financiera de alta frecuencia (2014) en las pp. 234 - 235, destaca este problema (He cambiado la notación a la mía):

Observación 7.12 (Consideraciones prácticas) Los estimadores como TSRV están diseñados para trabajar con activos muy líquidos. De hecho, la corrección de sesgo se basa en la idea de que el RV calculado con todas las observaciones de alta frecuencia, $RV_t^{noisy}$, consiste principalmente en ruido. Pero si la frecuencia de la muestra de datos completa es baja desde el principio (por ejemplo, una acción muestreada cada minuto en lugar de cada segundo), $RV_t^{noisy}$, no será completamente ruido, y corregir el sesgo como se muestra arriba puede corregir demasiado, incluso en casos extremos posiblemente arrojando un estimador negativo en (7.38). Por lo tanto, se debe tener cuidado al aplicar el estimador en configuraciones adecuadas. [...]

Si estás realizando un experimento de simulación y no asumes ningún proceso de ruido (aditivo) en tus logaritmos de precios, es probable que te encuentres con el mismo problema. Te aconsejaría que asumas un proceso de ruido aditivo, $v_t$, de modo que observemos $Y_t = S_t + v_t$ y calcules el estimador TSRV en el proceso de logaritmo de precios ruidoso, $Y_t$ en su lugar. Esto podría aliviar el problema.


Nota que puedes corregir el estimador TSRV por sesgo de muestra finita:

$$ TSRV^{adjusted}_t = \left(1 - \frac{\bar{n}}{n}\right)^{-1} TSRV, $$ dándote una versión ligeramente mejorada del estimador TSRV, especialmente para tamaños de muestra "más pequeños".

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