Skip to content

zavzyatiy/telegram_bot_for_signals

Repository files navigation

Описание проекта

Последнее обновление проекта: 11.06.2024.

Данный бот предназначен для парсинга валютных пар с сайта Oanda в режиме реального времени, построения предсказания с помощью предобученного CatBoost'a и вывода (в случае положительного прогноза) в телеграмм-бот сообщения о том, что курс по определенной валютной паре в скором времени увеличится, а также записи всех результатов в гугл-таблицу.

Для использования программы необходимо иметь доступ к некоторому телеграмм-боту, иметь аккаунт на Oanda и таблицу в Google Sheets, в которой должны быть созданы лист "consolidate" и листы с названием валютных пар через "_" с колонками Currency, Prediction time, Prediction price, Open time, Open price, Close time, Close price, Profit, Win.

Пока что бот умеет работать только на одном устройстве и в принципе по своему функционалу является достаточно сырым.

Функционал бота

  • /reg - зарегестрироваться. Этот этап включает в себя два действия:
    • указание времени, по прошествию которого бот будет напоминать о том, что он работает, в секундах;
    • выбор валютных пар из списка, по которым необходимо отслеживать предсказания.

    Процедура устроена так: после сообщению бота целого числа секунд следует выбрать из списка пары и нажать кнопку "выход". Если выбрать все пары, то окно свернется само.

  • /info - команда, которая в сообщении присылает параметры действующей регистрации.

    Работает и до, и во время выполнения основного кода.

  • /start - запуск основного кода, нацеленного на вывод:
    • сообщений о работе с определенной переодичностью;
    • прогнозов модели машинного обучения.
  • /stop - команда, прерывающая выполнения основного кода.

    После неё можно опять запустить основной код командой start.

  • /stopping - команда для технической отладки, полностью завершающая сессию с ботом в чате.

    Рекомендуется её использовать ТОЛЬКО в случаях ручной отладки кода программы. Если вы нажали её случайно, следует остановить код на Вашем устройстве (закрыть терминал, если работаете в VScode) и запустить ее заново.

Работа с ботом

  1. Скачать и поместить в директорию с ноутбуком json-файл для доступа в вашу гугл-таблицу. Помимо этого собрать все необходимые токены и id для доступа к телеграмм-боту и Oanda API.
  2. Разархивировать папку со scaler'ами в директорию с ноутбуком.
  3. Запустить последовательно все ячейки (кроме последней) в ноутбуке.
  4. Открыть телеграмм-бот и пользоваться им.

Важно! При любом баге настоятельно рекомендованно вводить команду /stopping. В случае, если это не помогло, необходимо удалить бота в телеграмме и создать такого же.

Для регистрации заново (для изменения данных) следует действовать через /stopping: написать эту команду, потом удалить терминал в VScode. После этого запустить код программы заново и зарегестрироваться в боте с новыми данными.

Особенности работы /stop и /start. В случае, если есть желание завершить работу бота, а после включить его через время, следует поступать так: ввести /stop -> ввести /stopping -> прекратить выполнение кода на компьютере с помощью удаления терминала -> запустить код опять -> зарегистрироваться в боте и начать выполнение программы, когда это будет нужно. Также добавлена новая функция на этапе выбора пар: "Выбрать всё". Она позволяет выбрать все валютные пары одним кликом.

Также не стоит обращать внимание на вылезающие в самом терминале фразы "Request error: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))". Это не свидетельствует о серьезной ошибке, код продолжает работу. В случае иного вывода в терминале стоит написать нам, чтобы мы поправили баг

Что можно улучшить?

  • Переписать все запараллельные куски кода через asyncio
  • Добавить возможность работы с ботом нескольких пользователей
  • Решить проблему с некорректно приходящеми показателями объемов торгов, из-за которых падает accuracy модели
  • Заново отвалидировать модель

About

Telegram signal bot for currency pairs from Oanda

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published