Z-Score

Expón tus sistemas e indicadores y debátelos con otros usuarios.
dahon
Mensajes: 244
Registrado: 11 Dic 2018 08:57

Re: Z-Score

Mensaje por dahon » 23 Sep 2019 13:22

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 14 veces
1+0.1.pdf
(351.4 KiB) Descargado 14 veces



Rango Starr
Mensajes: 3174
Registrado: 22 Dic 2014 10:49

Re: Z-Score

Mensaje por Rango Starr » 23 Sep 2019 13:42

dahon escribió:
23 Sep 2019 13:22
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
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.



Rango Starr
Mensajes: 3174
Registrado: 22 Dic 2014 10:49

Re: Z-Score

Mensaje por Rango Starr » 23 Sep 2019 13:44

Rafa7 escribió:
23 Sep 2019 10:00
Sres. foristas.



¿Sirve el Z-Score para aceptar o rechazar sistemas de trading?
En mi falible opinión, no sirve, y por muchos motivos, por ejemplo: que un sistema de trading tenga un Z-Score histórico fuera del rango [-1,96; 1,96] es casi imposible (digo "casi" porque se puede dar en rarísimos casos). Esto se desprende tanto del artículo de Andrés García como el de Michael R. Bryant (al que estado llamando Mike).

Practicamente, la única posibilidad de obtener Z-Score fuera del rango [-1,96; 1,96] es en una ventana de las últimas n operaciones. (Eso afirman tanto Andrés como Mike).
Las estadísticas de los 3 sistemas que nos aportó Nightmare, con Z-Scores < -1,96, no creo que se traten de estadísticas sobre todo el histórico sino más bien estadísticas de los últimas n sesiones.

Pero hay un grave problema que nos señala Andrés García en su artículo: que si reducimos el estudio a la ventana de las últimas operaciones, vamos a reducir drásticamente el número de operaciones. Y, opino yo, esto puede llegar a ser un gran problema porque el SQN va a ser muy afectado negativamente, y eso sería síntoma que el nuevo sistema (o sea, aplicando el algoritmo de Mike) será menos robusto y más cuestionable sus estupendas estadísticas.

Aparte de esto, tenemos un prejuicio: pensamos que un sistema que cuyos resultados se comporte como variable aleatoria, es malo . Y eso no es así. Un sistema de trading con buenas estadísticas (SQN muy superior a 1) no deja de ser bueno si su Z-Score es nulo (dentro del rango [-1,96; 1,96]).



Saludos.
rafa, en el supuesto que ponia X-trader al menos hay que investigar un poco la logica... y casi seguro descartar.

sdos



dahon
Mensajes: 244
Registrado: 11 Dic 2018 08:57

Re: Z-Score

Mensaje por dahon » 23 Sep 2019 14:42

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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 26 Sep 2019 15:51

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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 02 Oct 2019 11:47

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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 07 Oct 2019 15:47

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: 10705
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Z-Score

Mensaje por X-Trader » 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). 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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 09 Oct 2019 10:44

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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 10 Oct 2019 12:22

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: 4541
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Z-Score

Mensaje por Rafa7 » 11 Oct 2019 14:29

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


Responder

Volver a “Sistemas y Estrategias de Trading”