Burbutrading, desarrollo de una aplicación caza-gangas

Cui Bono

So far, so good
Desde
19 Jul 2007
Mensajes
29.850
Reputación
51.551
BurbuTrading, librería abierta a colaboraciones.

GitHub - toledanos/burbutrading: Analizador de datos de buy/ask, datamining para predecir tendencias o comportamientos de los agentes que influyen en un valor.

Discusión en este hilo o en:
Issues · toledanos/burbutrading · GitHub

Analizador de datos buy/ask en mercados de oferta y demanda, enfocado a mercados con cryptomonedas o tokens.

El objetivo es hacer datamining para estudiar las tendencias del valor o los comportamientos de los que cuidan del valor.

Con mayor frecuencia que en otros mercados, como el mercado de valores de Bolsa, el mercado de las cryptos tiene agentes que alteran con fuerza el cruce entre oferta y demanda, entre los que están:

- Los que poseen grandes cantidades de bitcoins u otras criptomonedas maduras y los invierten en tokens. Su poder de arrastre de las cotizaciones es enorme y eso les obliga a dejar rastro en las frecuencias y en las distribuciones reflejados en los datos buy/ask.

- Los que poseen posiciones fuertes de una moneda en una region y en esa región hay un cambio político que los arrastra a otros productos.

- Los que están atrapados en un exchange (un exchange es un sitio web en donde se cambian diferentes monedas, incluso dólares, euros y otros activos FIAT). Si una cryto es "endémica" de un exchange y hay una fuerte tendencia bajista o alcista, el resto de valores de ese mismo exchange tenderán a tener una diferencia notable en precio con el mismo producto de otros exchanges. Esto es debido a que hacer un carry-trade entre exchanges no es inmediato, tiene comisiones y la moneda que provoca todo esto puede estar en fuerte estado de iliquidez o incluso, de pánico.

- Los "cuidadores" de las ICO. Una ICO (Initial Coin Offer) es un proyecto empresarial en el que se reparten unos "tokens" que tienen valor en sí mismos porque dan derecho a servicios futuros o porque podrán ser comprados por otros para tener esos derechos

Existen muchas razones que nos pueden llevar a necesitar alguna herramienta de cruce de valores entre cotizadas, en el mismo exchange u otros, y hacer operaciones matemáticas inusuales o que sean engorrosas. Esta libreria y set de aplicaciones viene a facilitar la identificación de las alteraciones de mercado que puedan constituir una oportunidad de negocio.
Lo que es BurbuTrading

BurbuTrading es un conjunto de aplicaciones y una librería que toma datos CSV de diferentes valores y diferentes exchanges y permite datamining sobre los mismos. Un CSV (Comma Separated Value) es un archivo de texto con valores separados por comas. Los exchange suelen facilitarlos.

Estará escrito en lenguaje PHP, con enfoque de classes (OOP, orientado al objeto).

La salida de datos es númerica (pantalla), serial (json) y gráfica (la librería elegida es jpgraph). Otras salidas son posibles, claro, pero al menos esas tres estarán disponibles en la rama principal.

Lo que no es BurbuTrading

BurbuTrading no pretende tener un front-end bonito.

BurbuTrading no pretende ser una herramienta de trading de alta frecuencia.

BurbuTrading puede ser todo ésto o más, y ser tomado por otros fines, para lo cual, efectuarán un fork o un branch, si así lo estiman, pero el enfoque de la rama principal es puramente matemático y amigable a operación en terminal, sin aderezos y grandes pretensiones que al final suelen ser un lastre para el desarrollo.

Instrucciones

En un sistema Linux con PHP instalado, instalad git:

Código:
   $ sudo apt-get install git

Elegid un directorio (carpeta) donde ponerlo y descargar el proyecto:

Código:
    $ git clone https://github.com/toledanos/burbutrading

Ejecutad el test:

Código:
    $ php main.php

Hay otro test, para probar el parsing de archivo:

Código:
    $ cd class/csv
    $ php test_csv.php

Actualmente el test principal consiste en una salida numérica en pantalla, a partir de un archivo descargado de Bitfinex sobre el par EOS/BTC. Las aplicaciones podrán usarse tambien en entornos Windows y Mac, pues GIT y PHP esta disponible en ellos.
 
Última edición:
Actualización:

En la actualidad, la librería ya puede procesar archivos RAW generando un archivo JSON con más variables y, a partir de este archivo, ya obtener un gráfico de una variable que queramos, con el tiempo en la variable X y el dato en la variable Y.

Ejecutad los diferentes tests que encontrareis en la carpeta "test":

Código:
    $ php test_csv.php
    $ php test_grafico_1v.php

Ejemplo de gráfico:
burbutrading/imagen-1517748960.png at master · toledanos/burbutrading · GitHub
(el estilo es mejorable, claro).

Aunque no lo expliqué al principio, lo que pretendo es tener un script que coja (se descargue) unas docenas (o centenas) de cotizaciones y me diga si están calentitas para vender o comprar, con salida gráfica. Esto no lo hacen las muchas aplicaciones disponibles, y nos obligan a hacer click tras click, sin quitarnos la morralla de información.

La aplicación debería ser capaz, por ejemplo, de calcular ésto:
Awesome Oscillator (AO - Tradingview Wiki)
Tras calcularlo, debería poder encontrar los cambios bullish y bearish (alcista o bajista) del oscilador, hallar si hay "twin peaks" y saber si son buenos o solo neutros.

Así con diferentes indicadores y cruzando diferentes exchanges, con el ojo también en el posible carry-trading, podríamos hacer en minutos lo que nos llevaría horas hacer a pata.
 
Volver