Skip to content

sekret01/trader_bot

Repository files navigation

Руководство пользователя


TRADER BOT

Данный проект создан для автоматизации процесса инвестиции и трейдинга в брокере Tinkoff Investments.


Функционал трейдер-бота:

  • мониторинг активов
  • автоматическое решение о совершении операции
  • следование заданной стратегии
  • сохранение данных об операциях
  • сохранение данных о балансе счета после каждой операции
  • ведение подробных логов действий программы
  • может быть подключен к тебеграм-боту для управления сервисом

Фунцкионал телеграм бота:

  • приостановление / возобновление работы сервиса
  • очистка лог-файлов и csv-отчетов
  • пересылка log-файла и cdv-отчетов
  • формирование отчета об операциях за день
  • формирование отчета о текущем балансе счета

Активы, которые необходимо мониторить, настраиваются в конфигурациях для активов (asset_configs).
Имеется возможность добавлять активы, удалять их, давать им параметры покупки и продажи, а так же назначать им стратегию, по которой будут происходить решения об операциях.
Имеется возможность добавлять собственные стратегии, однако их необходимо написать самостоятельно и внести в модуль "strategy". Так же можно самостоятельно добавлять шаблоны для активов.

В настоящее время доступны:

  • шаблон активов: CandleTemplate (работа основана на получении свеч)
  • стратегии: TrendFollowing (следование тренду)

Перед стартом программы проверьте и настройте следующие конфигурации:

После настроек можно запускать бота:


Конфигурации для входа в аккаунт

Для доступа к API необходимы токены.
Файл хранения токенов: configs/.configs.ini.
Шаблон находится в файле configs/.configs.temp.ini, откуда его необходимо перенести в файл конфигураций .configs.ini.

Перед заполнением configs.ini необходимо выполнить команды:

cd путь\в\директорию\trader_bot
copy configs\.configs.temp.ini configs\.configs.ini

Содержимое файла:

[TOKENS]
sandbox = 
token = 
telegram_bot_token = 
owner_telegram_id = 
  • sandbox - токен для запуска бота в режиме песочницы
  • token - токен, привязанный к существующему счету
  • telegram_bot_token - токен телеграм-бота, которого необходимо привязать к сервису
  • owner_telegram_id - ID Вашего профиля в телеграме

API токены необходимо получить на сайте брокера.
Токен для бота можно получить у FatherBot.
Токен профиля так можно получить у ботов типа GetMyId.


Конфигурации для загрузки активов

Путь файла конфигурации: configs/asset_configs.json
Конфигурация имеет следующий вид (пример заполнения):

[
    {
    "name": "TITR@",
    "figi": "TCS30A108BL2",
    "amount": 160,
    "days_back": 30,
    "timeframe": 9,
    "check_interval": 1800,
    "type": 4,
    "strategy": "trendfollowing",
    "template": "candle",
    "construct_data": {
      "MA_small": 10,
      "MA_long": 20
      }
    }
]
Таблица конфигурации
ключ тип описание
name str название актива
figi str figi-идентификатор актива
amount int количество для торгов
days_back int за сколько дней брать свечи
timeframe int интервал свеч (таблица интервалов ниже)
check_interval int интервал получения новых свечей (в секундах)
type int тип актива (таблица "Инструменты")
strategy str вид подключаемой стратегии (таблица "Виды стратегий")
template str название шаблона для объекта актива
construct_data dict данные о подключаемой стратегии (таблица "Индикаторы стратегий")
Таблица видов стратегий
название описание индикаторы
trendwollowing Следование тренду - покупка совершается при движении тренда вверх, продажа при смене тренда на нисходящий MA_small, MA_long
Таблица индикаторов стратегий
индикатор расшифровка
MA_small Средняя скользящая за заданное число свечей (меньшее чем в MA_long)
MA_long Средняя скользящая за заданное число свечей (большее чем в MA_small)
Таблица интервалов
номер интервал
0 CANDLE_INTERVAL_UNSPECIFIED
1 CANDLE_INTERVAL_1_MIN
2 CANDLE_INTERVAL_5_MIN
3 CANDLE_INTERVAL_15_MIN
4 CANDLE_INTERVAL_HOUR
5 CANDLE_INTERVAL_DAY
6 CANDLE_INTERVAL_2_MIN
7 CANDLE_INTERVAL_3_MIN
8 CANDLE_INTERVAL_10_MIN
9 CANDLE_INTERVAL_30_MIN
10 CANDLE_INTERVAL_2_HOUR
11 CANDLE_INTERVAL_4_HOUR
12 CANDLE_INTERVAL_WEEK
13 CANDLE_INTERVAL_MONTH
14 CANDLE_INTERVAL_5_SEC
15 CANDLE_INTERVAL_10_SEC
16 CANDLE_INTERVAL_30_SEC
Таблица инструментов
номер инструмент
0 INSTRUMENT_TYPE_UNSPECIFIED
1 INSTRUMENT_TYPE_BOND
2 INSTRUMENT_TYPE_SHARE
3 INSTRUMENT_TYPE_CURRENCY
4 INSTRUMENT_TYPE_ETF
5 INSTRUMENT_TYPE_FUTURES
6 INSTRUMENT_TYPE_SP
7 INSTRUMENT_TYPE_OPTION
8 INSTRUMENT_TYPE_CLEARING_CERTIFICATE
9 INSTRUMENT_TYPE_INDEX
10 INSTRUMENT_TYPE_COMMODITY

Запуск программы с консолью (будет удален)

Запуск программы осуществляется файлом main.py
Вариант запуска в CMD (необходимо перейти в директорию проекта):

.venv\Scripts\activate
main.py

Программа запустит консольный интерфейс с возможностью выбора действий. Для выбора действия необходимо перевести на него указатель с помощью клавиш "вверх" и "вниз", затем нажать пробел или enter. Будет выполнено действие, на которое ведет указатель.

Для запуска необходимо выбрать "запуск" (пока не активно);
Для запуска в тестовом режиме необходимо выбрать "запуск [песочница]";
Для выхода - "выход"";

Из-за ненадобности данный функционал будет удален в будущих версиях


Быстрый запуск программы

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

Для работы программы без консольного управления необходимо запустить файл auto_start.py.
Данный файл будет запускать бота по заданным конфигурациям.
Настраивать конфигурации необходимо вручную.

Путь файла конфигураций: <configs/start_app.ini>
Конфигурационный лист имеет следующий вид (пример заполнения):

[START_PARAMETERS]
[START_PARAMETERS]
client_type = sandbox
check_save = 0
once_test_sandbox = 1

[WORK]
working_status = 0
last_date = 2025-08-13
paused = 0
stop = 0

[START_PARAMETERS] - блок параметров для запуска бота (МОЖНО МЕНЯТЬ).

  • client_type - тип клиента, может быть стандартным и режим песочницы (standard / sandbox)
  • check_save - условие проверки сохраненного статуса бота при запуске. Данные автоматически сохраняются для возможности продолжить работу с момента последнего завершения. (0 - False, 1 - True)
  • once_test_sandbox - параметр, отвечающий за запуск в тестовом режиме с последующем удалением аккаунта песочницы.
    Работает ТОЛЬКО В РЕЖИМЕ ПЕСОЧНИЦЫ.
    1 - будет создан новый аккаунт-песочница, который будет удален по завершению работы программы.
    0 - запуск в обычном режиме песочницы с подключением к последнему созданному аккаунта (пока недоступно)

[WORK] - блок параметров-статусов, использующиеся программой во время рвботы (НЕЛЬЗЯ ИЗМЕНЯТЬ).

  • working_status - статус работы сервиса (1 - активе, 0 - выключен)
  • last_date - последний зафиксированный программой день активного режима
  • paused - статус "пауза сервиса" (1 - приостановлен, 0 - активен)
  • stop - команда остановки сервиса (1 - активна команда остановки)
параметр возможные значения
client_type standard, sandbox
check_save 0, 1
При запуске auto_start.py программа будет работать без вывода в консоль, все логи записываются в файл main_logs.log.

Запуск программы в cmd:

cd путь\к\директории\trader_bot
.venv\Scripts\activate
start_app.py

В unix-терминалах:

cd путь\к\директории\trader_bot
source .venv\bin\activate
python3 start_app.py

About

ДАННЫЕ УСТАРЕЛИ, ЖДАТЬ ОБНОВЛЕНИЯ

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages