Posts

darwin api

DARWIN API: Lo que ha pasado y lo que está por venir (2019)

Este año marcó un importante hito en la evolución de Darwinex… el lanzamiento en fase beta del DARWIN API.

Esto incluyó las siguientes sub APIs:

APIs de DARWIN

  • DARWIN Info API (para acceder a los datos de cotización y atributos)
  • DARWIN Quotes API  (para obtener en tiempo real datos de cotización de DARWINs activos a través de REST).
  • Quote Web Socket API (para obtener en tiempo real datos de cotización de DARWINs activos a través de Web Sockets)

APIs de inversión

  • Cuenta de Inversión API (para recuperar datos sobre el rendimiento de la cartera, p. ej. equity, datos de posición, etc.)
  • DARWIN Trading API (para operar los activos DARWIN a través de REST, igual que a través de la plataforma)

Las 5 sub APIs ya han sido desplegadas para todo el mundo.

Accede al DARWIN API

Cubrimos toda la suite de APIs en gran detalle en una serie de video tutoriales específicos en el canal de YouTube de Darwinex. Si no los has visto todavía, guarda esta lista de reproducción.


¿Qué conseguimos?

El lanzamiento de la API proporcionó por primera vez un acceso sistemático a los datos de la Comunidad Darwinex.

Permitió que todo el mundo pueda analizar y operar el talento de los traders de forma algorítmica, así como crear indicadores personalizados, robots de trading, herramientas de análisis, e incluso terminales de trading del activo DARWIN completas, todos automatizados y desde cero, entre otras cosas.

Tanto los traders algorítmicos como los discrecionales/manuales, los quants, científicos de datos, y todo tipo de profesionales ya pueden acceder a una serie temporal financiera multivariada basada en el comportamiento de los traders que ofrece unas funcionalidades más ricas que los datos de precio OHLCV (Open, High, Low, Close, Volume) en los activos tradicionales.


¿Por qué es esto importante?

Porque la información es poder.

Cuando más informadas sean tus inversiones, mayores son tus probabilidades de supervivencia.

Los medios para afrontar diversos desafíos perpetuos en el trading se han convertido en una realidad.

La API mostró parámetros que permitieron que cualquiera pueda crear sus propios filtros e índices personalizados en DARWIN, tanto para invertir como para añadir información a inversiones existentes.

Por ejemplo:

  • ¿Trabajarías únicamente con un volumen de ticks over-the-counter sensibles a la sesión, o te ofrecería la frecuencia de orden ponderada en el tiempo de los DARWINs de mayor rendimiento mayor información sobre potenciales eventos de precios indebidos? Mira este vídeo para más información.
  • Tu estrategia de volume-spread ¿sería apoyada mejor por asunciones smart-money sobre los diferenciales volumen/precio o por el rendimiento de la dirección que los DARWINs tomaron cuando surgieron esos diferenciales? Mira este vídeo para más información.
  • ¿Qué parece más fiable – la evolución de la cotización de un DARWIN que ha operado de forma exitosa la volatilidad tras los costes de transacción, en condiciones de mercado continuamente cambiantes, abriéndose camino a través de las noticias, los cisnes negros, inversiones transitorias durante más de 5 años con un historial verificado en Darwinex? ¿O el backtesteo hiperbólico de una estrategia de volatilidad con condiciones de mercado invariables?
  • ¿Tendría sentido aplicar un análisis técnico a la conducta de los traders?
  • ¿Cómo reaccionan los buenos traders a las principales noticias económicas?
  • ¿Tendría más sentido enviar una orden BUY STOP con un DARWIN que ha operado el Non-Farm Payroll con un éxito consistente, o una combinación de órdenes BUY/SELL STOP en torno al EUR/USD como una apuesta mejor fundamentada que 50/50?
  • ¿Qué aspecto tiene una cartera compuesta de activos DARWIN intradía, swing, or night-scalper?
  • ¿Cuál es la correlación entre el retorno de tu estrategia y el de la Comunidad Darwinex?

Y la lista sigue y sigue.


La profundidad de los datos disponibles

Con los datos históricos a cierre de día disponibles para los 12 atributos de inversión de DARWIN, los datos de cotización disponibles en múltiples marcos temporales hasta el nivel de tick, y más de 200 otros atributos diagnósticos disponibles por FTP para complementar los datos disponibles en la API, el ámbito de la I+D de estrategias de trading y carteras de DARWIN aumentó espectacularmente.

Los usuarios de la API ya pueden construir soluciones propias con el activo DARWIN – ya sean filtros, carteras, indicadores, funcionalidades para la plataforma. Las posibilidades llegan tan lejos como tu imaginación.

Éste es un ejemplo que ilustra este desarrollo:

Para dar apoyo a los usuarios en su búsqueda, Darwinex Labs seguirá publicando vídeo tutoriales dedicados y código fuente cada semana, así como wrappers para la API a través de GitHub, todo en código abierto.

Y a medida que la API vaya madurando con el tiempo, ¡las funcionalidades disponibles también aumentarán!

Como siempre, publicaremos todos los betas y lanzaremos posibles funcionalidades en el Foro de la Comunidad Darwinex, donde también contaremos con tu valiosa contribución y experiencia a lo largo del tiempo.


Enlaces relacionados

Más información y acceso a las APIs

Preguntas frecuentes sobre las APIs de Darwinex (en inglés)

API Store de Darwinex

Términos y condiciones del uso de las APIs (en inglés)

Darwinex Collective, un espacio de Slack de Darwinex sobre I+D algorítmico

LVQ and Machine Learning for Algorithmic Traders – Part 3

In the last two posts, LVQ and Machine Learning for Algorithmic Traders – Part 1, and LVQ and Machine Learning for Algorithmic Traders – Part 2, we demonstrated how to use:

  1. Linear Vector Quantization
  2. Correlation testing

..to determine the relevance/importance of and correlation between strategy parameters respectively.

Yet another technique we can use to estimate the best features to include in our trading strategies or models, is called Recursive Feature Elimination, an automatic feature selection approach.


What is Automatic Feature Selection?

It enables algorithmic traders to construct multiple quantitative models using different segments of a given dataset, allowing them to identify which combination of features or strategy parameters results in the most accurate model.

Recursive Feature Elimination

Recursive Feature Elimination

One such method of automatic feature selection is Recursive Feature Elimination (RFE).

To evaluate the best feature-space for an accurate model, the technique iteratively applies a Random Forest algorithm to all possible combinations of the input feature data (strategy parameters).

The end-outcome is a list of features that produce the most accurate model.

Using RFE, algorithmic traders can refine and speed up trading strategy optimization significantly (subject to this list being smaller than the total number of input parameters of course).


R (Statistical Computing Environment)

R (Statistical Computing)

We’ll make use of the caret (Classification and Regression Training) package in R once again.

It contains functions to perform RFE conveniently, allowing us to spend more time in analysis instead of writing the functionality ourselves.

Recursive Feature Elimination – Step by Step Process

  1. As before, run “raw” backtests without any optimization, employing all features (parameters), and save your results in a suitable data structure (e.g. CSV table) + load the caret and randomForest libraries.
  2. Specify the algorithm control using a Random Forest selection method.
  3. Execute the Recursive Feature Elimination algorithm.
  4. Output the algorithm’s chosen features (strategy parameters).

 

Step 1: Load the data + “randomForest” and “caret” machine learning libraries in R

> library(caret)
> library(randomForest)
> train.blogpost <- read.csv("data.csv", head=T, nrows=1000)
> train.blogpost <- train.blogpost[,grep("feature|target",names(train.blogpost))]

Step 2: Specify the control using Random Forest selection function

> rfe.control <- rfeControl(functions=rfFuncs, method="cv", number=10)

Step 3: Execute the Recursive Feature Elimination algorithm

rfe.output <- rfe(train.blogpost[,1:21], train.blogpost[,22], sizes=c(1:21), rfeControl = rfe.control)

Step 4: Output chosen features (strategy parameters)

> print(rfe.output)
> predictors(rfe.output)
> plot(rfe.output, type=c("o", "g"))

Recursive Feature Elimination - Output Predictors

Recursive Feature Elimination – Output Predictors

Recursive Feature Elimination - RMSE Plot

Recursive Feature Elimination – RMSE Plot


Conclusion

From these results, it is easily apparent that a model with:

  1. The first two parameters only, generates the most inaccurate model.
  2. The algorithm’s 5 selected parameters (out of a total of 21) produces the most accurate model.
  3. Any number of parameters greater than 5 produces lower but comparable accuracy, therefore choosing any greater a number of parameters would add zero value to the model.

Based on this, an algorithmic trader could significantly reduce his/her optimization overhead, by culling the number of strategy parameters employed in backtesting and optimization.


Additional Resource: Measuring Investments’ Risk: Value at Risk (VIDEO)
* please activate CC mode to view subtitles.

Do you have what it takes? – Join the Darwinex Trader Movement!

Darwinex - The Open Trader Exchange

Darwinex – The Open Trader Exchange