Git Product home page Git Product logo

algotrading_stack's Introduction

Algotrading Stack

Comenzando 🚀

Uno de las actividades recurrentes es armar un maquina que disponga de todos los servicios necesarios para empezar a desarrollar o poner en produccion estrategias de algotrading, el objetivo de este proyecto es proveer toda la infraestructura necesaria sin necesidad de instalar software o componentes locales sino a traves de un entorno contenerizado y virtualizado con la tecnologia provista por docker.

Pre-requisitos 📋

Solo tienes que tenes instalado docker en una maquina (linux, obvio)

Aqui encontraras una guia para instalar docker en Ubuntu 20.04 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-es

Si insistes con Windows, quizas esta guia te pueda ayudar https://www.simplilearn.com/tutorials/docker-tutorial/install-docker-on-windows

Luego toda la instalación esta armada con un stack completo e integrado de docker, que utiliza partir de utilizar comando docker-compose arma todo el stack de microservicios

Instalación 🔧

La instalación es muy sencilla, veamos...

  1. Copiar todo el contenido en una carpeta, ejemplo 'algotrading'

  2. Edita las variables del archivo .env, ya que se uilizan en el archivo docker-compose.yaml para configurar los servicios de los contenedores

    WD="directorio de trabajo, donde reside esta misma carpeta, en el ejemplo seria la ruta completa de 'algotrading'"

    ND="directorio donde se alojaron los notebooks y demas archivos python que seran accesibles desde los contenedores"

    TWSUSERID="usuario del gateway de Interactive broker"

    TWSPASSWORD="password del gateway de Interactive broker"

    TRADING_MODE="modalidad del gateway de Interactive broker paper o live"

    TZ="timezone del container"

  3. Ejecutar el script ./starter_script.sh

Gestión de los contenedores 🔩

Para ver el status y administrar los contenedores puedes usar el comando docker-compose o tambien la interfaz web provista por Portainer:

* Portainer:        http://localhost:9000

La primera vez que ingreses te va a solicitar crear una password para la cuenta admin, y luego tendras acceso a la gestión y administracion de los contenedores, acceder a las consolas de los mismos, monitorear recursos y status de los servicios.

Servicios incluidos ⌨️

Los diferentes servicios del stack se pueden acceder a traves:

* Airflow:          http://localhost:8080
* Superset:         http://localhost:8088
* Celery Flower:    http://localhost:5555
* Jupyter Notebook: http://localhost:8888
* MLflow:           http://localhost:5500
* PgAdmin:          http://localhost:1234
* IBGateway:       via vnc: localhost:5999

Paquetes y librerias 📦

En los archivos requirements.txt encontraras las librerias que se han incluido, he incluido entre otras:

* psycopg2-binary
* mlflow
* sklearn
* xgboost
* IBPy2
* ib_insync
* backtrader2 (fork de backtrader con bugfixes)
* vectorbt
* bs4
* peewee
* xlrd
* ffn
* pyfolio
* quantstats
* riskfolio-lib

Adicionalmente en el Dockerfile de Jupyter Notebook se encuentran los extensiones que se han habilitado a los notebooks.

Agradecimientos 📢

algotrading_stack's People

Contributors

ultra1971 avatar

Forkers

kiniamogh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.