Z-Score

El espacio de los traders quant: sistemas de trading, gestión monetaria, automatización de sistemas.
dahon
Mensajes: 1433
Registrado: 11 Dic 2018 08:57

Re: Z-Score

Mensaje por dahon »

Hola,

algo que me parece extraño, o algún error que se me ha colado, dos backtest mismas condiciones, uno abre una posición con 1 lote y otro dos posiciones, una con 1 lote y otra con 0,1 lote, los resultado similares, pero] el z-score que en uno es -1,14 y en otro -9,62 :shock:
Tiene pinta de ser fallo del backtest, pero no se
Adjuntos
solo 1.pdf
(265.25 KiB) Descargado 142 veces
1+0.1.pdf
(351.4 KiB) Descargado 132 veces
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Z-Score

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 17 May 2021 15:08, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Z-Score

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 17 May 2021 15:08, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
dahon
Mensajes: 1433
Registrado: 11 Dic 2018 08:57

Re: Z-Score

Mensaje por dahon »

Rango Starr escribió: 23 Sep 2019 13:42

puede que en el segundo te lo tome como dos entradas diferentes, si tienes dos trades donde antes tenia 1.. las rachas se te doblan. asi, se te dispara el Z-score. creo que es eso.
parece que es asi, he hecho otra prueba con otro y pasa de 0,11 a -3,05
Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

Sres. foristas,



He visto que la fórmula que usa Mike es euqivalente a:

Z = (r- E(r)) / ((E(r) - 1) * (E(r) - 2) / (n - 1))^0,5

Claro, que Mike usa la aproximación E(r) == 1 + 2 * w * l / n.

Pues con la misma fórmula pero usando el valor exacto de E(r) en lugar de su valor aproximado, o sea
E(r) = 1 + 2 * w * l * (n - 1) / n^2,
podríamos establecer un valor más exacto de Z.

En el ejemplo del artículo de X-Trader, w = 63, l = 37, r = 35, tenemos:
n = w + l = 63 + 37 = 100.
E(r) = 1 + 63 * 37 * 99 / 100^2 = 47,1538.
Z = (35 - 47,1538) / (46,1538 * 45,1538 / 99)^0,5 = -2,65.

Un valor muy próximo al del ejemplo, en el artículo de X-Trader: -2,61.

La ventaja de la fórmula que propongo es que no necesitamos un sumando corrector (0,5).



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

X-Trader escribió: Sin embargo, el Z-Score presenta un problema: solo analizamos las rachas de operaciones ganadoras y perdedoras, pero no analizamos su tamaño. Por ello, resulta conveniente complementar este test con un análisis del tamaño de los diferentes resultados, tratando de determinar si son independientes o no. Debemos tener en cuenta que puede perfectamente suceder que las rachas de operaciones perdedoras y ganadoras sean independientes y, sin embargo, existir dependencia entre los resultados de las operaciones (y viceversa). Pero esto lo dejamos para un próximo artículo ;).
X-Trader,



Esto es lo que dijiste en el último párrafo de tu artículo.
Estoy ansioso de leer el artículo que pensabas escribir.
Seguro que expandiría nuestras mentes.



Gracias.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

Sres. foristas,

Algunas posibles aplicaciones del Z-Score:

Óscar Cagigas escribió: . Cogemos un mercado, sacamos el ZSCORE de la cotización actual, y si está muy lejos (p.e. 3 desviaciones estándar por debajo) de una media de 20 entonces compramos.
. Vendemos por objetivo de beneficios o número de barras en la operación.
. El sistema es solo largo, solo sobreventa.
. No hay stop loss porque en cualquier caso la operación se cerrará pasado un número de barras determinado.

Esto es en lo que se basa el sistema ZSCORE del libro Quantitative Technical Analysis de Howard Bandy. Lo que he hecho ha sido adaptar el código del libro a nuestro entorno que calcula el número de contratos de futuros en función de la volatilidad del subyacente, el modelo de Rovert Carver.
Otra en un artículo de Howard B. Bandy:

Developing Robust Trading Systems, with Implications for Position Sizing and System Health
http://blueowlpress.com/wp-content/uplo ... Health.pdf

Y una más en el blog de Duk2:

Bandas de Bollinger: volatilidad con desviación estándar
https://estrategiastrading.com/bandas-d ... -estandar/
Algunos operadores prefieren trabajar con el Z-Score en vez de utilizar Bollinger. Mediante el Z-Score podemos comparar la posición relativa de los valores.

Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12776
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Z-Score

Mensaje por X-Trader »

Ojo Rafa7, no hay que confundir el test de rachas (que es lo que explico en mi artículo) con una variable tipificada (que es lo que están contando en esos enlaces). Observa por ejemplo en el PDF de Bandy:

Código: Seleccionar todo

LongZScore = ( C-EMA( C, LongZLength ) ) / StDev( C, LongZLength );
Fíjate que lo que hace es normalizar el precio restando una media y dividiendo por la desviación típica. Eso es equivalente a esto:

http://calculo.cc/temas/temas_estadisti ... acion.html

Los conceptos evidentemente están relacionados, pero en el caso de mi artículo la tipificación se realiza para poder hacer el contraste estadístico usando una Normal (0,1) mientras que en los ejemplos que muestras se trata de centrar el precio en torno a cero (dicho de otro modo, normalizar la escala).

Saludos,
X-Trader

PD: Te he juntado los posts en un solo mensaje y les he puesto títulos a los enlaces para que quede más vistoso :D
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

X-Trader escribió: 08 Oct 2019 23:36 Ojo Rafa7, no hay que confundir el test de rachas (que es lo que explico en mi artículo) con una variable tipificada (que es lo que están contando en esos enlaces).
Gracias, X-Trader.



Buena puntualización, y supongo que necesaria para que los lectores del hilo no se confundan.
Mi intención era mostrar que el Z-Score también lo podríamos aplicar al precio.

X-Trader escribió: 08 Oct 2019 23:36 PD: Te he juntado los posts en un solo mensaje y les he puesto títulos a los enlaces para que quede más vistoso
Gracias.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

Sres. foristas.



Sean
w = número de operaciones ganadoras.
l = número de operaciones perdedoras.
r = número de rachas.
n = número de operaciones = w + l >= 1.
p = fracción de acierto = w / n.
q = fracción de desacierto = 1 - p = l / n.

Ya hemos demostrado antes que
Esperanza(r) = 1 + 2 * p * q * (n - 1) = 1 + 2 * w * l * (n - 1) / n^2.

También se cumple:
Mín(r) = Si(p = 0, 1; 1; 2).
Máx(r) = Si(w = l; n; 1 + 2 * Mín(w; l)) = Si(p = 0,5; n; 1 + 2 * Mín(p; q) * n).

Donde Si() es la función Si() del Excel.

r = 1, su valor mínimo posible, sólo es posible cuando p = 0, 1.

r = n, su valor máximo posible, sólo es posible cuando Abs(w - l) <= 1.
(O sea, r = n solo es posible si Abs(p - q) <= 1 / n).



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4917
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 »

X-Trader,


He visto que la fórmula del test de rachas de la Universitat de Barcelona y la que usa Michael R. Briant, son equivalentes si suprimimos el factor corrector 0,5. En cambio la fórmula que usa Ralph Vince se parece mucho a estas dos, pero no es equivalente.

La fórmula que usa Mike es equivalente a esta:
Z-Score = (R - X) / ((X - 1) * (X - 2) / (N - 1))^0,5
Donde,
R = número de rachas,
X = 1 + 2 * W * L / N == Esperanza(R),
== quiere decir que es una aproximación, no una equivalencia exacta,
W = número de operaciones ganadoras,
L = número de operacions perdedoras,
N = número de operaciones,
N > 1.

Ahora bien, tanto en el test de rachas de la Universitat de Barcelona como en la fórmula de Mike (que es la misma pero sin el coeficiente corrector 0,5), se aproxima Esperanza(R) por 1 + 2 * W * L / N.

Mi sugerencia es que en lugar de usar la aproximación 1 + 2 * W * L / N, o de usar un coeficiente correctivo 0,5 (como se hace en el test de rachas de la Universitat de Barcelona), ¿por qué no usar el valor exacto de Esperanza(R) ya que lo conocemos?

Por lo tanto, mejor tomemos el valor exacto de Esperanza(R) = 1 + 2 * W * L * (N - 1) / N^2.

Por lo tanto la fórmula sería esta:


Z-Score = (R - X) / ((X - 1) * (X - 2) / (N - 1))^0,5.
Donde
X = Esperanza(R) = 1 + 2 * W * L * (N - 1) / N^2,
R = número de rachas,
W = número de operaciones ganadoras,
L = número de operacions perdedoras,
N = número de operaciones,
N > 1.


La única objección que se me ocurre a lo que propongo es que si modificamos el numerador de Z-Score (cambiando 1 + 2 * W * L / N por 1 + 2 * W * L * (N - 1) / N^2), tal vez también deberíamos cambiar el denominador. Me faltan fundamentos matemáticos para deducir si el denominador se ha de modificar o no.

Por otro lado, E(R) - (1 + 2 * W * L / N) = (1 + 2 * P * Q * (N - 1)) - (1 + 2 * P * Q * N) = 2 * P * Q.
Por tanto 0 <= E(R) - (1 + 2 * W * L / N) <= 0,5.
Por lo tanto, 1 + 2 * W * L / N <= E(R) <= 1 + 2 * W * L / N + 0,5.

Por este motivo, se usa el factor correctivo en la fórmula del test de rachas, pero discrepo de que tenga que ser +-0,5, debería ser siempre, si se usa, con signo positivo (como usa Ralph Vince). Pero, como digo, mejor no usar un factor correctivo cuando conocemos el valor exacto de Esperanza(R).

El factor correctivo, 0,5, se ha deducido por un camino muy diferente al de mi razonamiento. Pero tiene mucha lógica conociendo el valor exacto de Esperanza(R).



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Gordon Geko
Mensajes: 1130
Registrado: 08 Sep 2006 13:37

Re: Z-Score

Mensaje por Gordon Geko »

Yo creo que no se entendio bien a Ralph Vince ya que usar el matrix de coeficientes , o en su defecto el Zscore es solo valido para los scenarios spectrum y asi establecer una metrica comparativa de resultados.
Despues mediante una funcion puedes llegar una optimizacion de escenarios con sus probabilidades de ocurrencia en la siguiente serie temporal.
Eso via optimizacion matematica es la clave para no solo establecer un programa de tamaño de posicion por trade sino el tiempo de inicio y final de cada scenario spectrum basandonos en la desviacion de los z-score hacia sus extremos.............
El z-score te da el punto limite en el que un escenario con una probabilidad determinada puede tener una desviacion x o no.
Como la esperanza matematica positiva es residual y elastica mediantye todos los escenarios de posicionamiento solo uno llegara a poder utilizar todo su potencial de apalancamiento via su f-optima y solo asi se podra recuperar la aniquilacion de todos los otros escenarios que llegan a sufrir mas e un 100% de drawdown.................

El z-score por inerpolacion nos permite establecer cual de los scenario spectrum puede llegar al punto geometrico mas alto de apalancamiento y lanzar todo hacia el......................puedes destruir 14 equities y a la 15 llevar el crecimiento geometrico del portfolio a 30 veces por encima de las 15 equities juntas..................Por suerte la huella de cada trade puede mapearse matematicamente........o como decia Ralph ce todo lo que ocurre en una operativa de portfolio puede traducirse en una funcion matematica y esta optimizarla a su maxima utilidad.........la ciencia se convierte en arte via funcion.............
Gordon Geko
Mensajes: 1130
Registrado: 08 Sep 2006 13:37

Re: Z-Score

Mensaje por Gordon Geko »

Mas que el z-score es el estudio de la dependencia de todos los factores que comprenden las 3 partes de un portfolio , riesgo , tiempo y apalancamiento para establecer un punto de parentesis donde nuestro proceder operativo se mimetiza con el mercado a la perfeccion y este pierde su estado de eficiencia fuerte..........es solo entonces donde operar el full f-optima nos barre todo el tiempo restante que hemos tenido que operar bajo una esperanza matematica negativa con un apalancamiento de solo una fraccion de nuestra f-optima..................
aadriann
Mensajes: 2
Registrado: 25 Abr 2020 22:40

Re: Z-Score

Mensaje por aadriann »

X-Trader escribió: 13 Sep 2019 20:47 Otro detalle a tener en cuenta: el estadístico Z en realidad no es más que el resultado de tipificar el nº de rachas R, tal y como podéis ver en este enlace:

https://www.xlstat.com/es/soluciones/fu ... -runs-test

Así, restando su esperanza matemática a R y dividiendo por su desviación típica obtenemos la variable tipificada Z, que se distribuye según una Normal(0,1).

La cuestión ahora es... ¿de dónde demonios sale ese c=±0.5? Aparentemente es un factor corrector, porque si hacemos la tipificación ese 0.5 no sale por ningún lado (ni tampoco el +1 que se le suman a la esperanza matemática de R en el enlace de la UB).

Saludos,
X-Trader
Buenas, intento entender todo esto pero tengo dudas, y creo que tu podrías contestarlas por lo que parece que dominas del tema.

Si lo he entendido bien (algo que dudo)
-Suponemos que tenemos un sistema aleatorio, que sigue una distribución normal.
-Calculamos esperanza y desviación típica de esta variable para todos esos trades.
-Tipificamos la variable para tener una N(0,1)
-Y vemos si el valor de Z para el número de rachas entra dentro del rango de 2 desviaciones estándar o no para concluir si es o no es aleatorio.

Mi preguntas son
1-Si no sabemos que distribución tiene R, porque se presupone que es normal? Y se tipifica la variable como si lo fuera.

2-En caso de salir fuera del rango de 2 desviaciones típicas, como se puede asegurar que no pertenece a una si aleatoria, si en ella también hay valores que salen fuera de lo normal aunque sean muy pocos. No sería en todo caso una probabilidad de no ser aleatorio y no una certeza?

3-En el enlace que has pasado he visto esto (y lo he traducido):

En el caso de la prueba de dos colas (o dos caras), las hipótesis nula (H0) y alternativa (Ha) son:
H0 : los datos se distribuyen aleatoriamente.
Ha : Los datos no se distribuyen al azar.

En el caso de una cola, debe distinguir la prueba de cola izquierda (o de cola inferior o de un lado inferior) y la prueba de cola derecha (o de cola superior o superior). En la prueba de cola izquierda, se utilizan las siguientes hipótesis:
H0 : los datos se distribuyen aleatoriamente.
Ha : Hay repulsión entre los dos tipos de eventos.

En la prueba de cola derecha, se utilizan las siguientes hipótesis:
H0 : los datos se distribuyen aleatoriamente.
Ha : Los dos tipos de eventos son alternos.

Si en teoría basta mirar si está dentro o fuera del rango para concluir que es o no aleatorio, que demonios es esto?

Perdona mi ignorancia, pero es que no consigo entenderlo bien, y creo que solo tú puedes ayudarme. :lol:

Saludos!
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Z-Score

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 17 May 2021 18:00, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Sistemas de Trading”