Rankia España Rankia Argentina Rankia Brasil Rankia Chile Rankia Colombia Rankia Czechia Rankia Deutschland Rankia France Rankia Indonesia Rankia Italia Rankia Magyarország Rankia México Rankia Netherlands Rankia Perú Rankia Polska Rankia Portugal Rankia Romania Rankia Türkiye Rankia United Kingdom Rankia USA
Acceder
Blog Punk Trading
Blog Punk Trading
Blog Punk Trading

Trading con Matlab y/o Python

Siempre hay una razón para todo, incluso para ser un Bloguero Muerto.

La razón es el proyecto en el que estoy involucrado desde hace unos meses (en realidad desde hace un par de años) para desarrollar una plataforma de análisis estadístico de mercados y trading automático.

Estoy aburrido de vigilar valores y de aplicar siempre la misma técnica en el trading intradía, con la consiguiente pérdida de tiempo, desgaste y traiciones a uno mismo. Siempre he pensado que lo que yo hago, lo podría hacer mejor que yo un ordenador. Si esto estuviera sujeto a variables físicas, uno podría cojerle el tranquillo como se lo coje al alpinismo o a montar en moto.

el problema es que esto hace lo que le da la gana, y es por lo tanto imposible sacarle dinero sin una aproximación basada en un enfoque estadístico. Punto.

En mi opinión, es completamente innecesario, y realmente contraproducente leer la prensa económica, excepto para sondear el optimismo o pesimismo del mercado, y eso también lo puede hacer un ordenador.

Por todo ello, y tras muchos intentos fracasados, he decidido ponerme en serio y creo que esta vez es la buena.

Gracias al empujón de un amigo, que al día siguiente de comentarle la idea se puso a programar en Matlab las primeras funciones, estamos tres personas trabajando en el proyecto, poco a poco, pero haciendo avances.

Os pediría, a todos los que estéis embarcados en cosas paredidas que empezáramos a contrastar opiniones, éxitos y fracasos. Nunca he sido muy bueno en los deportes, y competir con equipos de físicos, matemáticos y los probablemente masturezos de sus jefes se me antoja muy complicado.

Podríamos utilizar algún foro de Rankia sobre este tema, alguno hay pero no he encontrado comentarios muy técnicos,

Me interesaría mucho la opinión de desarrolladores en cualquier tipo de lenguaje, nosotros hemos elegido Python por razones que os contaré en el siguiente Post.

Me interesa mucho la opinión de cualquiera, mientras no diga estupideces muy gordas.

 

Gracias de antemano.

22
¿Te ha gustado mi artículo?
Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico
Lecturas relacionadas
  1. #21
    05/12/11 14:32

    Gracias a todos por los comentarios.

    El desarrollo lo comenzamos en Matlab, y después de varias funciones programadas, incluida la de conexión a la tws (interfaz de Interactive Brokers) empezamos a darnos cuenta de que el error handling en Matlab era complicado, especialmente cuando Matlab se encontraba procesando datos.
    Buscando y rebuscando, empecé a encontrar comentarios que hacían referencia al mismo problema. Matlab es bueno para implementar funciones de cálculo, pero para el procesamiento de datos y toma de decisiones en tiempo real presenta ciertos problemas.
    Finalmente di con el blog de un programador en el que contaba que después mucho tiempo implementando funciones en Matlab abandonó el lenguaje y se pasó a Python.
    Decidimos por tanto usar esa experiencia en carnes ajenas y, ya que aun estamos en una 'early stage' del desarrollo, movernos a Python.

    Por ahora la cosa pinta muy bien, Python es realmente versátil y permite gestionar excepciones de una forma relativamente sencilla. Ahora el mayor de nuestros problemas la curva de aprendizaje, aunque espero salver ese escollo en un breve plazo de tiempo. De hecho, uno de mis colaboradores ya va lanzado y tiene listo a día de hoy un visor y probador de estrategias bastante funcional.

    En un próximo post contaré los detalles del cambio.

    Gracias de nuevo, y un saludo.

  2. en respuesta a Tonymor
    -
    #20
    amfm5
    04/12/11 11:21

    Creo que ya te han contestado. Si quieres usar Python para lo que usas matlab, debes utilizar el modulo numpy, scipy y otros más. Puedes hacer cálculos, pltotear funciones, etc. Pero yo no lo uso para eso.

  3. #19
    03/12/11 19:42

    Para los que dicen que Python no es adecuado para cálculo numérico están algo desactualizados. Lo cierto es que Python tiene paquetes muy interesantes como NumPy, SAGE, Orange, Sympy, etc... y una alternativa a no sólo a Matlab sino también a Mathematica o Maple. Aunque es cierto que la sintaxis "vectorial" de Matlab/Octave a veces se echa de menos...

  4. en respuesta a ofiuco
    -
    #18
    Migueln
    03/12/11 14:11

    Y el factor humano que lo descabala todo. El miedo y la codicia exagerando los movimientos en determinados momentos... (teoría de los cisnes negros)

    Saludos

  5. en respuesta a amfm5
    -
    #17
    03/12/11 13:20

    El calculo matemático que hace matlab, no lo hace Python. Son cosas muy distintas.

  6. #16
    dfr38
    03/12/11 13:18

    hola, yo he usado R tambien, y de hecho programé algunos sistemas de entrada en mercado de acciones, pero más como una curiosidad ya que me gusta programar, aunque últimamente he perdido un poco las ganas de programar. El enfoque es totalmente estadístico y de hecho yo soy estadístico (tengo la carrera de Ciencias Estadísticas). No basta con tener un sistema que te de entradas (sean mediante el estudio del caos o cualquier lógica físico-matemática) sino de como gestionar los aciertos y desaciertos, aplicar stoploss, stoploss moviles, trailing stops, etc... pues la lógica solo funciona cuando el mercado es racional hasta que llega la irracionalidad y lo desbarajusta todo.
    Aquí un post que dejé en el foro: https://www.rankia.com/foros/bolsa/temas/988719-gestion-capital

    Prefiero tomar decisiones discrecionales (decisiones subjetivas) y aplicar buena gestión del capital que armarme en programar sistemas. No solo basta programar entradas sino salidas, stops....
    Para no pasar muchas horas frente a la pantalla uso un smartphone y seguimiento de pautas de correlación entre distintos futuros (opero mayormente futuros) aunque luego muchos trades sean intradía.

    s2!

  7. #15
    03/12/11 13:18

    Hola,
    Hace un año que tengo esa intención, aunque aparcada en las tareas para realizar.
    Mi elección fueron Java y Matlab o posiblemente R.
    La plataforma Linux (debian o Ubuntu server).
    Todo ello para operar en Forex. La elección de java, fue que hay varias plataforma que trabajan en Java y puedes integrar directamente tu programa en ellas. Pienso que Python también puede ser una buena opción, pero debe insertar ordenes de compra y venta automáticas.

    Matlab es para el cálculo matemático. En un comentario se compara Matlab on Python, son cosas muy distintas, cada uno a su trabajo. Otra opción es R, dado que así lo integro todo en Linux.
    La plataforma Linux, muy sencillo como servidor trabaja mejor que Windows, además es gratis.

    Todo muy bonito. Aunque de momento solo es una idea.

  8. en respuesta a amfm5
    -
    #14
    amfm5
    03/12/11 11:16

    Ahora bien, el dejar que un programa automático de trading se encavrgue de todo, es muy peligroso. Y respecto al trading de alta frecuencia, vas a tener que competir con bancos que tienen superordenadores instalados junto a la propia bolsa para llegar antes que tú. Supongo que ya lo sabes. La DTB, por ejemplo ya tiene equipos instalados para eso en USA.

  9. #13
    amfm5
    03/12/11 11:04

    Hola. Con Python sí se puede, tiene una enorme cantidad de recursos de todo tipo. En este caso, sobre todo el urllib que te permitiría seguir las cotizaciones en tiempo real y si lo prgramas bien, incluso la API para interactuar con tu plataforma de trading. Eso en matlab ni lo sueñes. Matlab es para matrices, y modelos matemáticos. Está muy por debajo de python en sus posibilidades. Con python podrías incluso programar avisos automáticos por email (y por ende por Sms)?
    Por cierto que python hace todo lo que puede hacer matlab, así que no hay color.

  10. en respuesta a Ferrantatachan
    -
    #12
    03/12/11 11:03

    Buen apunte Ferran!! :)

  11. #11
    03/12/11 11:02

    Hola!

    Mira te paso un post en el que colaboré hace tiempo en x-trader sobre la cointegración, me animé y empecé a programar cosas en R, en matlab etc tratando de desentrañar toda la movida. Ahi va:

    http://www.x-trader.net/foro/viewtopic.php?f=9&t=13263&hilit=cointegraci%C3%B3n

    Creo que era este.. :).

    Saludos,

  12. #10
    03/12/11 00:44

    Hace años use un software libre, made in spain llamado Topmodel. Permitía un manejo increíble de series temporales con redes bayesianas..hice cosas pero no concluyentes, demasiado esfuerzo y ningún resultado positivo previsiones.
    Mas tarde use R. Tiene una posibilidades enormes, y muchas librerías ya programadas complejas y listas para el consumo, pero no se adaptaba a mis objetivos
    . Al final me decante por hacerlo con vb.net, es poderoso y versátil. Yo estoy contento, pero me ha costado años hacer un modelo decente y robusto.
    Como resumen del esfuerzo os diré que cuanto mas simple mejor es el sistema, y que la complejidad no hay que buscarla en formulas mágicas sino en conceptos innovadores y que no se ofrezcan por ninguna casa comercial.
    Yo he tirado mas hacia la gestión de los datos, que hacia la formulación compleja y creo que es un buen camino.

  13. #9
    02/12/11 23:54

    la ventaja de matlab es que ya tienes muchas funciones y librerias corriendo. tengo curiosidad entonces por saber por que tirasteis por python. quizas precisamente por rapidez de compilado.. interficie con fuentes de datos...no se.

    pero estoy de acuerdo contigo, ni teorias fractales, ni caos, ni gaitas, el enfoque deberia ser estadistico.

  14. #8
    02/12/11 22:35

    hace muchos años un compañero de escuela propuso hacer su doctorado en una red neuronal para jugar en bolsa... no acabó en el manicomio pero el proyecto lo tuvo que dejar. Era bueno, pero el sistema neuronal no aprende por si mismo y cuando empiezas a tenerlo bien ponderado, de repente una noticia política te rompe toda la estuctura dejando sin sentido todos los factores de correlacion de tu mallado.
    Tal y como va el mundo... te pones forexlive, carpatos y esperas a las 11 por si acaso. Hace un trade en el valle de la una y pico hasta las 3 y cuarto y luego, a las 6 cuando estamos cerrados aqui, ya tienes la tendencia de sp, aussie y euro hasta las 9 de la noche...
    Ni indicadores, ni gaitas. Noticias, seguimiento de la evolucion de datos macro americanos y horas valle del mercado...
    (aunque siempre mola que alguien se acuerde de matlab, jejeje)

  15. #7
    02/12/11 22:31

    Mi comentario es referente al enfoque matemático. Tratándose de mercados financieros pienso que el enfoque, lejos de ser estadístico, debería ser de carácter fractal y posiblemente aplicando cualquier herramienta de las existentes en al Teoría del Caos. Sé que esto no ayuda mucho si no conoces esta rama de las matemáticas, pero estoy seguro que en esto foros hay algún "talento" que tiene algunos conocimientos. Las distribuciones estadísticas no parecen funcionar bien con los mercados financieros. Sin embargo los factores del Caos abundan en Bolsa: análisis multivariable, no linealidad y alta sensibilidad. Suerte y mantenednos informados.

  16. #6
    Migueln
    02/12/11 21:12

    Buenas noches,

    A mí también me interesa. De hecho Matlab se usa para aplicar modelos de valoración de opciones.

    No conozco ninguno de los dos lenguajes, aunque me dedique a la programación de manera profesional durante varios años.

    Si os ubicais en Madrid, no me importaría colaborar.

  17. en respuesta a Phonguz
    -
    #5
    02/12/11 11:25

    Cierto, está claro que no es algo trivial cuando hay equipos enteros de matemáticos e ingenieros diseñándolos trabajando para los bancos y entidades financieras. Sin embargo, a mí lo que me mueve es el hecho de que para lo que los bancos es ruido, para un particular es un sueldo. No es lo mismo colocar miles de órdenes sin que el mercado se entere, etc... que operar con poco volumen y muy alta frecuencia. Simplemente negociando 1 contrato en el e-mini es posible sacar un rédito muy decente al mes, a base de operaciones de bajo riesgo. Lo mismo en Forex, las 'patas' son lo suficientemente largas como para que la cosa funcione.

    Ya os iré contando...

    Saludos

  18. #4
    02/12/11 00:34

    De sistemas automáticos se han escrito infinidad y todos terminan fallando. Seguramente hay algunos funcionando, por lo menos hay infinidad de gente que vive de crearlos, pero son secretos bien guardados.
    Lo que si es seguro es que hasta que no se prueba no se sabe si funciona. Adelante con el proyecto. Estaremos en contacto.

  19. #3
    01/12/11 15:52

    Hace tiempo tuve una reflexión parecida y decidir utilizar la estadística para el trading. Normalmente como lenguaje de programación utilizo R. Lo bueno de este software es que es gratuito y contiene gran cantidad de librerías financieras. Como bien dices seria interesante abrir un foro sobre como enfocar la estadística al trading.

  20. #2
    01/12/11 01:42

    Me interesa el tema, Python me parece un lenguaje acertado ya que es fácil de aprender, ya nos irás contando y si se puede colaborar, ya me dirás cómo.

Sitios que sigo

Te puede interesar...
  1. Tomando un café con Mr Taleb en Zúrich
  2. Tonteando con el 'Big Data'
  3. Trading con Matlab y/o Python
  4. Hablando de mierdas... Mi primera experiencia en Bolsa con Chicharros y Porqué Empecé a Especular
  5. A vueltas con el Blog, nueva vida en Zurich y Recordando Ciclos PI
  1. Trading con Matlab y/o Python
  2. Tonteando con el 'Big Data'
  3. Hablando de mierdas... Mi primera experiencia en Bolsa con Chicharros y Porqué Empecé a Especular
  4. Soy Mega Alcista
  5. No hay Miedo