Sistema de trading automático basado en la cointegración

Trading en los mercados de divisas
lectum
Mensajes: 20
Registrado: 27 Dic 2015 17:27

Sistema de trading automático basado en la cointegración

Mensaje por lectum »

Hola,

He programado un sistema de trading automático completo, (al cual le falta optimizar sobre todo la parte de cointegración). Lo que me gustaría mejorar es la parte del cálculo de la cointegración. Estuve haciendo un curso de cointegración pero por desgracia se cortó a medio curso, sin ninguna razón a simple vista, simplemente desapareció el profesor y no se volvió a saber nada de él. El tema es que tengo en principio la parte de calcular si dos pares están cointegrados, pero los resultados no acaban de salir como era de esperar con esta estrategia, y me gustaría encontrar a alquien que tenga conocimientos de cointegración (lo ideal sería aplicada al trading, pero si es alguien matemático y no tiene ni idea de trading también me vendría perfecto). Al quedarse el curso a medias, tengo dudas de que tenga todo lo que hace falta, o incluso si algunas cosas que nos explicó son así realmente. Buscando información por otros sitios, sí parece que el algoritmo que tengo implementado es correcto, pero al no acompañar los resultados en esa estrategia siempre te queda la duda.

Me gustaría encontrar un colaborador para completar lo que me falta y que he mencionado arriba. Sobre cómo colaborar, pues sería cuestión de hablarlo, hay muchas opciones: determinadas licencias del programa para poder utilizarlo él o XX personas, ir a medias en una cuenta en común, pagar XX dinero por la colaboración. Sobre la colaboración, malo será que no se encontrase alguna forma para llegar a un acuerdo entre los 2 o los que fuésemos.
A quien le interese, puede ponerse en contacto conmigo, a poder ser a través del correo [email protected], y si no por aquí mismo mandando un mensaje o a través de este mismo foro.

Para que veais por arriba cómo es el programa, éste actualmente tiene las siguientes características:

1) Conexión directa con el broker FXCM (con la opción de añadir más brokers si fuese necesario, tan sólo se necesitaría la API correspondiente y programar las operaciones necesarias con esa API).
2) Obtención automática de precios de los activos definidos.
3) Definición por parte del usuario del spread y el swap de cada activo para que las operaciones lo tengan en cuenta (de esta forma podrías cambiar estos valores para simular en los distintos brokers que te interesen)
4) Múltiples opciones de cálculos para definir entradas y salidas de las operaciones:
4.1) Se pueden definir múltiples sistemas para detectar entradas:
4.1.1) Cointegración, utilizando pares de divisas para calculas cuando están cointegradas
4.1.2) Tendencial (definiendo unos puntos de entrada cuando se detecten cambios de tendencia)
4.1.3) Sistemas sobre pares de divisas (ej. EURUSD-EURCAD) o sobre divisas simples (ej EURUSD)
4.1.4) Muchos otros sistema que el usuario quiera ya que se pueden definir las condiciones que tienen que cumplir las posibles operaciones
4.2) Se pueden utilizar varios tipos de coberturas (con pares equivalentes, coberturas simuladas, sin cobertura, ...)
4.3) Se puede definir cuantos datos históricos utilizar para los cálculos a la hora de predecir las posibles entradas (por ejemplo utilizar 500 datos o 1500 datos, lo que el usuario prefiera)
4.4) Se pueden utilizar múltiples timeframes para las estrategias (desde 1 minutos hasta 1 mes, yo normalmente utilizo el timeframe de 1 hora, por ser bastante fiable y las operaciones tener una duración aceptable)
4.5) Se puede definir el punto donde entrar y salir de las operaciones (basada en una serie de condiciones)
4.6) Se puede definir un mínimo y máximo de pips a la hora de buscar operaciones
4.7) Se puede definir un mínimo y máximo de lotaje en las operaciones
4.8) Se puede definir el porcentaje de riesgo que se correrá en cada operación (decidiendo también si tener en cuenta las ganancias/pérdidas obtenidas en el riesgo de cada operación)
4.9) Se puede definir el número de operaciones abiertas máximas
4.10) Se pueden definir SL dinámicos llegados a ciertos puntos de beneficios, por si queremos asegurar x beneficios pero no perder la oportunidad de obtener más si la operación sigue obteniendo más beneficios.
4.11) Se puede definir un período máximo de duración de una operación, y cuando finalice ese período se cerrará la operación, o se esperará a que cumpla unas condiciones específicas si queremos que se cierre sólo en determinadas circunstancias.
4) Todas las opciones indicadas en el punto 4 (y todavía existen más pero no veo necesario mostrar absolutamente, sólo puse las más importantes), están disponibles para utilizar en una cuenta en tiempo real, pero además, y es de las partes más importantes, puedes hacer una simulación con las opciones que prefieras en el pasado, es decir, puedes realizar los backtesting que consideres oportunos antes de utilizar las distintas opciones. De esta forma no es necesario dejar pasar un mes o dos con unas características concretas para saber si son buenas o no, sino que puedes utilizar el backtesting sobre un año o dos o lo que sea, con esas opciones, y el programa simulará las entradas que realizaría igual que ocurrirá cuando se haga en tiempo real.
5) Cuando se utiliza en tiempo real, se pueden hacer las entradas automáticamente en una cuenta de un broker, con lo que se puede comparar si los resultados simulados por el programa se corresponden con los del broker.
6) Tanto los backtesting como la operativa en tiempo real, se pueden hacer varias a la vez, incluso en distintas cuentas del broker. Simplemente hay que abrir el programa tantas veces como se quiera y realizar ahí la operativa.
7) Opción de enviar un email cuando se encuentren operaciones, de esta forma, si no quieres que la operativa sea totalmente automática, puedes enviarte un email cuando haya una operación y analizar tú mismo si la consideras adecuada o no. Con esto se podría enviar avisos a una lista de emails que haya definidos en el programa, si por ejemplo lo utilizan 10 personas, pues que mande 10 emails en cada operación a esas 10 personas.
8) Cuando se haga un backtesting u opere en tiempo real, se deben de definir tantos pares como se desee, de esta forma puedes operar con 5 pares si quieres, como con muchos (por ejemplo si eliges la cointegración, que son combinaciones de pares, puedes obtener muchísimas combinaciones. Un ejemplo práctico de para que sirve utilizar por ejemplo 1000 combinaciones (que se antoja a priorio demasiadas) es porque puedes hacer un backtesting de un año con esas 1000 combinaciones y luego te quedas para tiempo real con las X mejores combinaciones.
9) Además de todo esto, todos los backtesting o operativas en tiempo real (que no deja de ser igual que un backtesting sólo que se va haciendo en tiempo real en lugar del pasado), quedarán registrados al detalle en el programa, con lo que posteriormente (o incluso mientras se ejecutan) se podrán analizar las operaciones realizadas, los beneficios, las pérdidas. Todo ello se hace imprescindible para encontrar una buena estrategia ya que según los datos que se obtienen de los distintos backtesting se pueden ir modificando las opciones para optimizar la estrategia utilizada y crear una mejor.
10) Todas las estrategias y pares utilizados en cada estrategia, se pueden almacenas en una lista de favoritos (esto no es el resultado del backtesting en sí, sino las opciones que tiene ese backtesting). De esta forma, puedes definir las opciones y los pares, y guardaslos como favoritos, y luego si quieres hacer esa misma estrategia pero cambiando alguna opción en concreto, simplemente cargas ese favorito y cambias la opción que desees. Más que nada esto es por comodidad, porque como hay tantas opciones y pares posibles, sería un incordio si hay que definir todo nuevamente.


Esto que indico arriba es lo que ya está hecho y funcionando bastante bien.

Por si a alquien le interesa, acabo de publicar en myfxbook mi estrategia en tiempo real que estoy probando actualmente (tan sólo lleva activo desde el 08-12-2015, así que tiene todavía pocos datos, pero los backtesting que hice sobre 3 años son prometedores): https://www.myfxbook.com/members/lectum ... 17/1446923

Os envío también unas imágenes generales de cómo es el programa a simple vista (estéticamente no es muy allá, pues sólo lo hice en principio para mi y aún lo estoy acabando, si consigo que funcione bien, pues entonces ya me meteré más con la parte visual, así que no os dejéis engañar porque no sea todo lo bonito que podría ser, jajaja)

http://prntscr.com/9j2nol -> Aquí podemos ver la pantalla del login. Actualmente funciona sólo FXCM, pero está pensado para funcionar con varios brokers a la vez y realizar entradas en los que se indique.
http://prntscr.com/9j2o4p -> Aquí se establecen las opciones que se indican en el punto 4, para realizar los backtesting o la operativa en tiempo real.
http://prntscr.com/9j2nz5 -> En esta pantalla podemos ver el resultado general de todos los backtesting realizados. Hay más detalle de lo que se ve, ya que muchas listas puedes pulsar ver más detalle de las cosas.
http://prntscr.com/9j2oaq -> En cada operación realizada o simulada, se guarda toda la información de esa operación y se muestra gráficamente para su análisis posterior.
http://prntscr.com/9j2ogc -> Como casi todos los programas que se precien, cuando ocurra alguna incidencia o error o mensaje informativo, se guardará y se podrán consultar esos mensajes.
http://prntscr.com/9j2olp -> Aquí se definirían los activos que queramos utilizar, así como los spread y los swaps (aquí se ponen los activos que queramos del broker, y en la pantalla de las opciones elegiremos los que queramos analizar)
http://prntscr.com/9j2ot9 -> Aquí se definen las estrategias de entrada y salida de las operaciones.

Saludos y muchísimas gracias a los que habéis seguido leyendo hasta el final puesto que es bastante larga la explicación, jajaja.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Sistema de trading automático basado en la cointegración

Mensaje por cls »

Hola lectum,

vaya curro de aplicación. Enhorabuena si la has logrado terminar (a falta del detalle de la cointegración).
Te has programado todo un middleware. Pero por qué no has aprovechado lo que ya hay disponible ?
No te servía metatrader o NinjaTrader ?

Sobre la cointegración siento no poder ayudarte aunque me suena que en el foro se abrió un hilo específico sobre ello.

S2
Valmol
Mensajes: 310
Registrado: 17 Oct 2015 17:58

Re: Sistema de trading automático basado en la cointegración

Mensaje por Valmol »

Hola Lectum

eso tiene buena pinta, muy buena pinta

los has probado con índices?
lectum
Mensajes: 20
Registrado: 27 Dic 2015 17:27

Re: Sistema de trading automático basado en la cointegración

Mensaje por lectum »

Hola,

Sobre por qué lo he hecho, es porque quería algo específico para cointegración, porque lo único que vi valía una pasta y como soy informático y más o menos se me da bastante bien la programación, pues por eso me animé a hacerlo, además, no hay nada como algo de cosecha propia para adaptarlo a tus gustos :).

Sobre los índices, sí hice alguna que otra prueba, aunque ahora mismo no lo estoy usando, pero sí lo probé alguna vez, pero no recuerdo exactamente que problema tuve, pero se podría añadir sin demasiados problemas.

Que conste que el sistema empezó siendo bastante pequeño y concreto, pero luego me emocioné y poco a poco fui añadiendo cosas que me venían a la cabeza, y como me conozco el programa casi de memoria, ya sé al dedillo donde tocar.

Ya vi algún tema específico sobre la cointegración, pero nada más concreto que lo que yo tengo, por eso necesitaba alguien que supiese del tema para verlo conmigo en mi programa en concreto, por si veíamos donde estaba el fallo o confirmar que estuviera bien.

Saludos y muchas gracias
Avatar de Usuario
daykoku
Mensajes: 438
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Sistema de trading automático basado en la cointegración

Mensaje por daykoku »

Hola Lectum,

Yo tb tengo un programa que prácticamente hace lo mismo que has mencionado ha excepción de la parte donde modelas el lote para cada pata.

Probé hacer alguna función para ir quitando/apremiando la pata más volátil pero al final no me convenció mucho. Dices que has tenido buenos backtest para 3 años. La verdad es que me parece muy poco tiempo, sobre todo teniendo en cuenta cómo actúan los ciclos de volatilidad en las divisas. Lo que quiero decir es que suelo probarlo desde 2006 hasta la fecha, lo cual prácticamente son 10 años donde si hay marcadas fuertemente algunas estacionalidades importantes.

Por escribir algo que te pueda ayudar podrías probar aplicar modelos tipo ARIMA , o GARCH (que me comentaron el otro día). Personalmente no me convencen mucho, pero sería cuestión de investigarlo uno mismo y sacar sus propias conclusiones.

Otra cosa que deberías tener en cuenta es el valor del pip para cada cruce (sino lo has hecho ya claro). En meta trabajar este tipo de spreads es imposible, al menos de la mejor forma.

Volviendo al asunto de la cointegración, algunos foreros si controlan mucho más que yo y tal vez tengan algo que decir al respecto.

Buen trabajo y cualquier cosa por aquí andamos.

Saludos

lectum
Mensajes: 20
Registrado: 27 Dic 2015 17:27

Re: Sistema de trading automático basado en la cointegración

Mensaje por lectum »

Hola, me ha llegado a mi correo alguna notificación de que tengo mensajes privados, pero cuando voy a leerlos ni me deja, por lo que he visto, creo que hasta que publiques unas determinadas entradas no te deja, o eso es lo que creo, así que por ahora, en lugar de mandar mensaje privado por aquí podríais mandarlo a [email protected]. en cuanto pueda entrar a leerlos ya aviso
lectum
Mensajes: 20
Registrado: 27 Dic 2015 17:27

Re: Sistema de trading automático basado en la cointegración

Mensaje por lectum »

Hola daykoku,

Personalmente creo que con 3 años de backtesting con buenos resultados es más que suficiente para plantearse a hacer una prueba en tiempo real, con una cuenta demo. Si me quedan dudas, siempre puedo hacer más tiempo en backtesting luego, pero creo apropiado ponerlo en tiempo real ya, porque mínimo antes de entrar en una cuenta real quiero estar unos meses en demo, así que en ese tiempo puedo probar más back, y si sale mal, pues se corta en tiempo real y listo, todo esto según mi opinión personal.

ARIMA he estado mirando alguna vez algo por libre, pero me lío un poco, y GARCH ni me sonaba. Ya te digo que en el tema estadístico es donde estoy más verde, no domino demasiado ese tema y por eso precisamente buscaba alguien que controlase bastante, en lugar de intentar hacerlo yo porque no es que ande muy sobrado de tiempo ahora mismo.

Ah. el tema de los pips que no valen lo mismo para todos los pares ya lo tengo contemplado, pero gracias por avisar ;).

Saludos
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Sistema de trading automático basado en la cointegración

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 07:56, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
lectum
Mensajes: 20
Registrado: 27 Dic 2015 17:27

Re: Sistema de trading automático basado en la cointegración

Mensaje por lectum »

Hola Rango Starr,

Muchísimas gracias por el documento. Este en concreto nunca lo había leído,pero he leído algunos parecidos. Le echaré un ojo a ver si me aclara algunas cosas.

El problema que tengo es que ahora mismo tengo poquísimo tiempo, trabajo por las mañanas y tengo que cuidar a mis 2 peques yo solo por las tardes (y tienen 1 y 2 años, así que no me dejan ni un momento libre, jajaja), por eso más que ayuda, necesitaba alguien que como mínimo revisara conmigo sino él solo para ver si todo estaba bien.

Y claro que no pido ese trabajo gratis :), sería cuestión de llegar a un acuerdo entre los 2. Yo también muchas veces ayudé de alguna forma en foros a distinta gente, pero una cosa en una ayuda puntual, que me parece genial que se colabore de forma amistosa sin nada a cambio, y otra un trabajo en sí, entonces sí veo bien que se gratifique de alguna forma, y este último es mi caso.

De todas formas, muchísimas gracias a todos por la información que me habéis dado.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Sistema de trading automático basado en la cointegración

Mensaje por X-Trader »

Hola lectum, bienvenido al Foro, muy interesante lo que comentas. Quizás podríamos colaborar de alguna manera, te mando privado (ya puedes acceder a los privados y postear libremente al tener 5 mensajes aprobados).

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Sistema de trading automático basado en la cointegración

Mensaje por X-Trader »

Por cierto para aquellos que no sepan de que va esto de la cointegración, tengo dos artículos escritos sobre el tema, aquí tenéis los enlaces:

https://www.x-trader.net/articulos/trad ... acion.html
https://www.x-trader.net/articulos/trad ... on-ii.html

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Sistema de trading automático basado en la cointegración

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 07:55, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Sistema de trading automático basado en la cointegración

Mensaje por X-Trader »

Rango Starr escribió: Hola buenos días X-Trader,

revisando la bibliografía de los artículos, he comprobado que se encuentra Ernest, Chan.

Este hombre, tiene un segundo libro titulado "Algorithmic Trading.Winning strategies and their rationale".
En este segundo libro, en su capitulo dedicado a estrategias de Mean Reversion, habla precisamente de la cointegracion, y su implementación en estrategias. Cuenta con la ventaja de que tiene código de programación inserto. Puede que para un programador, también sea interesante pegarle un vistazo.

Saludos!!
Gracias por el apunte Rango, acabo de localizarlo en la librería de la esquina y tiene una pinta excelente. Para el que quiera echarle un vistazo puede leerlo aquí:

https://github.com/spinlockirqsave/book ... ionale.pdf

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
daykoku
Mensajes: 438
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Sistema de trading automático basado en la cointegración

Mensaje por daykoku »

lectum escribió: Ah. el tema de los pips que no valen lo mismo para todos los pares ya lo tengo contemplado, pero gracias por avisar ;).
Hola Lectum, no consigo entender como trabajas en el entorno metaquotes para modelar las patas.

Tomando los valores ahora mismo de dos pares al azar, digamos....

EURUSD, 10k, 1USD/pip
GBPJPY, 10k, 0.85USD/pip

Cómo podrías trabajar en este sentido con el min lotsize que permiten, siendo este 1k.

Saludos,

d
Avatar de Usuario
daykoku
Mensajes: 438
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Sistema de trading automático basado en la cointegración

Mensaje por daykoku »

X-Trader escribió:Hola lectum, bienvenido al Foro, muy interesante lo que comentas. Quizás podríamos colaborar de alguna manera, te mando privado (ya puedes acceder a los privados y postear libremente al tener 5 mensajes aprobados).

Saludos,
X-Trader
Hola X, a mi tb me interesa este tema, si pudieras aportar en este hilo lo de los privados te lo agradecería. Cualquier cosa me ofrezco a colaborar, excepto pegar el código íntegro.

PD: Ahora no tengo tanto tiempo, pero intento seguirles a menudo.

Saludos,
d
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Forex”