¿Cómo hacer un robot de trading?


¿Qué es un robot de trading?

Antes de ver cómo hacer un robot de trading, definamos qué es. Un robot de trading no es más que un conjunto de reglas escritas en un lenguaje de programación (Easylanguaje, Powerlanguage, Phyton …), que en caso de cumplirse se ejecutarán unas determinadas órdenes de entrada en un mercado financiero (futuros, FOREX, acciones etc.). Una vez que ya se han ejecutado las entradas del robot, éste también ejecutará automáticamente las órdenes de salida, que normalmente son por stop loss, profit target, temporizador o reversión de la posición (de largo a corto y viceversa) en el caso de los sistemas que siempre están dentro del mercado.

Ejemplo de un robot de trading en Easylanguage de TradeStation.

Input: Media(3), Nbarsalida(3), TP(500), SL (250);

//Reglas de entrada
If c crosses over average(c,Media) then buy next bar at market;

//Reglas de salida
If barssinceentry = Nbarsalida then sell next bar at market;


setstopcontract;
setstoploss(SL);
setprofittarget(TP);

¿Cómo crear un bot de trading? Robot de trading para el bitcoin gratis

Veamos las partes de un robot de trading con un ejemplo.

Descripción de la lógica: ruptura de un canal de donchian en barras de 15 minutos sobre el futuro del bitcoin. Es decir, estamos en el caso de un sistema de trading del tipo micro-tendencial intradía. El sistema operará en un tramo horario concreto.

  • Reglas de entrada: ruptura del canal de donchian de 30 barras en el tramo horario que va desde la 2 am hasta las 5 am (horario del CME que es donde cotiza el futuro del bitcoin). A continuación puedes la parte del código en Easylanguage donde están las reglas de entrada del robot de traging que estamos viendo como ejemplo.
// INPUTS
input: MySize(1);
input: beginTime(02), endTime(4), lenDon(30);
input: SL(8250), BE(1000), TP(2250);

//VARIABLES
var: donUp(0), donLow(0);

//DEFINITIONS
donUp = HighestFC(high, lenDon);
donLow = LowestFC(low, lenDon);

//CONDITIONS
if Time>=(BeginTime*100) and Time<(BeginTime+EndTime)*100 then begin
	buy MySize contracts next bar donUp stop;
	sellshort MySize contracts next bar donLow stop;
end;
  • Reglas de salida: el sistema saldrá por stop loss, profit target o al final de la sesión del futuro del bitcoin. El código de las salidas lo puedes ver a continuación.
input: SL(8250), TP(2250);

if SL>0 then setstoploss(SL);
if TP>0 then setprofittarget(TP);

Setexitonclose;

Comisiones del bróker

Es muy importante que descuentes comisiones realistas en las que debes incluir no sólo la comisión del bróker que utilices, que en nuestro ejemplo serán las comisiones de TradeStation. También debes descontar las comisiones que cobran cada unos de los mercados que en el caso del futuro del bitcoin es el CME y por supuesto, los deslizamientos que se producen a la hora de ejecutar las órdenes. Los deslizamientos van ha depender del volumen del mercado en el que se opere y/o del horario en el que se lancen las órdenes.

Si utilizas órdenes límite, reducirás mucho los potenciales deslizamientos, pero a cambio en ocasiones no se llenará la orden que tengas colocada y por tanto perderás operaciones, que evidentemente podrán ser ganadoras o no. Para el futuro del bitcoin estamos descontando un total de 50$ de comisiones (entrada y salida de posición). En la imagen siguiente puedes ver que las comisiones estimadas por cada trades son 5$ y los posibles deslizamientos son de 20$ por cada contrato operado. En total suman los 50$ antes mencionados.

Comisiones del futuro del bitcoin. Robot de trading gratis para el bitcoin.
Robot de trading gratis para criptomonedas.
Comisiones para el futuro del bitcoin en TradeStation

Optimización del sistema de trading

Primero debemos optimizar los parámetros de las entradas que son el rango horario y el período del canal de donchian. Hemos dejado el 30% de todo histórico como Out of Sample (fuera de muestra). Si no tienes claro a qué nos referimos con Out of Sample, te recomiendo que vayas al artículo Walk Forward Analysis en el que se explica este concepto y otros a tener en cuenta cuando se realiza una optimización.

Bot de trading para el bitcoin.
Resultados de robot de trading para el bitcoin.
In Sample de las reglas de entrada

Optimicemos ahora las reglas de salida del robot de trading, que ya sabemos que además de la salida a fin de sesión (que es una regla no optimizable) son el stop loss y el profit target. El resultado In sample de la optimización es el siguiente.

Como hace un bot de trading para criptomonedas.
Sistema de trading gratis para bitcoin

Veamos ahora el resultado Out of sample considerando las reglas de entrada y salida del robot de trading que estamos desarrollando.

Bot de trading gratis para el futuro del bitcoin
robot de trading gratis para btcusdt
sistema de trading gratis para criptomonedas

Cómo optimizar un sistema de trading correctamente. Mapas de calor

El artículo no profundiza en cómo se debe optimizar de manera rigurosa un robot de trading para evitar, en la medida de lo posible la temible sobre-optimización que tantos disgustos da a los traders algorítmicos noveles y no tan novatos.

Si separas la serie de datos que estés analizando en 3 regiones (In Sample, Out of Sample y Test) y además en cada optimización buscas la zona más robusta (no la mejor) de todas las combinaciones parámetros ya estarás un poco más cerca de trabajar correctamente un modelo cuantitativo en el trading.

¿Cómo hacer un mapa de calor para una optimización de un robot de trading?

En el vídeo tienes un ejemplo sencillo de cómo hacer un mapa de calor en Excel usando el reporte de la optimización de TradeStation para ello.

La combinación de parámetros que debes elegir será aquella que esté en un valle, es decir, que tenga vecinos con métricas similares, de tal manera que si el futuro tienes que re-optimizar el robot de trading, que tarde o temprano lo tendrás que hacer, pues puede ocurrir que tengas que adaptar esos parámetros a unas nuevas condiciones de mercado.

Ahora te pregunto ¿qué pasa si cuando elegiste los parámetros no estaba en una zona amplia estable? Pues sí, que cuando cambies los parámetros por que “te lo pide” el mercado el sistema de trading en el mejor de los casos, rebajará mucho sus resultados y en el peor directamente será perdedor.

Optimización de un robot de trading.
Cómo optimizar un sistema de trading
Cómo optimizar un robot de trading.
Cómo elegir los parámetros en un robot de trading
Los mejores parámetros para un bot de trading.
Mapa de calor en Excel de una optimización de TradeStation

¿Cuándo operar en real un robot de trading?

7 pasos para desarrollar un sistema de trading algorítmico

  1. Objetivos: ¿qué objetivos de rentabilidad/beneficio te planteas?
  2. Idea de tradig: la puedes conseguir de un libro, un vídeo, una recomendación etc.
  3. Viabilidad de la idea: debes hacer un backtesting riguroso descontando las comisiones de la operativa.
  4. Optimización y Walk Forward: debes elegir las combinaciones parámetros robustas mediante la optimización y después hacer el Walk Forward.
  5. Análisis de Montecarlo: para dimensionar correctamente el riesgo y el beneficio potencial del robot de trading.
  6. Incubación: debes dejar el sistema de trading durante un tiempo prudencial en demo hasta que se ejecuten al menos 30 operaciones y ver que resultado se producido.
  7. Diversificación y dimensionamiento: no deberías operar nunca una estrategia de trading de manera aislada, siempre un un portafolio de robots con baja correlación. Antes de dimensionar la posición de la estrategia, si puedes, deber empezar durante un tiempo con la posición más pequeña. Por ejemplo, imagina que tu gestión monetaria de indica que operes con 3 contratos del E-mini del S&P 500. Lo recomendable en este caso es que operes al principio sólo un contrato para ver los resultados, después ya aplicarás el dimensionamiento que te indique tu gestión monetaria.

A continuación puedes ver un esquema con los pasos recomendables a dar antes de poner un sistema en real.

Cuándo operar un robot de trading.
Fases para crear un sistema de trading
Pasos para crear un bot de trading
Cuándo operar un robot de trading en real
Fases en el desarrollo de un robot de trading

Espero que te haya gustado el artículo, y lo más importante, que te haya aportado algo de valor. Si te interesa uno de los sistemas de trading para el bitcoin que yo estoy operando te dejo aquí en enlace. Recuerda que tienes una demo gratis durante 30 días.

Deja un comentario

Artículo añadido al carrito.
0 artículos - 0,00