Translate

14 de marzo de 2014

SQN y Optimización


By tradingsys
AndrEAs Analyzer 
 Hace algunos años, Van K. Tharp desarrolló una fórmula  para evaluar el rendimiento y calidad de estrategias inversoras: El ratio SQN(System Quality Number). Este, intenta obtener juegos de parámetros óptimos que maximicen simultáneamente el tamaño medio de la operación y la desviación estándar de resultados en un espacio muestral de N operaciones.


En el capítulo VI de su obra, Tener éxito en trading (Barcelona 2007) desarrolla el escurridizo concepto de la esperanza matemática en función de los “múltiplos de R” dónde “R” es una variable de contexto para medir el riesgo inicial de una operación; y su múltiplo = beneficio (en puntos) / el riesgo inicial.


Por ejemplo, si utilizamos un stop fijo de 700$ y obtenemos un resultado de 1400$, el valor del múltiplo de R será de 2 para esa operación.

Si mantenemos dicho stop en la siguiente secuencia N = -300$, 2200$, -900$, 1500$; el múltiplo R de la serie es de 3,5 (Beneficio medio / R)

El problema es que, en la mayoría de los casos, no contamos con un stop fijo que permita calcular de manera constante el riesgo de cada operación; por lo que tendremos que emplear otro estimador de R.

Cuando disponemos de una serie larga de operaciones, podemos inferir que el valor de R es aproximadamente igual a la desviación estándar del total de las operaciones. Por lo que, en definitiva, volvemos a nuestro ya conocido estimador básico RSS (Ratio de Sharpe simplificado)  = media / desviación.

Por otro lado, y para garantizar que los resultados serán comparables en series que involucran marcos temporales muy grandes, la media y la desviación deberán calcularse como series profit/loss porcentuales.  Así pues, en una serie larga, el RSS puede definiese como el promedio de todas las operaciones, donde cada una de ellas se expresa como porcentaje del tamaño de la cuenta (o, alternativamente, del mercado) dividido por la desviación estándar de todas las operaciones en porcentaje. 

Pero aún así, tenemos otro problema: Al ir aumentando el número de operaciones, la media y la desviación no evolucionan de manera proporcional, por lo que conviene normalizar el RSS multiplicándolo por la raíz cuadrada del número de operaciones. De este modo, la fórmula resultante para una serie estadísticamente significativa sería:


SQN = (Beneficio medio / desv.) * Raíz de N.
Donde "N" = número de operaciones de la serie.

Según Tharp, valores por encima de 2 darán lugar a sistemas robustos y, superiores a 3, a sistemas excelentes. Por ejemplo: Si somos capaces de obtener en una serie de 400 ops., de manera consistente, Un RSS = 0,15 entonces tenemos un  sistema claramente robusto: SQN =  3. Pero si, por un casual, ese mismo RSS se obtuviese en una serie de 900 ops. su valor se dispararía hasta 4,5, con lo que -sobre el papel (y con las obvias salvedades)- tendríamos una auténtica máquina de ganar dinero.

Ni que decir tiene que, lo expuesto hasta aquí, es aplicable a operaciones conseguidas a la derecha de los gráficos. La magia de la optimización intensiva posiblemente dará lugar a ratios SQN descomunales, pero, obviamente, esto es "humo" hasta que no se demuestre lo contrario.

Bien, pues una vez expuesta la teoría, vamos al caso que nos ocupa: Aplicar el estimador SQN como criterio de optimización de parámetros.

La mayoría de las plataformas de trading ofrecen un amplia gama de criterios de optimización que tratan de encontrar combinaciones óptimas de parámetros que maximizan, por ejemplo, el net profit, el beneficio medio, el Ratio beneficio/DD, el profit factor, etc. No todas son apropiadas para conseguir soluciones robustas y fiables, por lo que, en función de las características de nuestro sistema, nivel de aversión al riesgo y capital disponible, en ocasiones, serán más adecuadas unas que otras.

Como  un estudio en profundidad llevaría muchas páginas y nos apartaría del presente tema,  dejaré aparcada, por ahora, la cuestión y, vamos a centrarnos en algo más sencillo: ¿Cómo conseguir aumentar el SQN de la mejor manera posible?

Salta a la vista que tenemos tres alternativas posibles:

1) Mejorar el beneficio medio. Para ello sólo hay un camino: Aplicarse el lema "pocas operaciones y de calidad". ¿Cómo? Filtrando las entradas de tal manera que obtengamos una solución Pareto-óptima en todo el espacio muestral. Si conseguimos que la relación 80:20 mejore, por el procedimiento de reducir el número de operaciones a cambio de un mayor tamaño medio, habremos matado dos pájaros de un tiro: Gastaremos menos en comisiones y el impacto relativo del slippage será menor.

Evidentemente,  -y sin cambiar las reglas del algoritmo- también podemos "enredar" con los valores paramétricos un rato; no sea que, por un casual, logramos aumentar el avg. trade (promedio de operaciones) sin perjudicar demasiado otros ratios fundamentales. ¡Quien sabe! "Tal vez el caballo cante..."

2) Obtener una distribución de resultados lo más ceñida posible. Aquí estamos en una situación inversa. Quizá, la solución más fácil será ajustar los stops de perdidas y profit targets, de tal manera  que, en el histograma, los resultados se agrupen al máximo en torno a la media. De otra forma: El objetivo será recortar las colas de la distribución. Pero claro, no siempre esto es posible -ni deseable-, entre otras cosas porque, en conformidad con Pareto, acabaremos privando al sistema de las mejores operaciones.  

3) Más y más operaciones, más y más histórico... para conseguir un número "N" lo más grande posible. Con esto se obtienen básicamente tres cosas: (a) Robustez: Las estadísticas de un sistema sólo son fiables cuando están avaladas por una serie larga de operaciones. (b)  Suavidad: Un perfil de la curva de beneficios más fino y continuo. (c) Mejor conocimiento del comportamiento de la estrategia en diferentes marcoépocas o ventanas temporales. Por ello, es lógico que un estimador de calidad, como el SQN que sirva para comparar sistemas pondere positivamente a aquellos que cuentan con un historial más prolongado.
  
SQ permite que el algoritmo de optimización trabaje directamente en la búsqueda de soluciones paramétricas que satisfagan el criterio de maximizar el SQN que, aunque no es la panacea (ni resulta conveniente para algunos sistemas intradiarios en los que interesará, por ejemplo, preservar el tamaño medio de la operación a toda costa para minimizar el devastador efecto del splippage, incluso sacrificando buena parte del beneficio potencial en el esfuerzo) sí es un procedimiento de optimización mucho más elegante y consistente que el puro ejercicio de "onanismo improductivo" de ver elevarse el equity curve hasta desafiar las leyes de la gravedad, para que esta despues se multiplique y te lleve de nuevo a tierra de forma abrupta.

Con todo, y para terminar, cualquier estrategia de optimización deberá acomodarse al siguiente esquema de trabajo:

1) Acotamiento de rangos paramétricos en valores razonables y consecuentes con el sistema que se está evaluando. La estrategia tiene que ser robusta, incluso antes de optimizar parámetros.

2) Pruebas de back-test de amplio espectro, en diferentes time frames e instrumentos financieros. Como ya he dicho varias veces, las soluciones de caso único no funcionan.

3) Selección de los valores empleando mapas de optimización. Hoy por hoy, es la mejor herramienta que conozco para determinar la consistencia de los parámetros en un amplio espacio muestral. En la mayoría de los casos no hará falta recurrir a software complejo y caro. con una simple hoja Excel es suficiente, pero he de reconocer que tengo un software caro que con la logica adecuada, se ha convertido en mi mano derecha.

4) Realización de pruebas out-sample y random-walk. En el primer caso, reservando regiones del histórico sin optimizar y, en el segundo, construyendo series pseudo-aleatorias de precios que conserven las propiedades fundamentales del mercado de referencia. El método "Data Scrambling" descrito por T. Chande es muy bueno para esto.

5) "Tiempo de Incubadora": Nunca se debe ir de la mesa de diseño a la operativa real. Hay que probar el sistema en la plataforma de trading durante semanas o meses antes de certificar de manera concluyente que todo funciona según lo previsto. 

En definitiva, optimizar consiste, básicamente, en evitar que quede en nuestro sistema el más mínimo resto de improvisación.

AndrEAs

No hay comentarios.:

Publicar un comentario