0.9.2 • Published 3 months ago

opexbot v0.9.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 months 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.9.0

3 months ago

0.9.2

3 months ago

0.9.1

3 months ago

0.8.1

6 months ago

0.8.0

6 months ago

0.8.3

6 months ago

0.8.2

6 months ago

0.7.2

9 months ago

0.7.4

9 months ago

0.7.3

9 months ago

0.6.7

1 year ago

0.6.6

1 year ago

0.6.9

11 months ago

0.6.8

1 year ago

0.6.10

11 months ago

0.7.1

10 months ago

0.6.2

1 year ago

0.6.4

1 year ago

0.6.1

1 year ago

0.5.24

1 year ago

0.5.20

1 year ago

0.5.18

1 year ago

0.5.17

1 year ago

0.5.16

1 year ago

0.5.10

1 year ago

0.5.11

1 year ago

0.5.8

1 year ago

0.5.9

1 year ago

0.5.14

1 year ago

0.5.15

1 year ago

0.5.12

1 year ago

0.5.13

1 year ago

0.5.7

1 year ago

0.5.4

1 year ago

0.5.3

1 year ago

0.5.6

1 year ago

0.5.5

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.5.0

1 year ago

0.4.10

2 years ago

0.4.9

2 years ago

0.4.8

2 years ago

0.4.13

2 years ago

0.4.14

2 years ago

0.4.11

2 years ago

0.4.12

2 years ago

0.3.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago