QAStats V3 Released

QAStats V3 Released

Hoy he liberado el ultimo update de la libreria de reporting de QUANTARMY. En otra ocasion explicamos superficialmente la libreria en este articulo

Advanced Financial Report Library in Pytho
Con el paso del tiempo, hay codigos que pueden empezar a ver la luz de forma publica, y revisando repositorios antiguos, encontre una version muy primitiva de una libreria sobre reporting, que nos facilito muchisimo la vida en su momento. Durante un tiempo, dentro del equipo, no habia un flujo

El repositorio donde se encuentra definitivamente el paquete es

GitHub - quantarmyz/QAStats
Contribute to quantarmyz/QAStats development by creating an account on GitHub.

Cambios

  • Mejoras de Estabilidad
  • Correccion de Errores
  • Actualizado la lista de eventos relevantes
  • Nuevo Ratio SQN en las estadisticas avanzadas
  • Adaptado a una instalacion mediante pip

Instalacion

Como he recibido bastantes consultas sobre como utilizar la herramienta, vamos a explicar para todos los principiantes como empezar con la libreria. Utilizaremos conda para crear entornos de trabajo, puede utilizarse cualquier otro metodo, pero mi recomendacion es instalarlo via miniconda. Las instrucciones para su instalacion las podeis obtener de su pagina oficial

Installing Miniconda - Anaconda

El primer paso es crear un nuevo entorno en conda para la libreria mediante el comando

conda create -n qastats

Una vez hemos creado el entorno de trabajo qastats, necesitamos activarlo

conda activate qastats

Una vez que tenemos el entorno de trabajo instalado y activado, procedemos a instalar la libreria mediante los siguientes comandos que, clonan el repositorio. Una vez lo tenemos descargado, accedemos a la carpeta y lo instalamos mediante pip install .

git clone https://github.com/quantarmyz/QAStats
cd qastats
pip install -r requirements.txt
pip install .

Una vez finalizado el proceso veremos algo como

Donde la linea relevante es la ultima que indica 'Successfully instaladed qastats'

Primeros pasos con la libreria.

Primero nos situamos en la carpeta correcta de la repo para ejecutar el ejemplo, y cargamos las librerias necesarias

%cd ../
%matplotlib inline
import qastats
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')

posteriormente vamos a cargar una la curva de retornos de una estrategia, y vamos a crear un bechmark sintetico, obteniendo retornos aleatoriso de la misma estrategia y ordenandolos en consecuencia.
Posteriormente sumamos los retornos y los ploteamos

data = pd.read_pickle('examples/diario_normal.pickle')
data['bench'] = np.random.choice(data['Close'],len(data))
data.cumsum().plot()
stats = qastats.stats.get_daily_stats(data)
stats

Drawdowns en periodos relevantes

Para obtener los datos de los drawdowns en los periodos relevantes, actualizado hasta el trade-war de Donald Trump, en este ejemplo, no apareceran por que el historico de la estrategia no llega hasta 2025, pero en una estrategia que si llegue, si que los calcularia. Para ejecutarlo lo hacemos mediante

dds = qastats.stats.get_drawdown_stats(data['Close'])
dds

Vami

El índice VAMI (Value Added Monthly Index o Índice Mensual de Valor Agregado) es una métrica utilizada para rastrear el desempeño de una inversión hipotética, generalmente de $1,000, a lo largo del tiempo, asumiendo la reinversión de rendimientos y descontando todas las comisiones y gastos asociados.

Su principal utilidad en la gestión de fondos es mostrar de manera clara y visual cómo habría evolucionado el capital invertido mes a mes, permitiendo comparar el crecimiento de diferentes estrategias, fondos o benchmarks de forma objetiva y sencilla.

El VAMI es especialmente valioso para evaluar la rentabilidad histórica de un gestor, ya que refleja tanto las ganancias de capital como la reinversión de dividendos e intereses, facilitando la toma de decisiones informadas y la comparación entre alternativas de inversión

Para obtener las estadisticas relevantes de la curva de equity, lo lanzamos de la siguiente manera

Para obtener el VAMI diario lo haremos mediante

qastats.stats.get_vami_diario(data['Close'])

Full Report

Y para obtener un reporte completo lo haremos mediante

qastats.reports.create_return_dd(data)

Jesús Cuesta

Odesa (Ucrania)
Inversor desde 2014. Research desde 2017. He trabjado en diferentes gestoras de capital, y Hedgefunds Crypto. Apasasionado en el codigo, los datos y las finanzas. Acualmente localizado en Ucrania.