Translate

17 de marzo de 2014

One idea is doing echoes in my head...

I want to share an article about a study that I read recently. It is an article of one of the pages I like to follow. http://www.onestepremoved.com/ 

A New Look At Adaptive Asset Allocation 

Adaptive Asset Allocation (AAA) was born as one of several sibling strategies for applying Modern Portfolio Theory (MPT), which was first proposed in 1967 as a way to optimize portfolio gains. Yet, many traders and financial strategists who truly believe in the math of MPT are disillusioned because the real-world results while using AAA haven’t met their calculated expectations for gains, and the volatility of such portfolios has been higher than expected.

Recent studies of this topic have suggested that this mismatch between expectations and reality may be primarily due to the length of the time periods used for input averages and portfolio rebalancing: Apparently, when calculations are based on input data using averages obtained over much shorter periods of time, the portfolio returns are better than when those averages are calculated based on long-term numbers. And, when the portfolio rebalancing intervals are shorter, performance is better and volatility and risk are reduced.
To recap, MPT relies on 3 parameters to create ideal portfolios, typically involving a set of asset classes including stocks in the U.S., European, Japanese and emerging markets, plus U.S. and international REITs, U.S. long-term and intermediate Treasuries, as well as gold and other commodities. The parameters are:
  • Expected volatility
  • Expected returns
  • Expected correlation
It seems that using shorter-term averages for MPT scenarios leads to more accurate results. One shortcoming of the previous-generation allocation model, Strategic Asset Allocation (SAA), becomes apparent because that model applies MPT based on long-term averages regarding the above parameters. As detailed in the recent new work on this topic, using long-term averages leads to significant errors in calculated returns.
In practice, long-term averages over a 5-to-20-year time horizon are poor predictors of volatility, returns and correlation. The statistical gap between calculations using 20-year averages and those using 3-or-4-year averages with regard to stocks’ annualized returns is huge, ranging from negative returns to nearly 14%. Given the relatively short investment time horizons of most investors nowadays, it seems clear that using shorter-term parameters in the calculations will yield more realistic results.
Portfolios offer better risk adjusted returns when they adapt to short term market conditions.

To acknowledge reality without disavowing longer-term calculations entirely, some investors choose to tweak their calculations by applying a long-term value approach instead of a long-term average approach, which tends to weight portfolios in favor of equities when stock prices fall, and conversely to reduce weighting in equities as their prices become more expensive.
Yet, with advancing technology there are some new alternatives to using long-term valuation for “handicapping” the calculated returns. At the extreme end of the short-term horizon lie the high frequency traders, who take advantage of short-term trends, correlations and reversions-to-mean in order to generate more-realistic estimates of returns. There is currently much excitement in the trading community based on the success of traders who use HFT systems. Still, as more traders crowd into this niche, it’s possible that the spreads will thin or perhaps vanish altogether.

The predictive value of momentum

Momentum is an excellent way for investors to estimate performance over the short term. According to the old adage: The best predictor of short-term future price is the current price. And, as the investment horizon is extended from intraday or daily trading outward toward weekly periods, the effect of momentum becomes more noticeable. Perhaps due to larger, slower-moving investors, prices tend to keep moving in the same direction for several weeks. Given this probability, it’s logical to account for momentum when building a portfolio, regardless of the long-term averages already observed.

Volatility

Volatility, too, has been misapplied with regard to MPT. For example, although average long-term annualized volatility is about 20% for stock prices and about 7% for 10-year Treasuries, actual volatility measured during the shorter time horizons of most investors fluctuates much more wildly, and is therefore much less accurate for projecting future conditions. So, actual volatility can have a far more adverse impact on a portfolio than the calculated volatility implies.
And, although many investors attempt to roughly balance the difference in volatility between stocks and bonds by weighting portfolios with 60% stocks and 40% bonds, still, the actual volatilities experienced can far override such a crude balancing method. Therefore, with regard to volatility assumptions it seems safest to rely on the adage mentioned above, that is, the least-biased guess of tomorrow’s price is based on today’s price. Likewise, the least-biased guess of tomorrow’s price range is the price range during the recent past, which of course represents the recent volatility.
Since recent volatility seems to offer the best guess about near-term future volatility, and most investors have a short-term horizon, it seems logical to use short-term volatility as the parameter for MPT instead of long-term volatility. As a takeaway regarding volatility, a savvy investor rebalancing a portfolio can calculate its volatility and, in order to maintain the volatility risk at a stable level over time, could reduce exposure by partly moving into cash when volatility exceeds the targeted level.

Correlation & returns

Even though long-term correlations between the prices of asset classes such as stocks and Treasuries, or stocks and gold, are low or negative, over shorter time periods the actual correlations vary greatly. So, for example, the volatility of a 50-50 stock-and-bond portfolio may decrease by 50% as the correlation decreases.  
Similarly, although many traders intuitively understand that a portfolio’s risk is reduced by apportioning the volatility of its components, a less-intuitive observation from the recent studies has been that returns from risk-managed portfolios were also improved by as much as 25%. Finally, since the human nature of investors makes it difficult to focus on returns alone while disregarding risks, especially over a longer term when drawdowns may accrue, it’s also prudent to consider maximum drawdown along with volatility when seeking maximum returns.

Summary

If MPT scenarios based on near-term average values give more accurate estimates than those based on long-term values, then it seems best for HFT traders and other short-horizon investors to use current observed values for portfolio optimization. In the recent studies cited herein, the authors have advocated the monthly rebalancing of portfolios by using a true Adaptive Asset Allocation based on returns in the near term in view of their momentum, along with the appropriate short-term volatility and correlation averages.
One algorithmic approach might be to create fresh portfolios at the time of monthly rebalancing based on the top few assets according to six-month or even shorter momentum, and to allocate assets according to an algorithm specifying minimal variance in volatility, instead of apportioning each asset according to its individual volatility. This approach would account for the volatility and correlations among the top few assets in order to create a momentum portfolio with the least expected portfolio volatility, along with a palatable risk profile

AndrEAs

 

Markab Extreme II

Markab, star of Pegasus ... This robot has a simple logic, however it took me quite some time to complete its optimization.

This star is a typical trend, Basically is using the RSI (Relative
Strenght Index ) as trigger and going out by the technical of fuzzy goals.

A simple algorithm that yields impressive results. Observe how this strategy has worked in the last 28 years.










As one of the methods of confirmation of robustness, we use the Monte Carlo analysis using 100 simulations, we go to see the result.




Finally, this is not my best strategy, but if it's in my top 3 now.

Calification: **** "One to five I give it 4.5 stars." For his great consistency and robustness

This EA Should be in the real account

Best regards

AndrEAs


Trading es una maratón, no un sprint


Hay un viejo proverbio que dice que la paciencia es una virtud. En forex es más importante que el mero hecho de ser una virtud, es un rasgo importante que podría salvar a su cuenta.

La paciencia es la capacidad de usar su motor en ralentí cuando tienes ganas de reventar sus engranajes
- Barbara Johnson

Ha habido muchas personas que entran en este juego de la negociación y con prisa por ganar dinero, se suben a todo lo que se mueve y como resultado final hasta toman un montón de operaciones cuestionables con las que a menudo terminan perdiendo ellos una gran parte, si no todo, su capital comercial.
Se sienten tan deprimidos y desanimados que renuncian a negociar en conjunto, ya que se retiran a lamerse las heridas.

Esta es una trampa de la que muchos de los nuevos operadores son víctimas también. Yo lo viví... "No seas un perdedor" que sólo un pequeño porcentaje de los operadores son realmente rentables.

La trampa se puede evitar, simplemente cambiando su forma de pensar . El Trading debe ser visto como una maratón , no como un sprint.



Pero muchos transan como si compitieran en una carrera de velocidad. El comerciante con impaciencia abre muchos gráficos y toma posiciones en un abrir y cerrar de ojos, se centra en ganar tantas posiciones como sea posible en el menor tiempo posible, al igual que un velocista bombea las piernas lo más rápido posible en un final de los 100 metros Olímpicos.

Esto es muy diferente, es más bien como un corredor de maratón avanza a través de la carrera, lo que garantiza que no se gastan muchas energías demasiado pronto y tiene algunas en reserva para un momento crucial en la carrera en la que tiene la posibilidad de romper con el campo. Cuando se presenta la oportunidad, es capaz de tomar ventaja de ello poniéndose en una posición ganadora.

"El comercio debe ser visto como una maratón, no  como un sprint"

Pensar en el comercio como un corredor de maratón es la clave. Es necesario conservar el capital como un corredor de maratón conserva su energía. Usted no quiere cargar demasiado rápido en la carrera, tomar demasiados oficios pobres o tomar demasiados riesgos (!) Y quemar su energía y capital, ya que si esto sucede, no terminará la maratón.

En lugar debe pensar como un corredor de maratón. Sea paciente. Conserve su energía. Espere a que se den las oportunidades en la carrera para aprovechar. Si usted puede pensar como un corredor de maratón tendrá una gran ventaja en el comercio de los mercados. 

AndrEAs

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

10 de marzo de 2014

Consistencia y robustez

¿Realmente, qué es una estrategia consistente y robusta?

By TradingSys
AndrEAs Analyzer


En el trading de sistemas a menudo hablamos de consistencia y robustez como si estos dos términos significasen lo mismo e hiciesen referencia al hecho de que nuestro maravilloso y flamante algoritmo es capaz de ganar dinero de manera consistente.  Pues bien, deshagamos algunos equívocos:

Si por "consistente" entendemos beneficios regulares y estables en el tiempo, desde ya les digo que ningún sistema les proporcionará jamás esa satisfacción. Los mercados son volátiles, erráticos, caprichosos y, en buena medida, imprevisibles. Los sistemas casi siempre van de comparsas: les toca seguir su pauta.

Existe una consistencia fuerte, axiomática, formal, junto a otra más blanda y operativa que se ha instalado en el ámbito de los problemas complejos, donde aleatoriedad e incertidumbre son moneda común. De la primera nos habla la lógica de Gödel, según la cual un teorema T es consistente si, dado un conjunto de axiomas, operadores lógicos y reglas de transformación, no podemos deducir de él una conclusión C y su contraria -C. Obviamente, este no es el caso de las máquinas lógicas que los traders algorítmicos construimos, porque muchas veces idénticas reglas aplicadas a distintos mercados o marcos temporales darán resultados (C1, C2...Cn) contradictorios e inconsistentes. Por otra parte, la definición blanda de consistencia encuentra su mejor aliado en la lógica difusa, donde las conclusiones derivadas de un proceso inferencial tienen un carácter provisional, aproximativo, estadístico. Eso ya es más familiar para nosotros y representa mucho mejor el ámbito en el que nos movemos.
 De este modo, podemos decir que un sistema es consistente cuando:

A)  Responde de manera previsible a los movimientos del mercado para los que ha sido programado, aunque estos muestren ligeras variaciones. 
B)  Un amplio rango de combinaciones paramétricas consecuentes la lógica de base, son soluciones viables para un determinado activo.

Si además se cumplen las dos siguientes condiciones, el sistema también es robusto:

C) Obtiene resultados positivos en un número elevado de activos y time frames.
D)  Resiste el paso del tiempo, siendo pequeña la dispersión de resultados en distintas ventanas temporales.

 Veamos todo esto con más detalle:

La condición A hace referencia a una consistencia formal "modelo-mercado" que responde a la pregunta de si el sistema hace lo que debe.  Es decir:

- ¿Se colocan las órdenes de entrada y salida en los puntos previstos por el modelo?
 - ¿Observamos diferencias significativas entre operativa simulada y real?
 - ¿Los stops loss funcionan según lo previsto? ¿Cumplen su cometido? ¿Nos protegen desde la primera barra?
 - ¿Los filtros de volatilidad y tendencia realmente filtran o son un coladero de órdenes adversas según la situación del mercado?
 - ¿Al aplicar el sistema en otras compresiones horarias y mercados tampoco detectamos fallo alguno en la lógica?

Ni que decir tiene que esta primera condición es un requisito sine qua non para poder operar un sistema. Una estrategia con reglas de difícil validación o que en algún momento pueden fallar carece de consistencia interna y no se debe operar.

La condición B es más escurridiza y difícil de calibrar. Todo sistema incorpora variables implícitas y explicitas. Las primeras tienen valores fijos incorporados a las reglas y no son optimizables. Estas variables, por lo general, permanecen ocultas para quien no sea el desarrollador de la estrategia, pero no por ello son menos problemáticas. Las variables explicitas son parámetros cuyo rango específico de valores es susceptible de optimización. Veamos un ejemplo:

      if (ADX(14)[0] < ADX(14)[1]
     && EMA(Low, EmaPeriod)[0] < Low[3])      
      {
         EnterShortStop(1, Low[0]-3*TickSize, "");
      }

En estas líneas de código solo tenemos una variable explícita "EmaPeriod", pero aparecen numerosas variables implícitas cuyos valores elegidos ad hoc resultan cuando menos cuestionables:

- ¿Por qué utilizar un ADX de 14 barras en lugar de uno de 10 o de 25?
 -  ¿Por qué estamos comparando el valor de la media de los mínimos en la barra actual con el mínimo de hace 3 barras? ¿No sería quizá mejor comparar con el mínimo de hace 2 barras o de hace 5?
- ¿Por qué metemos la orden en stop 3 ticks por debajo del mínimo de la última barra? ¿Qué nos impediría meterla unos cuantos ticks más abajo o más arriba?

 Todas estas preguntas nos llevarán, sobre todo a los más suspicaces, inevitablemente a otra: A menos que el  desarrollador sea un genio en el antiguo arte de la numerología, ¿No habrán salido dichos valores de optimizaciones previas?
                 
 Aquí, el problema capital es que una optimización intensiva acabará enmascarando las bondades de la lógica y resultará muy difícil determinar si un sistema es bueno debido a la consistencia de sus reglas o a que, de manera casual, determinada combinación de parámetros ofrece resultados excelentes en un determinado activo. En definitiva, bien de manera implícita o explícita, el fantasma del curve fitting se nos puede colar en cualquier estrategia, así que acostumbrémonos a vivir con él.  Y vaya por delante que yo no soy defensor de los sistemas sin parámetros, ni de estrategias minimalistas de simplicidad delirante, pero carentes de estructura.

Tanto los parámetros optimizables como el diseño de lógicas alternativas y no trilladas son herramientas del arsenal del trader que, administradas de manera inteligente, pueden conducir a sistemas ganadores. En este mundillo se repiten de manera recurrente -y bastante acrítica, por cierto- mantras como "buscad siempre la belleza de lo simple", "evitad las reglas complejas", "al mercado no le gustan los caminos laterales", etc. Pero la realidad es que en este, como en muchos otros ámbitos de la actividad humana, la innovación siempre acaba ganado la partida al "más de lo mismo". Y ahí están los inmensos recursos que el trading de alta frecuencia pone al servicio de unos pocos privilegiados para demostrarlo.

Algunos de los problemas del curve fitting tienen que ver con la forma de optimizar:

- Demasiados parámetros y muy poco histórico.
- Demasiados parámetros y pocas operaciones.
- Inadecuada elección de los cortes in-sample / out-sample.
- Optimización demasiado fina e intensiva.

Dado que las tres primeras son sobradamente conocidas por cualquier trader con una mínima experiencia, nos centraremos en la última:

Aparentemente, cuanto más fina sea la optimización y mejores los resultados obtenidos en función del ratio diana empleado, mejor preparado estará nuestro sistema para afrontar el insondable arcano oculto tras la última barra. Cuesta mucho asumir la idea de que una combinación de parámetros que conduce a un impresionante backtest en un histórico largo y con muchas operaciones, no tiene por qué ser necesariamente la mejor para la operativa real. Sin embargo, la experiencia nos demuestra que casi siempre acaban funcionando mejor juegos paramétricos:

a) Que no representan soluciones de caso límite. Es decir, valores que generan resultados extraordinarios pero sin continuidad en los valores contiguos; o sea, las consabidas cimas escarpadas en un gráficos de superficies.
b) Limpios, sin tantos decimales, sin "forzar la máquina": ¿Por qué no 100 en lugar de 97 o 0,5 en vez de 0,496?

En definitiva, una "optimización gruesa" de la región in-sample suele dar mejores resultados en el out-sample que otra demasiado fina. Por ello recomiendo utilizar algoritmos genéticos en vez de optimizaciones de "fuerza bruta", así como saltos generosos entre valores en lugar de filigranas de ballet.  Pongamos un ejemplo:
Nuestro punto de partida será un sistema intradiario tipo VBO (volatility breakout) con 6 parámetros optimizables cuyos rangos de valores son:



Una cantidad tan descomunal de combinaciones paramétricas 1,8 x 108 (y les aseguro que no es ni de lejos de las mayores que he visto) puede hacer estragos cuando pulsamos el botón de fabricar sueños y realizamos una optimización exhaustiva, o de fuerza bruta, en un histórico pequeño. En realidad lo que estamos consiguiendo es un billete seguro al reverso tenebroso de la sobreoptimización.
En el gráfico inferior vemos el resultado de una sobreoptimización típica: Optimizamos la región in-sample y aplicamos el juego de valores más rentable, o el que satisfaga el criterio diana elegido, al tramo del histórico sin optimizar:



El trazado de la curva de beneficios en 2010 y 2011 es impecable, y nuestra primera tentación bien podría haber sido comenzar a operar el sistema el primer día laborable de 2012 con esos valores. Pues bien, la sorpresa hubiera sido mayúscula al comprobar el progresivo e inmisericorde deterioro de la estrategia prácticamente desde el primer mes.
Afortunadamente, hemos sido sensatos y optamos por un modelo de optimización más realista. En lugar de una matriz de optimización tan monstruosa, optamos por reducir el espacio de búsqueda. Esto lo podemos hacer de dos modos: aumentando el tamaño del salto y/o ciñendo más las horquillas de máximos y mínimos a los valores centrales de la distribución obtenida durante la construcción de la lógica:


Ahora ya tenemos un número bastante más manejable. Aun así, optaremos por una optimización genética más superficial, sin forzar demasiado el tamaño de la población y el número de generaciones



El aspecto de la región optimizada ahora no es tan vistoso como en el gráfico anterior. De hecho resultará mucho menos apetecible comenzar a operar en 2012 con esta combinación de parámetros viendo el trazado de la región in-sample. Sin embargo, miren lo que ocurrió después y la fiesta que nos habríamos perdido.
Naturalmente, una combinación de parámetros, por muy rigurosos que hayamos sido en el proceso de evaluación, no garantizará nunca resultados brillantes en operativa real: Se puede producir algún sesgo no previsto en las formaciones de precios que erosione lentamente el rendimiento de la estrategia; o peor aún, una transición de fase a otra ventana temporal(cambio de mercado): Cuando un mercado cambia de manera abrupta el sistema se rompe, con independencia de los parámetros elegidos.
 Aclarado este punto, veamos qué podemos hacer para acreditar la consistencia de una lógica si el sistema, como suele ocurrir casi siempre, incorpora varios parámetros.

 Analicemos un caso práctico:

Supongamos un sistema intradiario, basado en ruptura de rangos que cuenta con un filtro de volatilidad y un stop de pérdidas. En total 6 parámetros. Lo aplicamos a un instrumento financiero X en compresión de 20 minutos. Para ello contamos con un histórico de 12 años (2001-2012).
Nuestro objetivo será determinar cuántas combinaciones paramétricas, en un espacio de búsqueda previamente acotado generan resultados positivos, así como la distribución de los mismos. Para ello lo primero que debemos hacer es delimitar el terreno de juego, estableciendo una horquilla de valores máximos y mínimos que sean consecuentes con la lógica a evaluar:
Así, para la EMA larga seleccionamos valores entre 200 y 2000 en saltos de 50. Mientras que para la EMA corta elegiremos el rango 10-150 en saltos de 10. El filtro de volatilidad oscilará entre 0,5 y 2,5 con un salto de 0,1. El stop es de tipo porcentual y no queremos que la peor operación rebase el 5%, por lo que optimizaremos entre 0,5 y 5  con un salto de 0,1. Por último, nuestro estimador del rango efectivo se aplicará a un número de sesiones comprendido entre 10 y 50, siendo el salto de 5.
Como pueden ver, incluso siendo cuidadosos al delimitar el espacio de búsqueda, el número de combinaciones paramétricas posibles es inmenso. Por lo que procede, como ya hemos señalado, tirar de algoritmos genéticos y optimización gruesa. Pero ahora, en lugar de buscar las mejores operaciones, lo que queremos es evaluar una muestra aleatoria de parámetros que sea representativa del conjunto de combinaciones posibles.

Para ello tenemos dos alternativas:

- Modificar el código del sistema para que en cada iteración los valores paramétricos sean diferentes. Un ejemplo de código de este tipo para NinjaScript sería:



-  También podemos recurrir a herramientas como el optimizador genético de NT7 para generar secuencias aleatorias de combinaciones paramétricas de manera sencilla.
Supongamos que queremos una muestra estadísticamente representativa (por ejemplo, 1.000 combinaciones) de un espacio de búsqueda muy grande, como el de las tablas anteriores. En este caso lo único que tenemos que hacer es configurar el optimizador  del siguiente modo:



Así, el algoritmo genético seleccionará una población de mil individuos (cada individuo no es más que una matriz aleatoria de valores de los parámetros) y la aplicará en una única generación, con lo que los procesos evolutivos de recombinación y selección no serán aplicables y el resultado será una lista con los resultados de esas combinaciones. Por ejemplo esta:



Exportamos a Excel los resultados y procedemos a un análisis detallado. Para ello necesitamos la estadística descriptiva y distribución del retorno, el drawdown y el ratio diana elegido al optimizar. Nosotros normalmente utilizamos el SQN (system quality number), si bien se pueden emplear también otros ratios como los de Calmar, Sortino y Sharpe, o el profit factor. Finalmente obtenemos gráficos de este tipo:










...Y las estadísticas que delimitan el terreno de juego:



Bien, pues ahora la cuestión será determinar si viendo una muestra representativa de los múltiples caminos que puede tomar el equity curve podemos acreditar la consistencia de esta estrategia. Lo ideal sería que todas las combinaciones paramétricas condujesen a rendimientos positivos. Pero, con un histórico largo y un espacio de búsqueda inmenso, esa situación la vamos a encontrar en contadas ocasiones.
 Lo normal es que una lógica robusta deje un amplísimo sesgo positivo en la distribución de resultados, de tal modo que podamos asegurar con una probabilidad muy alta que el sistema es inherentemente ganador con independencia de la configuración elegida.
 En cualquier caso, para el trader independiente y con recursos limitados, la cuestión de qué combinación paramétrica debe elegir seguirá siendo un problema embarazoso y una fuente de incertidumbre aun cuando demostremos estadísticamente la consistencia de una estrategia: Como usuario del sistema, no me importa tanto saber que dispongo de una máquina en promedio muy rentable, sino asegurarme, hasta donde sea posible, de que la configuración concreta que he elegido será también una apuesta ganadora.
 Veamos todo esto con un ejemplo:

·        AÑO 1:

Supongamos que una vez optimizado el sistema XYZ los juegos de valores de las curvas blanca, roja y azul son los que ofrecen los mejores resultados in-sample. En consecuencia, el 2 de enero comenzamos a operar con la combinación paramétrica de la línea blanca: ¡Genial! Hemos acertado y terminamos el año con generosos beneficios. La curva roja también está en el mismo bombo. Sin embargo, nunca sabremos de su peligroso trazado, ya que permanecerá oculto en el universo de lo que pudo haber sido y no fue.



·        AÑO 2:

Alentados por los buenos resultados del año anterior, y dado que nuestro sistema tuvo un rally estupendo en los dos últimos meses, consideramos que no es necesario modificar los parámetros y decidimos continuar con ellos un año más. Pues bien, craso error, porque ahora son las curvas azul y roja quienes toman la delantera, mientras que la curva blanca queda prácticamente clavada al suelo.



·        AÑO 3:

Con los resultados del año anterior en la mano, pensamos que no nos queda otra que reoptimizar el sistema. De las tres mejores combinaciones en backtest debemos elegir una, y en esta ocasión optamos por el juego de valores correspondiente a la línea azul. Nuevamente el insondable arcano quiere que volvamos a fallar, pero esta vez incluso incurriendo en pérdidas. En vista de la traumática experiencia, decidimos que quizá el sistema se ha roto y no vale la pena operar con él: ¡Game Over! Fin de la partida.  



Sin embargo el sistema está muy vivo, y así lo entiende el gestor de un Hedge Fund para quien no existe el problema de las combinaciones paramétricas, sencillamente porque, habiendo comprobado de manera exhaustiva la robustez de la lógica, en lugar de echar sus tablillas de apuestas sobre valores concretos, ha decidido comprar la mesa de juego entera. En consecuencia, procede de manera muy distinta: Selecciona una muestra aleatoria de combinaciones paramétricas cuyas estadísticas sean análogas a las de la totalidad del espacio de búsqueda. El tamaño de la muestra dependerá del capital disponible y del nivel de confianza deseado. En fin, ahorrémonos los detalles, supongamos que ha llegado a la conclusión de que 100 combinaciones son suficientes.  Seguidamente lo que hace es estimar el capital necesario, y ¡a jugar!

Ahora el juego es bien distinto y su aspecto gráfico será de este tipo:



En realidad, es como una simulación de Montecarlo, pero vista desde los parámetros en lugar que desde la secuencia de operaciones. En este escenario la evolución de cada curva concreta es irrelevante, lo que cuenta es que el rendimiento promedio año a año se mantenga. En otras palabras, que la distribución empírica de resultados se acomode a la distribución teórica del modelo. Así, mientras los principales ratios no se alejen de un umbral preestablecido, consideraremos que el sistema es consistente, aguanta y se puede confiar en él.
Valga decir que con este enfoque la carga de la prueba recae en la calidad de la lógica, y optimizar se convierte en un problema de pobres, de escasez de recursos.
Y si además demostramos que el sistema cumple las condiciones C (funcionar en muchos mercados) y D (resistir sin achaques el paso del tiempo), entonces estamos ante una rara joya que acreditará además de la consistencia su robustez, alegrando la vida de su afortunado poseedor. No sueñen, estas gemas son bastante infrecuentes.

No me denomiría trader si no hubiese encontrado a partir de darme golpes con el mercado soluciones para esto. Pero será para otra entrada y tal vez no pública.

AndrEAs