By tradingsys
AndrEAs Analyzer |
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