Skip to content
This repository was archived by the owner on Jan 24, 2025. It is now read-only.
/ vertr-drl-public Public archive

Deep reinforcement learning for algorithmic trading

License

Notifications You must be signed in to change notification settings

afedyanin/vertr-drl-public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vertr-drl

Демонстрация возможностей алгоритмов DRL в торговле на бирже.

Установка и старт

Развернуть контейнеры инфрастуктуры

cd infra
docker-compose up -d

Развернуть базы данных

Создать таблицы в БД postgres запуском скриптов из каталога database

  • moex_candles.sql
  • operations.sql
  • orders.sql
  • portfolio_snapshots.sql
  • position-snapshots.sql
  • signals.sql
  • trades.sql
  • tinvest_candles.sql

Создать БД для AirFlow

POSTGRES_USER: airflow
POSTGRES_PASSWORD: airflow
POSTGRES_DB: airflow

Создать БД для OptunaDashboard

POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
POSTGRES_DB: optunadb
Сделать видимой БД для AirFlow и Optuna Dashboard
docker network connect airflow_default infra-pgsql-1
docker network connect optimization infra-pgsql-1

Прописать креденшилы доступа к бд в файле airflow/plugins/db_connection.py

Установить креденшилы для T-invest API в airflow/plugins/tinvest_sandbox_adapter.py

_SB_TOKEN_ = '<TOKEN>'
SB_TRADING_ACCOUNT_ID = '<ACCOUNT_ID>'
SB_TESTING_ACCOUNT_ID = '<ACCOUNT_ID>'

Можно создать тестовый акаунт, вызвав функции класса TinvestSandboxAdapter:

  • open_sandbox_account
  • deposit_sandbox_account

Собрать и запустить Apache AirFlow

cd airflow
docker-compose build
docker-compose up -d

Дождаться загрузки исторических данных по расписанию или запустить DAG вручную: tinvest_update_sber_candles.py

Собрать и запустить Optuna dashboard (опционально)

cd optimization
docker-compose up -d

Обучить модель DRL

Запустить скрипт обучения модели, указав в аргументах название алгоритма:

cd training 
python model_trainer_main.py dqn

Поддерживаемый набор алгоритмов: a2c, ddpg, dqn, ppo, sac, td3, ars, qrdqn, tqc, trpo, ppo_lstm

Процесс обучения можно наблюдать в TensorBoard:

cd training 
tensorboard --logdir logs

На выходе - zip файл с обученной моделью в каталоге training/models

Запустить генерацию сигналов

Обученную zip модель нужно поместить в airflow/dags/models

В DAG-е генерации сигналов нужно явно указать алгоритм для использвания:

generate_signals_1min_of15 = PythonOperator(
    task_id='generate_signals_1min_of15',
    python_callable=generate_signal,
    dag=dag,
    op_kwargs={
        'db_connection': DbConnection.airflow_db_connection(),
        'algo_name': 'dqn',
        'instrument': Instrument.get_instrument("SBER"),
        'interval': Interval.hour_1,
    },
)

Контроль работы

Можно наблюдать за работой DAG-ов: http://localhost:8080

ariflow

Или мониторить торговлю в реальном времени через Grafana Dashboard: http://localhost:3000

grafana

About

Deep reinforcement learning for algorithmic trading

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published