La Importancia de R

Foro genérico sobre programas relacionados con el trading: gráficos, ejecución de órdenes, automatización, etc.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 10799
Registrado: 06 Sep 2004 10:18
Contactar:

La Importancia de R

Mensaje por X-Trader » 01 Dic 2016 10:23

Hoy estoy en un curso sobre Big Data que se ha organizado en mi Facultad y me ha llamado la atención esta noticia que ha citado el ponente: hace unos meses Microsoft anunció que R pasaba a ser su lenguaje para desarrollo de proyectos de data mining y análisis de big data, creando incluso una distribución propia de R y que podéis encontrar en este enlace:

https://mran.microsoft.com/open/

E incluso un desarrollo para aplicaciones corporativas denominado Microsoft R Server:

https://www.microsoft.com/en-us/cloud-platform/r-server

Os iré contando más en detalle cosas que vea por aquí ;)

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."

bugler1
Mensajes: 876
Registrado: 04 Dic 2013 08:56

Re: La Importancia de R

Mensaje por bugler1 » 01 Dic 2016 10:42

Curioso.

Yo empecé con R (me saqué 5 de las 10 certificaciones de una especialización de R en coursera) pero ahora estoy con
python que pienso que es un lenguaje muy superior a R.
R en sí, no es un lenguaje de programación sino que esta totalmente especializado al tema estadistico.
Además es engorroso en extremo. Y las funciones son feas de narices.

Por suerte Tensorflow se programa en python con lo que siento que he acertado con el tema python.
Spark y demas herramientas big data se programan (entre otros lenguajes como java, scala, ...) en python tambien.
La potencia de python es algo indescritible. Supongamos que para ciertas funciones que realizan calculos pesados quieres que el resultado de ese calculo se grabe en el disco duro para solo hacerlo una vez. En el resto de lenguajes (que yo sepa) tienes que cambiar las tripas de cada funcion una a una y añadir un codigo especifico para cada funcion. En python haces una funcion separada que graba el resultado a disco y para cada una de las funciones donde quieres que se grabe el resultado pones una linea de codigo que precede a la definicion de esas funciones y ya esta. Algo asi como: @funcion_de_grabar
Es la leche de potente.

Me sorprende esto de microsoft que en Inteligenia Artificial son muy buenos (aunque su marketing hace aguas y nadie se entera).



Avatar de Usuario
X-Trader
Administrador
Mensajes: 10799
Registrado: 06 Sep 2004 10:18
Contactar:

La Importancia de R

Mensaje por X-Trader » 01 Dic 2016 11:03

Ostras Bugler1, pues no eres el primero que me lo comenta, de hecho Tiotino está en esa onda, así que supongo que cuando termine el tutorial sobre R me adentraré... en el maravilloso mundo de Python aplicado al trading ;).

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."

bugler1
Mensajes: 876
Registrado: 04 Dic 2013 08:56

Re: La Importancia de R

Mensaje por bugler1 » 01 Dic 2016 11:16

Ambos lenguajes tienen una curva de aprendizaje cañera.
Yo he programado en muchos lenguajes y con estos dos he alucinado (y sigo peleandome con python que es extremadamente versatil y complejo)
Una de las complejidades de ambos es el pasar de operaciones componente a componente de un vector/matriz a operaciones de todas los componentes de gollpe.
Se acabó casi del todo el mega-usado: for i in ....
Con estos lenguajes en pocas lineas haces lo que antes llevaba mucho curro.
y ademas mucha potencia de calculo con pocas lineas que para mi es nuevo y que no se explica en muchos libros de python



Avatar de Usuario
h4x0r
Mensajes: 454
Registrado: 08 Sep 2015 21:23

Re: La Importancia de R

Mensaje por h4x0r » 01 Dic 2016 12:19

No tenía ni idea de esto X-trader.
La única pega de R es que no soporta un dataset con miles de millones de registros, ahí peta. Por eso es muy muy bueno para hacer análisis de datos pero no tanto cuando queremos hacer Big Data a lo grande. Me pregunto si los de Microsoft habrán solucionado esto, es posible. La comunidad de R está creciendo de modo exponencial. De echo por ahí debe de estar el gráfico de los paquetes creados para R por la comunidad y crecía exponencialmente.

Sobre python.. poco que decir, el sólo se sabe defender. Es entrañable y versátil. Mi proyecto de fin de carrera lo hice en python (una red de botnets) y lo sigo usando también para el análisis de datos. Aunque me gusta más R, python sin duda es más potente. Lo ideal para un científico de datos es conocer más de un lenguaje a modo de arsenal de herramientas.

Yo hace tiempo que me enfoqué en los lenguajes que practico y estudio: C++,MySQL,Java,Python,R



Avatar de Usuario
Tiotino
Mensajes: 981
Registrado: 20 Sep 2004 18:22

Re: La Importancia de R

Mensaje por Tiotino » 01 Dic 2016 21:28

Hola a todos !!!

Estoy de acuerdo con bugler1, tengo buenos conocimientos de econometria y estaddística, pero no de programación, puedo dedicar mas tiempo a sacar información q a programar.


Una herramienta como Ipython me parece una maravilla, ahora esto del machine learning me parece como de primaria ;-) ;-) ;-) ;-) ;-) ;-) ;-)


Un abrazo

Tiotino

https://tradingpython.blogspot.com.es

@tiotino

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10799
Registrado: 06 Sep 2004 10:18
Contactar:

Re: La Importancia de R

Mensaje por X-Trader » 01 Dic 2016 21:35

Vamos que si h4x0r y Tiotino lo dicen, habrá que pasarse a Python :D, ahora que me estaba acostumbrando a R :smt009.

Bueno voy a ver si descubro su potencial, ¿alguna recomendación para iniciarse y trastear un poco?

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
Tiotino
Mensajes: 981
Registrado: 20 Sep 2004 18:22

Re: La Importancia de R

Mensaje por Tiotino » 01 Dic 2016 21:53

Hola jefe !!

instalate anaconda y luego las librerias

tambien lo puedes hacer en la web con wakari.io pero no te funciona ta-lib


Un abrazo

Tiotino

https://tradingpython.blogspot.com.es

@tiotino

Avatar de Usuario
Tiotino
Mensajes: 981
Registrado: 20 Sep 2004 18:22

Re: La Importancia de R

Mensaje por Tiotino » 01 Dic 2016 21:58





Un abrazo

Tiotino

https://tradingpython.blogspot.com.es

@tiotino

Avatar de Usuario
h4x0r
Mensajes: 454
Registrado: 08 Sep 2015 21:23

Re: La Importancia de R

Mensaje por h4x0r » 02 Dic 2016 01:37

X-Trader escribió:Vamos que si h4x0r y Tiotino lo dicen, habrá que pasarse a Python :D, ahora que me estaba acostumbrando a R :smt009.

Bueno voy a ver si descubro su potencial, ¿alguna recomendación para iniciarse y trastear un poco?

Saludos,
X-Trader
Esto es lo mejor:
https://www.datacamp.com/

Los capítulos tienen un coste a excepción de algunos. Pero creo que merece la pena ;)



Avatar de Usuario
cls
Mensajes: 1269
Registrado: 24 May 2007 18:46
Ubicación: Zion

Re: La Importancia de R

Mensaje por cls » 02 Dic 2016 09:07

Intervengo aquí porque se me ocurre que es un buen lugar para pedir ayuda en este tema, pero si X-Trader quiere cambiarlo de sitio, adelante.

Hace unos meses participé en una colaboración con unos data miners que investigaban series de precios + delta (volumen de órdenes a mercado: ask-bid). Lamentablemente no tuve contacto directo con ellos aunque yo les suministraba los datos, pero sí se me dijo que habían obtenido resultados espectaculares con sus pruebas de minería. Para más lamento, los mineros se esfumaron y el proyecto se detuvo. Lógicamente me quedé con las ganas de haber implementado un sistema para ver si los resultados prometidos se cumplían.

Me puedo considerar un programador no excesivamente malo y automatizar casi cualquier cosa, pero de minería de datos y demás temas relacionados no soy experto y me llevaría unos cuantos meses dar los primeros pasos y no digo ya adquirir la suficiente experiencia para analizar profesionalmente y con garantía estas series de datos.

Así que si algún experto en estos temas quisiera analizar series con estas características (en realidad son series más completas ya que incorporan lecturas de liquidez) por si pudiera encontrar patrones explotables o predicciones, pues encantado de proporcionar todos los datos necesarios y programar un sistema para beneficio mutuo.

Pongo una imagen del indicador del que obtendría los datos. Las series serían las del resumen inferior, donde están los datos de level1 o demanda: ask, bid, delta, así como del level2 u oferta: abastecimiento/retirada de limitadas en el bid y en el ask. Y aparte también el ohlcvt de todas las barras.

Es decir, que se dispondría del precio (ohlc) y de todas las fuerzas (oferta vs demanda) que están actuando en cada barra. Igual me equivoco, pero si de aquí no sale algo bueno, no sale de ningún sitio. Quiero decir, que está muy bien analizar sólo el ohlcv como hacen la mayoría de estudios (hasta ahora no he encontrado ningún paper de bigdata o machine learning que se base en poco más que el close), con resultados dispares por cierto; pero con el ohlc sólo se analiza el efecto. Analizando la oferta+demanda estaríamos analizando las auténticas causas que provocan los movimientos del precio.

La serie podría estar formada por registros con una estructura similar a ésta (para cada barra un registro):

open;high;low;close;volume;time;demandBid;demandAsk;supplyBid;supplyAsk

time: tiempo de desarrollo de la barra. Ya que suelo trabajar con barras de rango, este time es variable.
demandBid: volumen de todas las órdenes a mercado de venta en la barra.
demandAsk: volumen de todas las órdenes a mercado de compra en la barra.
supplyBid: indica el comportamiento de las órdenes limitadas en el BestBid. Si es positivo, es que se ha abastecido indicando sentimiento alcista. Y si es negativo, se ha retirado liquidez indicando sentimiento bajista.
supplyAsk: indica el comportamiento de las órdenes limitadas en el BestAsk. Si es positivo, es que se ha abastecido indicando sentimiento bajista. Y si es negativo, se ha retirado liquidez indicando sentimiento alcista.
omega: valor global de la interacción demanda vs oferta. Si es positiva, sentimiento alcista y bajista si es negativa.

Por ahora la liquidez sólo la contemplo en el ladder 0 del orderbook, en la horquilla, pero también se podrían añadir más ladders.

He echado un vistazo al ecosystem de R y de librerías de Python en estos temas y un mundo se queda pequeño. Así que lo dicho, si alguien ya conoce estos temas y tiene interés en hacer el análisis que me contacte y lo vemos. Gracias.
Adjuntos
2016-12-02_8-32-52.jpg



Avatar de Usuario
Tiotino
Mensajes: 981
Registrado: 20 Sep 2004 18:22

Re: La Importancia de R

Mensaje por Tiotino » 02 Dic 2016 11:03

Este es un tema muy parecido al de identificar números.

Se trata de identificar un número o patrón y luego ver que rentabilidad se obtiene con él.

Hay bastantes desarrollos en deep learning :idea:


Un abrazo

Tiotino

https://tradingpython.blogspot.com.es

@tiotino

Avatar de Usuario
h4x0r
Mensajes: 454
Registrado: 08 Sep 2015 21:23

Re: La Importancia de R

Mensaje por h4x0r » 02 Dic 2016 11:56

cls escribió:Intervengo aquí porque se me ocurre que es un buen lugar para pedir ayuda en este tema, pero si X-Trader quiere cambiarlo de sitio, adelante.

Hace unos meses participé en una colaboración con unos data miners que investigaban series de precios + delta (volumen de órdenes a mercado: ask-bid). Lamentablemente no tuve contacto directo con ellos aunque yo les suministraba los datos, pero sí se me dijo que habían obtenido resultados espectaculares con sus pruebas de minería. Para más lamento, los mineros se esfumaron y el proyecto se detuvo. Lógicamente me quedé con las ganas de haber implementado un sistema para ver si los resultados prometidos se cumplían.

Me puedo considerar un programador no excesivamente malo y automatizar casi cualquier cosa, pero de minería de datos y demás temas relacionados no soy experto y me llevaría unos cuantos meses dar los primeros pasos y no digo ya adquirir la suficiente experiencia para analizar profesionalmente y con garantía estas series de datos.

Así que si algún experto en estos temas quisiera analizar series con estas características (en realidad son series más completas ya que incorporan lecturas de liquidez) por si pudiera encontrar patrones explotables o predicciones, pues encantado de proporcionar todos los datos necesarios y programar un sistema para beneficio mutuo.

Pongo una imagen del indicador del que obtendría los datos. Las series serían las del resumen inferior, donde están los datos de level1 o demanda: ask, bid, delta, así como del level2 u oferta: abastecimiento/retirada de limitadas en el bid y en el ask. Y aparte también el ohlcvt de todas las barras.

Es decir, que se dispondría del precio (ohlc) y de todas las fuerzas (oferta vs demanda) que están actuando en cada barra. Igual me equivoco, pero si de aquí no sale algo bueno, no sale de ningún sitio. Quiero decir, que está muy bien analizar sólo el ohlcv como hacen la mayoría de estudios (hasta ahora no he encontrado ningún paper de bigdata o machine learning que se base en poco más que el close), con resultados dispares por cierto; pero con el ohlc sólo se analiza el efecto. Analizando la oferta+demanda estaríamos analizando las auténticas causas que provocan los movimientos del precio.

La serie podría estar formada por registros con una estructura similar a ésta (para cada barra un registro):

open;high;low;close;volume;time;demandBid;demandAsk;supplyBid;supplyAsk

time: tiempo de desarrollo de la barra. Ya que suelo trabajar con barras de rango, este time es variable.
demandBid: volumen de todas las órdenes a mercado de venta en la barra.
demandAsk: volumen de todas las órdenes a mercado de compra en la barra.
supplyBid: indica el comportamiento de las órdenes limitadas en el BestBid. Si es positivo, es que se ha abastecido indicando sentimiento alcista. Y si es negativo, se ha retirado liquidez indicando sentimiento bajista.
supplyAsk: indica el comportamiento de las órdenes limitadas en el BestAsk. Si es positivo, es que se ha abastecido indicando sentimiento bajista. Y si es negativo, se ha retirado liquidez indicando sentimiento alcista.
omega: valor global de la interacción demanda vs oferta. Si es positiva, sentimiento alcista y bajista si es negativa.

Por ahora la liquidez sólo la contemplo en el ladder 0 del orderbook, en la horquilla, pero también se podrían añadir más ladders.

He echado un vistazo al ecosystem de R y de librerías de Python en estos temas y un mundo se queda pequeño. Así que lo dicho, si alguien ya conoce estos temas y tiene interés en hacer el análisis que me contacte y lo vemos. Gracias.
Hola cls,
Precisamente eso mismo que planteas es lo que tenía pensando hacer para mi proyecto de fin de master. Yo soy Ingeniero Informático y además estoy cursando un master de Big Data y Data Science para Finanzas en un escuela de Finanzas. La idea que tenía para mi proyecto de fin de master era hacer data mining y machine learning sobre el level I y level II, justamente el gráfico de footprint que pones. También soy de los que piensa que si allí no encuentras un edge no lo encuentras en ningun sitio ya. Por eso tenía mucho interés en hacerlo sobre esos datos que son los que finalmente componen el precio, y no hacerlo directamente con el precio que es lo que hace la mayoría sin grandes resultados.

Opero todos los días con cuenta real el futuro ES tomando las decisiones a través del análisis bid/ask.
Soy de Madrid, si estás interesado y te gustaría que trabajásemos juntos en este proyecto, podemos verlo.
Obviamente si sacamos algo interesante no sería para presentarlo para mi trabajo de fin de master, eso nos lo quedamos para nosotros ;-) a ellos le presentaré la versión capada o algo así.

Mis conocimientos de Data Mining, Machine Learning entre otros... ahora mismo son pocos. No soy ningún experto de momento. Pero te puedo garantizar que voy a ir subiendo como la espuma en los próximos meses. Pero una gran diferencia entre yo y un experto en Data Mining a secas, es precisamente que este último probablemente no conozca el comercio, y no entienda ni si siquiera un gráfico de footprint. Es muy importante para la persona que estudie el asunto en cuestión sea un gran conocedor del negocio sobre el que está tratando de hacer data mining. Yo conozco el comercio, al igual que tú, además inclusive ya tengo localizados algunos patrones sobre gráficos footprint que creo que son tan evidentes que un estudio de data mining sobre los datos correctos los sacarían a la luz.

Un error muy común es considerar sólo como datos las órdenes a mercado, debemos meter también las órdenes limitadas para hacer un correcto análisis. Efectativamente, es justamente lo que comentabas level I + level II.
Con esto ya tenemos los datos reales que van componiendo el precio que luego vemos en nuestros gráficos.

Los dos queremos hacer lo mismo, si te interesa mándame un PM, y vemos que a que acuerdo llegamos.
Incluso en mi cabeconería de tener la mejor data me estuve planteando de contratar este servicio de CME, echale un ojo porque alomejor nos interesa esto más que los que podemos sacar nosotros de nuestro proveedor de datos, en mi caso CQG http://www.cmegroup.com/market-data.html

Yo ya empecé con la primera parte del proceso. Que es el preprocesado de la información, estoy intentando pasar los datos de mi GomRecorder (Gom VolumeLadder) a un fichero entendible para cargarlo luego desde R o Python.

Saludos
Última edición por h4x0r el 02 Dic 2016 13:51, editado 1 vez en total.



Avatar de Usuario
cls
Mensajes: 1269
Registrado: 24 May 2007 18:46
Ubicación: Zion

Re: La Importancia de R

Mensaje por cls » 02 Dic 2016 13:29

Tiotino escribió:Este es un tema muy parecido al de identificar números.

Se trata de identificar un número o patrón y luego ver que rentabilidad se obtiene con él.

Hay bastantes desarrollos en deep learning :idea:

Buenas Tiotino,
de eso se trata. En NT8 ya se dispone de delta histórica y se podría plantear un sistema que busque patrones de demanda en histórico. Pero con la oferta no.
Esos datos (demanda + oferta) se pueden sacan en tiempo real o desde el market replayer. La idea era bajar esos datos y pasarlos por algún programa estadístico o de bigdata que encuentre patrones o haga predicciones con esos datos. Los datos se extraerían de NT8, y el análisis en R o Python.
Luego una vez detectadas las señales a explotar, se automatizaría en NT8 o directamente via api con algún bróker+datafeed. Los datos y la automatización la pongo yo, me faltaría el análisis.
La idea es encontrar a alguien que maneje bien esos programas de deep learning para analizar estos datos.



Avatar de Usuario
cls
Mensajes: 1269
Registrado: 24 May 2007 18:46
Ubicación: Zion

Re: La Importancia de R

Mensaje por cls » 02 Dic 2016 13:33

h4x0r escribió: Hola cls,
Precisamente eso mismo que planteas es lo que tenía pensando hacer para mi proyecto de fin de master. Yo soy Ingeniero Informático y además estoy cursando un master de Big Data y Data Science para Finanzas en un escuela de Finanzas con gran reconocimiento. La idea que tenía para mi proyecto de fin de master era hacer data mining y machine learning sobre el level I y level II, justamente el gráfico de footprint que pones. También soy de los que piensa que si allí no encuentras un edge no lo encuentras en ningun sitio ya. Por eso tenía mucho interés en hacerlo sobre esos datos que son los que finalmente componen el precio, y no hacerlo directamente con el precio que es lo hace la mayoría sin grandes resultados.
...

Yo ya empecé con la primera parte del proceso. Que es el preprocesado de la información, estoy intentando pasar los datos de mi GomRecorder (Gom VolumeLadder) a un fichero entendible para cargarlo luego desde R o Python.

Saludos

Buenas h4x0r,
nada que añadir, coincidimos plenamente.
En cuanto al indicador de gom pásate a NT8 que ya tienes histórico de bid-ask y no hay que grabar nada. En el foro de NT8 hay un indicador que plotea la delta acumulada (creo que de un forero llamado Sim22) y te sirve para ver los datos de demanda al menos. Y bajarlo al fichero es poco más de una línea que añadir al código.




Responder

Volver a “Software”