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

Comparte y comenta tus estrategias de trading.

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

Notapor lectum » 27 Dic 2015, 18:03

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 jjuamba@gmail.com, 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.
lectum
 
Mensajes: 13
Registrado: 02 Jul 2013, 11:43
Karma: 0

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

Notapor BartRoberts » 29 Dic 2015, 15:27

hola lectum

yo uso esa tecnica basado gbpjpy exclusivamente por que es el unico que es gobernado a partes iguales etc etc, (de otros mercados ni idea) me apaño perfectamente a mano

pero si quieres ver funciones que añadirle a tu programa y si alguien quiere saber de que va el tema que puede ser muy potente
pueden probar con la demo de este programa que a dif de otros es facil de usar y va al grano (que si lo que quieres es vender tu programa, es bueno que vaya al grano...)

http://arb-maker.com


saludos
I'm the operator with my pocket indicator

Imagen
Avatar de Usuario
BartRoberts
 
Mensajes: 1229
Registrado: 07 Oct 2012, 08:06
Ubicación: Tortuga
Karma: 27

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

Notapor lectum » 29 Dic 2015, 17:02

Hola BartRoberts,

Lo de vender mi programa en principio no era la idea, lo quería utilizar yo o como mucho en colaboración con alguien o algún inversor como mucho, pero no tenía pensado venderlo, aunque nunca se sabe al final como acabará la cosa, claro :).

El programa Arb-Maker lo conozco, de hecho ya probé la versión demo y es algo así precisamente lo que quería, sólo que más adaptado a mis gustos. el porqué de hacerlo yo desde cero es que me gusta hacer cosas por mi cuenta y siempre lo puedes personalizar completamente a tu gusto.

Lo malo del arb-maker (malo para mi claro, jajaja), es que puedo ver que hace pero no como lo hace :(
lectum
 
Mensajes: 13
Registrado: 02 Jul 2013, 11:43
Karma: 0

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

Notapor lectum » 30 Dic 2015, 12:43

Hola,

El programa que comentas ya lo probé, pero no se adaptaba exactamente a lo que buscaba. Sí tiene funciones que vendrían bien en mi programa, pero por desgracia sólo puedo ver como las hace pero no cómo están implmentadas por debajo :).
lectum
 
Mensajes: 13
Registrado: 02 Jul 2013, 11:43
Karma: 0

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

Notapor BartRoberts » 30 Dic 2015, 20:22

pues si te queda algo guapo y directo sere tu primer cliente xd

ese sistema bien balanceado es una devoradora, yo lo hacia antes manteniendo meses las posiciones.. es como un pequeño sistema solar avanzando xD yo asi me lo visualizo

tenia pensado poner un hilo de algo que seguramente serviria (el concepto) pero me contuve xD, sirve para tener en cuenta al momento de sintetizar pero de forma simplisima como siempre


pero ya algo mas normal siguiendo la idea, el concepto es algo que intento hacer en mi cuaderno pero no lo tengo del diario... una vez supermario (saludos) me paso un indi para facilitar un poco es
y es por ejemplo y a groso modo, de forma muy simple lo explico


basado en porcentajes;

par A y par B (da igual que sean compuestos o no, siempre que haya alguna correlacion fuerte, o que ambos esten cruzados con el dolar por ejemplo, como guia y referencia)

cuanto % a estado A de distancia de B maximo?
existe un punto medio, no media

se han cruzado y esa distancia se ha invertido?
a que distancia %? mayor menor?
existen mas niveles, por ejemplo; el del cruce,punto medio A punto medio B etc
etc etc

nos queda un canal pero nada que ver con donchian ni bollinger ni parecido, por que no es en periodos sino a partir de (que no es exactamente lo mismo y puede ser muy diferente por la resultante del vector)... ni considera una media
hay mas variantes igual de simples

lo importante es ver si de verdad ambos activos gravitan al rededor de un mismo eje o no... luego por inercia se puede presumir que seguiran en esa "orbita" y decidir si sintetizar o no


ya despues vendran los modelos que quieran, pero eso para mi es fundamental primero que nada


alguna vez puse un ejemplo de hacer eso en noticias, es algo que suele funcionar


es solo una idea



saludos
I'm the operator with my pocket indicator

Imagen
Avatar de Usuario
BartRoberts
 
Mensajes: 1229
Registrado: 07 Oct 2012, 08:06
Ubicación: Tortuga
Karma: 27

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

Notapor lectum » 02 Ene 2016, 15:41

Hola BartRoberts,

Gracias por explicarme a groso modo tu sistema (o aunque lo tengas en tu cabeza aún, jajaja).
Yo por falta de tiempo ahora no quería meterme en nada nuevo, simplmente quería mejorar la parte de la cointegración o al menos confirmar que está bien así y entonces ya tendría que plantearme si seguir con ese tema o no.

Pero lo dicho, mil gracias y a ver si alguien que controle de ese tema se anime a colaborar (no desinteresadamente, ya lo comenté alguna vez :)

Saludos
lectum
 
Mensajes: 13
Registrado: 02 Jul 2013, 11:43
Karma: 0

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

Notapor jeuro12 » 12 Ene 2016, 00:36

Hola lectum.
Como no tengo mucha idea de "cointegracion" ( mas bien he trabajado con corelaciones en forex), estuve leyendo algunas definiciones de los dos terminos. La explicacion mas simple que encontre fue:... "Correlacion" =que si un activo sube un dia, el otro activo tambien sube ese dia. No exactamente, pero sus movimientos son semi sincronizados. La "cointegracion" implica que los dos activos no podrian "irse" en direciones opuestas por un periodo muy largo sin volver, eventualmente a una distancia media .

Si tomara estas definiciones como verdaderas, diria que los simbolos de forex no tienen cointegracion. o quizas, decir que si existe, se demoran demasiado en volver a su media.

En el chart que subi muesta en forma simple los "pips" que se han movido 3 simbolos desede el 2008 al presente. eurusd, gbpusd y eurgbp
Si comparamos el eurusd con el gbpusd vemos que desde el 2008 al presente el eurusd a bajado aprox 4300 pips y el gbpusd aprox 5100. Evidente Correlacion positiva a largo plazo con algunas correlacione negativas durante el mismo tiempo. Pero en realidad no veo (de acuerdo a las definiciones de arriba) una cointegracion clara. Mas bien quizas no existe.

Ahora, en lo personal me dedico a buscar por el lado de la cobertura perfecta que proporcia el cruze de los dos simbolos mencionados (por eso que tengo el eurgbp en el chart. Lo podria resumir asi.... a pesar que los movimientos pasan los miles de pips y que desde junio 2008 al presente esos simbolos no hay vuelto al punto zero... si en 2008 hubiese entrado largo en el eurusd (comprando euros) corto en el gbpusd (comprando usd) y corto en el eurgbp (comprando gbp) , tendria en cartera las 3 monedas y por consecuencia no habria ganado ni perdido Nunca desde el 2008 (evidente que perdi el spread al entrar y los swaps durante todo el tiempo) .

Ahora... para los mas estudiosos y/o academicos en numeros... No sera que el cruze (eurgbp) sea una figura de cointegracion ?????.. depues todo el trio se mueve en equacion muy eficiente todo tiempo.

J.
Adjuntos
trio 2.png
forex wisdom org
jeuro12
 
Mensajes: 1010
Registrado: 09 Feb 2012, 08:49
Karma: 9

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

Notapor FXWizard » 12 Ene 2016, 00:47

Para los que queráis saber un poco más sobre el tema, os recomiendo este artículo:

http://www.x-trader.net/articulos/tradi ... acion.html

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Siguiente

Volver a Estrategias de Trading

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron