Resumen:
|
[ES] Para el desarrollo de estrategias de inversion en bolsa, es muy arriesgado ponerlas en funcionamiento luego de crearlas. Es necesaria una estimacion de sus posibles resultados, de donde nace la idea de backtesting: ...[+]
[ES] Para el desarrollo de estrategias de inversion en bolsa, es muy arriesgado ponerlas en funcionamiento luego de crearlas. Es necesaria una estimacion de sus posibles resultados, de donde nace la idea de backtesting: con datos pasados, comprobar que resultados habria obtenido el algoritmo. De esta forma podemos obtener una estimacion del riesgo y de los beneficios que tiene el algoritmo.
El proceso de backtesting requiere de un proceso extenso: la recogida de datos pasados, el procesamiento de los mismos, para asegurar su validez y que estan en el timeframe en el que funciona nuestro algoritmo, separacion de los datos para entrenamiento y test, para tener diferentes casos con los que estimar el rendimiento, el proceso de simulacion de la operativa, y por ultimo el analisis de resultados.
Cada una de estas fases es compleja en si misma, pero no existen estandares para el desarrollo completo del proceso. En este documento se enseñaran las librerias de codigo estandar para cada una de estas fases, asi como sus ventajas y desventajas frente a sus alternativas. Para cada fase se facilitaran implementaciones de metodos de muy alta conveniencia, ya que muchas de las herramientas proporcionadas a continuacion no estan especializadas para el analisis de datos en bolsa.
Para la obtencion de datos existen muchas posibles fuentes: pandas, kaggle y binance entre muchas otras. Para la recepcion y procesamiento de estos datos se usara python, en concreto pandas. Esta libreria es un estandar para la ciencia de datos y permite una manipulacion y visualizacion rapida de datos. Existen otras muchas alternativas, y se usaran sus ventajas en conveniencia para el desarrollo del framework. Para el proceso de backtesting, existe la libreria backtesting, un estandar de evaluacion de algoritmos en bolsa en python, que expandiremos con indicadores de riesgo como la simulacion de montecarlo, o indicadores de rendimiento como el ratio de ganancia frente al mercado.
Los resultados que proporciona el backtesting son fundamentales para la decision de puesta en marcha en tiempo real de la estrategia. Un analisis o desarrollo incorrectos puede suponer la perdida total del capital.
[-]
[EN] For the development of stock investment strategies, it is too risky to work
with them online just after creating them. It is necessary an estimation of its
possible outcomes, where the idea of backtesting originates ...[+]
[EN] For the development of stock investment strategies, it is too risky to work
with them online just after creating them. It is necessary an estimation of its
possible outcomes, where the idea of backtesting originates from: with past data, test
which results would have the algorithm obtained. That way, it is possible to obtain a
risk and benefit estimation for the algorithm.
Backtesting process requires a long process: getting past data, processing it, to
ensure its validity and the fact that they are within a timeframe in which it functions our
algorithm. For example, separating training and test data sets allows one to
experiment with different cases and estimate their performance.
Each one of these phases is complicated on its own, but there does not exist
any kind of standards to the development of the whole process. In this document
multiple code libraries were analyzed for each of these phases, providing its
advantages and disadvantages against its competitors. For each phase a set of utility
methods will be provided, since some of these tools are not specifically designed for
stock prices analysis.
To obtain data there exists lots of possible sources: yahoo finance,
googlefinance or panda’s data API among many others. data reception and processing
will be carried out using python, more specifically pandas. This library is a standard
for data science and allows fast data manipulation and visualization. There exists many
other alternatives, and its advantages will be used in favor of framework development.
For the backtesting process, there exists a library code called backtesting, a
stock evaluation algorithm library standard in python, that will be expanded with other
useful risk indicators like Montecarlo’s simulation, or performance indicators like the
profit factor.
The results the backtesting provides are essential to assess the decision of putting
the strategy to work online. An incorrect analysis or development could result in the
complete loss of the invested capital.
[-]
|