Skip to content

Aristarkh27/course_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

course_project

** Getting started:**

Как сгенерировать токен?

  1. Открыть счет в Тинькофф Инвестиции.

  2. Сгенерировать токен доступа Тинькофф (Токен доступа - Т-Инвест API (russianinvestments.github.io))

  3. Поместите этот токен в файл my_token.py.

Подбор гиперпараметров В нашем проекте мы использовали метод GridSearchCV из библиотеки sklearn.model_selection. Чтобы успешно реализовать этот метод в вашем алгоритме, вам необходимо создать модель, совместимую со sklearn, или использовать один из алгоритмов sklearn для анализа. В нашем проекте мы создали несколько моделей, совместимых со sklearn, например (для скользящей средней (MA) и индекса относительной силы (RSI)). Модель, совместимая со Sklearn, должна иметь следующие методы:

  1. __init__ mинициализация модели, например, задание размера окна для модели RSI
  2. fit - использовать данные для тренировки модели. В случае с RSI и MA это технический шаг, необходимый только для корректной работы остальных функций.
  3. predict - этот метод выводит прогноз модели для введённых данных
  4. score - этот метод оценивает производительность модели. В нашем случае этими параметрами выступают сочетание максимальных потерь и итоговой прибыли
  5. get_params - этот метод возвращает параметры модели
  6. set_params - этот метод устанавливает параметры такие же, как указано во входных данных

Вы можете увидеть примеры таких моделей в relative_strength_index.py (класс relative_strength_index) и moving_average.py (класс moving_average).

База данных Файл с созданием и заплонением базы данных называется db.py. При его запуске он создает или находит уже существующий файл invest.db, в котором хранится сама база данных. Она состоит из двух таблиц - hourly_prices и daily_prices, которые содержат чаовые и дневные котировки соответственно. Массив codes содержит figi-коды компаний, для которых осуществляется сбор данных. При запуске файла для компаний, указанных в списке, собираются все исторические данные. Для того, чтобы поддерживать актуальность базы данных, созданы функции fill_table_with_latest_values_hourly() и fill_table_with_latest_values_daily(), которые для каждой компании в таблице загружают все новые данные. Эти функции рекомендуется вызывать перед использованием самих алгоритмов, чтобы использовать максимально свежие данные.

Алгоритмы У нас в роботе реализовано два различных алгоритма - RSI, или Индекс Относительной Силы, и Moving Average, или Скользящая Средняя. Они реализованы в файлах RSI.py и MA.py соответственно. RSI измеряет скорость и изменение ценовых движений, показывая перекупленность или перепроданность актива на основе его недавних ценовых изменений. Он колеблется между 0 и 100, где значения выше 70 указывают на перекупленность, а ниже 30 — на перепроданность. MA - скользящий средний, который вычисляется путем усреднения цен актива за заданный период времени. Он сглаживает колебания цен, помогая выявить общие направления тренда, и используется для определения уровней поддержки и сопротивления. Для того, чтобы подобрать оптимальные параметры окон для обоих алгоритмов, был реализован алгоритм Grid_Search.

Визуализация и взаимодействие Реализовано взаимодействие клиента и робота в интерактивном окне. Пользователь имеет возможность выбрать акцию для трейдинга, желаемый алгоритм (RSI/MA) и временной промежуток исторических данных, на которых будет обучаться робот. После завершения трейдинга пользователь получает фидбэк от робота в виде решения по трейдингу (покупка/продажа), итоговой прибыли и графика торгов, с динамичным обновлением через определенный промежуток времени. Интерфейс направлен на упрощение работы с роботом клиентов, не имеющих опыт в трейдинге, а его простота несомненно улучшает пользовательский experience.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages