En el artículo anterior, estuvimos hablando de cómo añadir nuevas métricas o indicadores en el CBT (Custom Backtester) de Amibroker.
Como es un tema peliagudo, me refiero a todo lo que conlleva el CBT, preferí abordarlo en dos artículos separados para no sobrecargarte de información.
En el artículo vimos cómo llamar al CBT y repasamos las funciones más básicas.
Hoy profundizaremos en el proceso de añadir una nueva métrica al Informe de Amibroker. Utilizaremos tres indicadores personalizados como ejemplo, pero una vez dominado el primero, los demás resultarán sencillos. ¡Manos a la obra!
Si estás empezando con Amibroker, te puede interesar este curso pensado especialmente para ti.
🌟 Primera Métrica Custom: Esperanza Matemática
Podemos utilizar las métricas de la lista de la imagen del principio del artículo y jugar con ellas. Para esta primera métrica custom podemos escoger:
- Beneficio medio de las operaciones ganadoras.
- Porcentaje de operaciones ganadoras.
- Pérdida media de las operaciones perdedoras.
- Porcentaje de operaciones perdedoras.
Si las combinamos entre ellas, podemos calcular una métrica clásica que no viene por defecto en Amibroker, como es la Expectativa Matemática, o Esperanza Matemática.
La fórmula para calcular la Esperanza Matemática es la siguiente:
E = P(A) * G + P(B) * L
Donde:
- E: Esperanza matemática
- P(A): Probabilidad de acierto
- G: Ganancia media
- P(B): Probabilidad de fallo
- L: Pérdida media
Fíjate que estamos sumando en lugar de restar.
Es posible que conozcas la fórmula de la expectativa como una resta, y no como una suma. En este caso lo hacemos así porque las pérdidas ya tienen un valor negativo de por sí, así que lo que tenemos que hacer es sumarlas para conseguir el resultado deseado.
En Amibroker sería así:
🌟 Segunda Métrica Custom: System Quality Number (SQN)
Para calcular el SQN, primero recorreremos todas las operaciones cerradas, acumulando en variables separadas la suma del beneficio de cada operación, la suma de los cuadrados del beneficio de cada operación y el número de operaciones.
Luego, repetiremos este proceso con las operaciones que puedan quedar abiertas, acumulando los resultados en las mismas variables.
Esto es algo que se suele hacer: primero miras las operaciones cerradas y luego las operaciones que están en curso actualmente.
Con estos datos, podremos calcular la desviación estándar de los múltiplos de R.
Finalmente, multiplicaremos la raíz cuadrada del número de operaciones por el cociente entre el beneficio total y la raíz cuadrada de los múltiplos de R para obtener el resultado final de SQN
🌟 Tercera Métrica Custom Inventada
En esta ocasión vamos a llamar con getValue otras 3 métricas y las combinaremos entre sí con esta sencilla fórmula:
(Raíz Cuadrada del número de Operaciones Ganadoras * RAR) / Ulcer Index
Obteniendo así una ”métrica custom” inventada por nosotros (si resulta que alguien se me ha adelantado y ya está publicada en algún sitio dejádmelo escrito en comentarios para poder pedirle disculpas a su autor y reconocerle la autoría).
En Amibroker sería así:
La utilidad de esta métrica sería, por ejemplo, para evitar el típico problema de cuando optimizamos por métricas clásicas, y el mejor parámetro resulta tener demasiadas pocas operaciones.
Al añadir el número de operaciones ganadoras en el numerador, lo que estamos haciendo es, por una parte, buscar operaciones ganadoras, y por otra parte, penalizar los parámetros que dan como resultado pocas operaciones.
Evidentemente esta métrica no tiene por qué ser mejor que otras, pero ahora que ya sabes cómo usar el Custom Backtester para programar tus métricas, es cuestión de echarle imaginación y construirte tú mismo tus propias métricas que mejor se adapten a lo que buscas.
¿Se te ocurre alguna métrica que te gustaría probar?
🌟 Añadir las métricas al Report de Amibroker y al Report Chart
Al final del código hemos añadido 2 líneas más para cada una de las 3 métricas que te hemos contado:
En la primera, usamos el método “AddcustomMetric” para añadir cada una de las métricas creadas en el report de Amibroker. Quedaría así:
Y en la segunda, creamos una variable estática para cada una de las métricas, para luego poder llamarlas desde los “Report Charts”, tal como te explicábamos en este otro artículo.
🌟 Include
Si quieres puedes añadir todo este código al final de tus sistemas, para tener estas métricas en tus Backtest Reports.
Pero lo que yo te recomiendo es que lo guardes en la carpeta “Include” de tu Amibroker con el nombre “SQN and Custom Metrics”. Una vez lo hayas hecho, ya puedes descomentar la última línea del código que te pasé en el artículo anterior, y ya podrás llamar las variables estáticas de la forma que de explicábamos en el artículo que te acabo de enlazar además de alguna otra cosa que veremos en el próximo artículo. ¡No te lo pierdas!
👨💻 Código AFL de Amibroker
Como siempre, te dejo el código al final del artículo, para que veas cómo lo hemos hecho nosotros, y lo puedas adaptar a tus necesidades.
Este artículo fue cortesía de Xavi Miralles para MKTSignals.
0 comentarios