Sistemas con esperanza positiva
 
 

Sistemas con esperanza positiva

 
TradingSys (AndG) - 14 Mayo 2006
7 comentarios
 
tradingsys En la operativa sistemática es muy común encontrar el ratio de esperanza matemática positiva (EMP) definido como la relación entre operaciones ganadoras y perdedoras en un tiempo dado. En teoría, una estrategia con un porcentaje mayor de aciertos parece, en principio, más apetecible y robusta. Sin embargo, este ratio suele resultar de nula utilidad en la mayoría de los casos. En el siguiente artículo veremos por qué y propondremos una estrategia alternativa para calcular la esperanza matemática en sistemas con varios parámetros optimizables.

En mi opinión, el ratio entre operaciones ganadoras y perdedoras ofrece información errónea al menos en los tres siguientes supuestos:

 (A)  Cuando el número de operaciones es extremadamente pequeño en relación al número de barras de la muestra.  Por ejemplo, una EMP del 65% en un sistema que realiza 100 operaciones sobre 55.000 barras es, a todas luces, menos fiable que una EMP del 60% en un sistema que cierra 1.500 operaciones sobre la misma muestra.

(B) Cuando no se toman en consideración otros factores, como el DD máximo o la peor operación cerrada. ¿De qué sirve una EMP del 60% si el sistema que estamos evaluando arroja un DD superior al 70%?

 (C)  Cuando el sistema está sobreoptimizado. En general, debemos suponer (quizá por exceso de celo; pero más vale ser precavidos) que un sistema está optimizado –incluso, me atrevería a decir, próximo a la sobreoptimización- cuando el desarrollador sólo nos ofrece datos hipotéticos sobre el equity curve. En tal caso, la EMP no será de ninguna ayuda.


  Por otro lado, si disponemos del algoritmo y tratamos de encontrar los mejores parámetros para un determinado mercado, no estará de más aplicar el siguiente protocolo de normalidad para inferir la esperanza positiva del sistema a partir del conjunto de datos que nos ofrece el programa de optimización.  Para ello seguiremos estos pasos:

(1)  Procedemos a realizar una optimización de amplio espectro. Esto es, con un histórico suficientemente representativo de la estructura alcista, bajista y lateral del mercado elegido. Por ejemplo, en gráficos de 30 minutos,  mi experiencia me dice que el número de barras no debería ser inferior a 50.000. En general y considerando la duración media de un ciclo económico, unos siete años de datos serán suficientes. Por otro lado, los rangos de valores paramétricos también deberán ser de una amplitud razonable. Dada la enorme variedad de parámetros, no podemos ofrecer una regla general y tendremos que apelar a nuestra propia experiencia. En cualquier caso, cuando el desarrollador establece un rango de valores óptimos, hay que suponer que éste, en su afán por salir bien parado, suele ser bastante restrictivo. Por ello, ajustarlo un 25% por encima y por debajo de los valores recomendados no estará de más.

(2) Iniciaremos la optimización poniendo como diana el beneficio máximo. Cuando el número de iteraciones no es muy grande (<10.000) una búsqueda lineal (optimización completa) será lo más adecuado. En caso contrario, emplearemos los algoritmos genéticos. Debemos ser conscientes de que esta última estrategia de búsqueda es un método sistemático para la obtención de una solución óptima en el menor número de iteraciones posibles. Este procedimiento introducirá un sesgo positivo en la tabla de resultados de la optimización. Por lo general, y dependiendo del algoritmo empleado, la acotación del espacio de búsqueda hacia valores óptimos aumenta en relación directa al número de iteraciones. Por ello no es conveniente alargar demasiado el proceso de optimización. Según algunas fuentes consultadas, lo más adecuado es fijar el número máximo de iteraciones en la raíz cuadrada de elementos muestrales. Por ejemplo, si una determinada combinación de valores paramétricos da un número de  1.000.000 de iteraciones, el tamaño máximo de la tabla deberá establecerse en un máximo de 1.000 resultados.


 (3)  Copiamos todos los resultados de la tabla de optimización a una hoja Excel. Recordemos que Visual Chart pone los decimales con puntos; nosotros debemos ponerlos con comas si empelamos una versión española de Excel. Para ello iremos al menú principal del programa y emplearemos la herramienta: Edición > Reemplazar.


 (4)  Una vez en la tabla de datos, eliminaremos las tres primeras filas y añadiremos una nueva columna (a la que podemos llamar “clases” o “rangos”) que contenga los intervalos necesarios para construir la tabla de frecuencias. Por ejemplo, si el rango de valores de la rentabilidad anual oscila entre –10% y 15% y queremos agrupar los datos en clases de un punto porcentual, necesitaremos 25 filas.


tradingsys


 5) Aplicamos un primer estadístico sobre la columna “Gan. Anual %”, empleando el siguiente formulario (Al que se puede acceder desde: >Herramientas > Análisis de datos) de “estadística descriptiva”:

tradingsys

Introducimos el rango de entrada y seleccionamos “rótulos en la primera fila”. Para el rango de salida seleccionaremos las columnas contiguas de la tabla o una hoja nueva. En las cuatro últimas casillas de verificación, solo necesitamos marcar la primera: “Resumen de estadísticas”. Obtendremos una tabla de resultados similar a esta:


tradingsys
 
Ahora podremos realizar algunas inferencias preliminares sobre nuestro sistema:
 
  • Considerando la mediana, la moda y la desviación estándar  podemos esperar, incluso seleccionando valores paramétricos al azar, un beneficio anual en torno al 4,5% (con una “más que generosa horquilla” de 3,8 puntos hacia arriba o hacia abajo).

 
  •  El coeficiente de asimetría de Fisher nos informa sobre el tipo de curva normal (simétrica, asimétrica negativa o asimétrica positiva). Si el coeficiente (g1) tiene un valor próximo a “0” la distribución es simétrica, en caso contrario será asimétrica negativa (g1<0) o asimétrica positiva (g1>0). En nuestro ejemplo la asimetría es ligeramente negativa (-0.18), luego se concentrarán más valores a la izquierda de una media (4,42%), que ya de por sí es  baja. Así pues, desde este punto de vista, cabe inferir que el sistema analizado resulta algo mediocre.

 
  • La curtosis sirve para conocer el nivel de concentración de los valores alrededor de la zona central de la distribución. Esto, como es sabido, da lugar a tres tipos básicos de curvas normales: Mesocúrticas (presentan una alta concentración de casos alrededor de los valores centrales de la variable), leptocúrticas (con un alto grado de concentración de casos alrededor de los valores centrales) y platicúrticas (con una elevada dispersión de casos). En la serie de datos analizada la curtosis es de –0,63. Este valor no es muy significativo, ya que la desviación no está muy alejada de “0” para ser relevante. Por tanto, es prácticamente mesocúrtica. Si el resultado hubiese sido superior a –2, estaríamos ante una distribución claramente platicúrtica. Que evidenciaría una notable inconsistencia del sistema al proliferar en exceso las “soluciones de caso único”.

 
6)  Nuestro siguiente paso será proceder a un análisis de frecuencias. Para ello contamos con la herramienta Histograma de Excel:


tradingsys


 Una vez en el formulario superior, debemos establecer como “rango de valores de entrada” todas las filas de la columna “Gan. Anual %” y como “rango de clases” la columna “Rangos”. Marcamos la casilla rótulos y asignamos como opción de salida datos “en una hoja nueva”. También nos interesa seleccionar “Pareto (histograma ordenado”, “porcentaje acumulado” y “crear gráfico”.
 
 Excel creará automáticamente una tabla de distribución de frecuencias similar a esta:


tradingsys 

 
Las columnas A-C muestran los datos ordenados por clases y las columnas D-F por frecuencias.

 El grafico resultante ofrece información muy valiosa para realizar un diagnostico sobre la esperanza positiva de nuestro sistema:

 tradingsys

Como puede apreciarse, las combinaciones de valores obtenidas durante la optimización ofrecen beneficios anuales positivos con mucha mayor frecuencia que negativos. Lo que significa, para los legos en estadística, que si eligiésemos al azar cualquier juego de valores paramétricos, la probabilidad de obtener un beneficio positivo sería muy alta. De este gráfico se desprende también que con los valores más frecuentes obtendríamos una rentabilidad anual que oscila entre el 2% y el 11%.

 
7)   Para analizar con más detalle la esperanza de nuestro sistema, es muy recomendable construir el gráfico de la curva normal. Lo que podemos hacer cambiando las series “frecuencia” y “% acumulado” por los rangos de las celdas B2:B28 y C2:C28 de la tabla de frecuencias, empleando la herramienta “Datos de Origen”:


tradingsys

 
Una vez hecho esto, obtendremos el siguiente gráfico:


tradingsys
 
En él podemos ver con claridad como la mayor parte de las combinaciones de valores se concentran en la zona 3%-9% de beneficio anual.  De ellas, las combinaciones más robustas y rentables las encontramos entre 8% y 11%, mientras que los valores paramétricos que ofrecen soluciones de rentabilidad entre el 12% y el 15% son prácticamente situaciones de caso único (que se corresponderían con los famosos picos de los mapas de optimización) harto difíciles  de reproducir en el futuro.  
 
 
Realizado este sencillo análisis estadístico, ya solo nos queda volver a la hoja inicial y tomar buena nota de los parámetros comprendidos en el rango de rentabilidades anules 8%-11%, seleccionando finalmente aquellos que proporcionen un drawdown menor.

 ... Y, con suerte, tendremos por algún tiempo un sistema con esperanza matemática positiva en la operativa real. Lo que no es lo mismo, claro, que vaya a ganar dinero de manera fulminante en las primeras operaciones.  
 
Quiero terminar recordando las palabras de un buen profesor de matemáticas: “Todos los problemas estadísticos referentes a procesos naturales o fenómenos humanos se reducen a problemas de bombos y bolas numeradas”.

 
 
Andrés A. García.
© Tradingsys.org, 2006.

 
 

Comentarios

 

JLRaider -

Un Texto muy bueno y completo. Totalmente de acuerdo con el ratio de esperanza, no solo se tiene que ver cuanto se gana si no también que precio hay que arriesgar para ello. Ahora bien no tengo tan claro lo de realizar optimizaciones tan amplias abarcando unos 7 años con TF 30m, puede que lo siguiente no te haya pasado a ti o puede que si, no sé, te explico.  
 
Cuando comencé con el tema de mapas de optimizaciones me dedicaba a coger periodos muy largos como tu expones, la lógica indica eso. Concretamente era un sistema de rotura de rangos y el resultado obtenido era bueno en general. Luego no me quede aquí e investigue que pasaba de año en año. Comprobé como el año 2000 habían sido EXTREMADAMENTE bueno y que desde esa fecha todo eran perdidas gordas. El tema era que los bastos beneficios pasados estaban compensando todas las perdidas posteriores. Conclusión: resultados históricos anuales extremadamente grandes, positivos o negativos, pueden tapar resultados posteriores de 5 años de signo contrario en optimizaciones con un largo historico 
 
La clave es ¿en qué se diferencia optimizar un periodo relativamente corto con picos de sobreoptimizacion mas que seguros con la optimización de periodos muy amplios que puedan mostrar el resultado extremo de algún “trozo”? En una optimización de 6 o 7 años unos resultados de 1 año tremendamente buenos y 5 o 6 totalmente desastrosos es la idea opuesta al concepto de robustez. 
 
Después de muchas investigaciones por ahora no he encontrado solución optima y personalmente creo que es uno de los temas mas complejos del trading. No parece que haya alguna pauta, no se puede saber si el intra va a estar mejor que el swing o que el long o a la inversa asi que ante la duda yo personalmente suelo coger parámetros de entre lo mas actual hasta que el mercado no diga lo contrario 
Concretamente utilizo estudios de robustez anuales o bianuales con rangos parametricos mas estrechos para ver como se comportan los sistemas ante las carateristicas que ha mostrado el subyacente y asi saber que funciona bajo que condiciones 
Se elija lo que se elija lo que esta claro que lo mas razonable es concentrar el esfuerzo en algoritmos de riesgo y de administración de dinero sobre lo que si podemos influir 
 
Si no es molestia me gustaria saber que tu opinión. Gracias anticipadas 
Enhorabuena por tu pagina, creo que es la mejor a nivel nacional sobre investigación bursátil con diferencia 

admin - Sobre las cuestiones que plate

Querido JL: 
 
Celebro que te guste la línea de artículos que se publican en esta web y espero no defraudarte en posteriores entregas. Te comento brevemente algunas de mis ideas sobre los procesos de optimización que, ciertamente -y como bien afirmas- constituyen una de los temas más complejos (y a menudo peor entendidos) del trading: 
 
1º.- En este artículo se habla de una “optimización de amplio espectro” que no es más que una “primera cata” y sirve para calcular el potencial de un sistema para generar beneficios de forma consistente en un amplio rango de combinaciones paramétricas. Lo importante, no es tanto la acumulación de beneficios, sino su distribución estadística. Esa es, a mi juicio, la primera condición exigible a cualquier estrategia que pretenda acreditar su robustez. Si supera este primer paso, ya hemos satisfecho la cuestión de la esperanza matemática positiva. Pero esto, por supuesto, es condición necesaria pero no suficiente, para generar beneficios en las distintas marcoépocas. 
 
2º.- Los procesos de optimización aplicando algoritmos genéticos sólo son eficientes cuando se aplican sobre un espacio muestral muy grande. Entre otras cosas, porque la naturaleza heurístico-direccional del propio algoritmo tiende rápidamente hacia la búsqueda de soluciones óptimas, con independencia de que estas sean de “caso único” o se puedan aplicar de manera generalizada en las distintas configuraciones del mercado. 
 
3º.- Muchas veces las pautas de volatilidad a largo plazo (tal y como explico en mi artículo: “Cuando casi todos los sistemas fallan”, aconsejan realizar ajustes en los parámetros discretos de un sistema, para que sea capaz de responder mejor en marcoépocas muy distintas. A veces, ni siquiera esto es suficiente, y el sistema obtiene resultados pobres o negativos durante largos períodos. Existen muchos sistemas intradiarios y VBO (Volatility breakout) que necesitan un umbral mínimo de volatilidad para generar beneficios. Conocer el Effective Range en el que opera de forma consistente nuestra estrategia es, en mi opinión, mucho más útil que el hecho de empeñarse en probar tozudamente todas las combinaciones paramétricas imaginables en históricos cada vez más cortos, abriendo de par en par las puertas al fantasma de la sobreoptimización. 
 
4º.- Y ya que lo menciono, el principal problema de la sobreoptimización es que siempre se detecta mal y tarde; cuando el daño ya está hecho... Contra esto, algunos aducen que para eso ya están las pruebas “out-of-sample”. Pero, con frecuencia el modo en que se hacen estos, por otro lado, necesarios análisis, es otra manera de sobreoptimizar. Muchos actúan de la siguiente forma: Eligen un corte del histórico, por ejemplo de 9 meses, y aplican los parámetros sobre los tres siguientes. Si los resultados no les satisfacen, reducen el corte a 6 meses y repiten el proceso, si sigue sin gustarles, acortan a cuatro. ...En fin, es evidente que sobreoptimizan. 
 
5º.- Emplear cortes del histórico muy pequeños, tiene un problema añadido: ¿Hasta que punto ese reducido número de operaciones del sistema es suficientemente representativo... 
 
6º.- Por otro lado, casi todos tenemos la tentación de optimizar eligiendo como diana de los algoritmos genéticos el beneficio máximo. En realidad, resulta más inteligente elegir como diana el Ratio entre beneficio anual y DD. 
 
7º.- Uno de los problemas de Visual Chart es que no permite realizar optimizaciones selectivas eligiendo múltiples objetivos diana. Eso hace más tedioso el proceso. Por ejemplo, a mi me interesaría fijar como objetivo aquella combinación de valores que ofrezca la menor dispersión de resultados año a año. Sin embargo, como muy bien apuntas, se puede dar el caso de que dos años excesivamente buenos enmascaren los negativos o mediocres resultados del resto de los períodos. Igualmente, me gustaría cuando utilizo mis “queridas estrategias VBO” que el objetivo fuese el tamaño de la operación media. ...Pero tampoco puedo. 
 
Por último, muchas veces se olvida que los resultados de una optimización pueden acabar enmascarando estrategias pseudo-aleatorias en lugar de robustas y consistentes “máquinas de ganar dinero”. Sobre este particular, te recomiendo mi último artículo: “Procesos aleatorios y estrategias de entrada”. 
 
Un cordial saludo.  
Ha sido un placer dialogar sobre este tema contigo.  
 
Andrés A. García. 
admin.@tradingsys.org 

JLRaider - Re:

Creo que basicamente utilizamos las optimizaciones de la misma forma pero cada uno a su manera. Tu usas un amplio espectro como "escaneo" general para despues ver si te metes en faena con dicho sistema. A mi personalmente me gusta ir al tajo desde el primer momento aun sabiendo que el sistema puede que no sirva para nada. Me gusta tener la seguridad de que cuando un sistema es malo es malo y cuando uno es bueno es bueno, se que es mas lento pero soy asi de cuadriculado que se le va a hacer 
 
Segun lo que cometas creo que los dos ya hemos realizado nuestras investigaciones y ponemos en serias dudas el tema de las estrategias Out-of-Sample, era bonito mientras duro pero ya no creemos en los reyes magos.  
 
Personalmente estube unos 3 meses realizando investigaciones sobre OoS sobre historicos anuales. Que si aplicar los mejores “combos” de 3 años al 4º, es decir 3x1, que si 4x1, que si 2x1. Hice la tabla del uno completa, nada. Tan desesperado estube que tambien lo hice con historicos semestrales y trimestrales para asi tener mas “combos” para aplicar y ver si no se estaban dado ninguna pauta por tener 1 muestra poco representativa. NADA, esta no es la via, estoy totalmente seguro, es como comprar el ultimo numero que ha tocado en la ultima bonoloto esperando que caiga 2 veces seguidas...Al final encontre la pauta escondida: la aleatoriedad 
 
Hace unos dias le mande 1 comentario al articulo que 1 compañero tuyo, MartinG, publico en tu pagina, me vas a perdonar pero al ver ese grafico tan sugerente de la aplicación de “combos” 3x1 OoS tube la tentación de dar un poquitin de caña y cai. Concretamente fue preguntarle si en vez de un 3x1 anual se podria aplicar un 1x1 anual. Todas las conversaciones que he tenido sobre este tema enfatizan que toda aplicación de combos OoS con historicos cortos es sobreoptimizacion. Todos estamos de acuerdo de que cosas NO utilizar pero aparte de esto nadie tiene teorias lo suficientemente contratadas científicamente sobre que utilizar. Que nadie piense que porque algo no tenga solucion no sea util. Solo se que no se nada. 
 
1salu2 

milanus - sistema geostrend

¿Donde puedo encontrar el sistema geostrend para visual chart? 
gracias.

admin - Geostrend

Lo lamento, pero ese sistema está en uso y, por ahora, no tengo previsto publicarlo.

begperez - Sistemas con esperanza positiv

¿Me podría aclarar algún concepto del artículo? 
Cuando se dice que hay que fijar un número máx. de iteraciones en la raiz cuadrada de los elementos muestrales , p.e. 1000 ,significa que hay que hacer con el programa sólo 1000 iteraciones o que hay que hacerlas todas y escojer las 1000 primeras? 
En el apartado (3) dice copiamos todos los resultados de la tabla de optimización que copiamos estos 1000 resultados? 
Gracias

admin - Re: Begperez

Lo dicho se refiere al número de iteraciones "razonable" sólo cuando se aplican algoritmos genéticos, ya que este procedimiento de optimización tiende de manera acelerada hacia soluciones localmente óptimas que maximicen el "ratio diana empleado" (por Ej. el net profit).  
 
Sí, lo comentado en el ejemplo de este artículo significa detener el optimizador en la op. núm. 1000. Y, efectivamente, para realizar el histograma, bastará con esos 1000 resultados. 
 

Añadir comentario

 
Modificado por TradingSys (AndG) - 14 Mayo 2006
 
 

Secciones

 
 

Entradas recientes

 
 

Enlaces