0.5.20 • Published 6 days ago

opexbot v0.5.20

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 days ago

OpexBot

appname: pskucherov.tinkofftradingbot

Требования

node >= 17

В node v17 есть предустановки MSVC и node-gyp, что сильно упростит использовании GPU для машинного обучения. Это пока в планах, но чтобы в будущем не тратить время на обновления и обратную совместимость, сразу зафиксировал минимальную версию ноды.

Установка и запуск

Из npm

mkdir robot
cd robot
npm i opexbot
npx opexbot

Из репозитория

git clone https://github.com/pskucherov/OpexBot
cd OpexBot
npm i
npm start

Порты

По умолчанию используются 3056 и 8056 порты. Для их изменения используйте PORT и SERVERPORT соответственно.

PORT=3006 SERVERPORT=8006 npx opexbot

UI

После старта откройте http://localhost:3056/settings

Вся дальнейшая настройка и взаимодействие с роботом через UI.

Подробности в репозитории терминала: https://github.com/pskucherov/OpexViewer/

Модули

  1. SDK (forked from mtvkand/invest-nodejs-grpc-sdk)

    В основной репозиторий добавил appname, обновил proto и список ошибок, добавил возможность проброса метода для логирования (раз, два). В форке привёл экспорт к нужному мне виду и вынес в npm.

  2. TinkoffTradingBotConnector

    Библиотека, связывающая терминал, sdk и робота. Ведёт журнал логов по дням, кеширует данные от брокера и сохраняет настройки из терминала.

  3. OpexViewer

    Пользовательский инетрфейс для бектестирования и дневной торговли.

  4. Непосредственно сам робот

    Состоит из основного класса обработки данных Common, наследуемого от него Backtest для обработки данных в режиме бектестирования и класса робота, в котором реализуется торговая стратегия. Настройки робота сохраняются для каждого инструмента отдельно.

Пример создания робота

  1. Копируем папку Example, кладём рядом и переименовываем в название робота.

    После этого этапа робот автоматически подключится в OpexViewer и будет доступен в селекте роботов.

  1. Пишем бизнес логику в заготовленных блоках. В примере уже описаны основные команды, это решения про сделку и обработка самих сделок. Эти методы обходятся с заданным интервалом и выполняются в зависимости от условий. Полный список переменных и методов, которыми оперирует робот и доступны для использования, можно посмотреть на дебаг странице. Дебаг страница доступна только для запущенного робота, т.к. выводится его содержимое в реальном времени.

И получается лаконичный робот, в котором нет ничего лишнего. Пример робота, который торгует от уровня поддержки и закрывает сделки по takeProfit.

Оригинальное использование

  1. Пошаговое бектестирование и отладка робота.

  2. Кеширование стакана для анализа торгов, бектестирования и создания новых роботов.

    Когда робот запущен, то все заявки, сделки и стакан сохраняются в файл. При выборе робота для бектестирования в эту дату для заданного инструмента все данные восстанавливаются и можно проанализировать поведение робота. А так же отладить его на сохранённом стакане.

Примеры

Всё вместе это выглядит так:

  1. Создание и подключение робота в два шага. Не нужно трогать окружение, робот сам в него встраивается. Все переменные и методы доступны из коробки.
0.5.20

6 days ago

0.5.18

26 days ago

0.5.17

26 days ago

0.5.16

3 months ago

0.5.10

3 months ago

0.5.11

3 months ago

0.5.8

3 months ago

0.5.9

3 months ago

0.5.14

3 months ago

0.5.15

3 months ago

0.5.12

3 months ago

0.5.13

3 months ago

0.5.7

3 months ago

0.5.4

3 months ago

0.5.3

3 months ago

0.5.6

3 months ago

0.5.5

3 months ago

0.5.2

3 months ago

0.5.1

3 months ago

0.5.0

4 months ago

0.4.10

6 months ago

0.4.9

6 months ago

0.4.8

6 months ago

0.4.13

6 months ago

0.4.14

6 months ago

0.4.11

6 months ago

0.4.12

6 months ago

0.3.0

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago