Giter VIP home page Giter VIP logo

tbot's Introduction

Это часть проекта по разработке торгового бота под Тинкофф инвестиции (алготрейдинг), первоначальная задумка проекта изложена здесь. Про верхнеуровневую архитектуру проекта можно прочитать здесь. Более подробно по проектным решениям и используемым библиотекам я еще напишу в отдельных статьях.

Здесь 2 сервиса, которые я выкладываю в публичный доступ:

  • ipm - Incoming Price Manager
  • pr - Price Repository

Всего в проекте четыре сервиса, оставшиеся два, относящиеся к финансовой части: расчет индикаторов, построение прогнозных моделей, логику принятие решений я не планирую выкладывать.

Токен

Обратите, пожалуйста, внимание. Для того чтобы запустить ipm сервис, необходимо задать токен, который вы можете получить в своем личном кабинете в Тинкофф инвестициях, подробнее об этом здесь: https://tinkoffcreditsystems.github.io/invest-openapi/auth/

Для пробного запуска вполне достаточно токена от Sandbox площадки. Для development режима токен необходимо задать в ipm/configs/development.yaml Вместо <sandbox token> нужно вписать токен, взятый с сайта tinkoff.ru

Подготовка рабочего окружения

Я веду разработку под Linux (Ubuntu 20.04), как это работает под Windows не проверял. Скорее всего, тоже будет работать, за исключением разве что make команд.

Для запуска pr сервиса требуется база данных PostgreSQL, вы можете развернуть PostgreSQL локально, а можете воспользоваться Docker контейнером. Естественно, сам Docker нужно предварительно установить. В Makefile есть команда, которая подготовит и запустит контейнер, а также создаст базу данных, если ее еще нет.

make run-db

Все подробности по подключению (имя базы и пользователя, порт) можно посмотреть в pr/configs/default.yaml

Запуск сервисов

Если не указывать RUN_ENV, то по умолчанию будет использован development режим.

Запуск из корня проекта:

cargo run -p ipm -- -c ./ipm/configs/
cargo run -p pr -- -c ./pr/configs/ -r 2021-05-11 2
cargo run -p pr -- -c ./pr/configs/ -m ./pr/migrations/ -s

Первый флаг -p отвечает за выбор проекта. Если запускать из директории проектов, параметр с указанием пути к конфигурационным файлам можно отпустить, примеры здесь: ipm/README.md, pr/README.md

Запуск сервиса в заданном режиме

RUN_ENV=Testing cargo run -p ipm -- -c ./ipm/configs/
RUN_ENV=Production cargo run -p ipm -- -c ./ipm/configs/

Запуск нескольких сервисов

Сценарий сохранения данных (накопление исторических данных)

make storing

Есть другие сценарии: ipm-real и ipm-emulate, подробности можно посмотреть в Makefile

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.