Skip to content

Latest commit

 

History

History

volatility

Анализ Волатильности Ценных Бумаг

Этот проект вычисляет волатильность ценных бумаг на основе данных торгов на бирже. Волатильность оценивается по процентному отклонению между максимальной и минимальной ценами сделок за торговую сессию. Проект поддерживает многопоточный и многопроцессный стили обработки данных.

Структура проекта

Проект состоит из следующих основных компонентов:

  1. volatility_calculator.py - Основной модуль, выполняющий вычисления волатильности.
  2. data_loader.py - Модуль для загрузки и чтения данных из файлов.
  3. multi_threaded.py - Реализация многопоточной обработки данных.
  4. multi_processed.py - Реализация многопроцессной обработки данных.
  5. utils.py - Вспомогательные функции.
  6. tests - Папка с тестами для проверки корректности работы модулей.

Данные

Данные для анализа представлены в виде CSV-файлов, где каждая строка содержит информацию о сделке:

  • SECID - тикер ценной бумаги
  • TRADETIME - время сделки
  • PRICE - цена сделки
  • QUANTITY - количество бумаг в этой сделке

Установка и Запуск

  1. Скачайте и распакуйте архив с данными:

  2. Запустите вычисление волатильности в многопоточном стиле:

    python multi_threaded.py
  3. Запустите вычисление волатильности в многопроцессном стиле:

    python multi_processed.py

Пример использования

Многопоточная обработка

python multi_threaded.py
# Вывод:
# Максимальная волатильность:
#     ТИКЕР1 - ХХХ.ХХ %
#     ТИКЕР2 - ХХХ.ХХ %
#     ТИКЕР3 - ХХХ.ХХ %
# Минимальная волатильность:
#     ТИКЕР4 - ХХХ.ХХ %
#     ТИКЕР5 - ХХХ.ХХ %
#     ТИКЕР6 - ХХХ.ХХ %
# Нулевая волатильность:
#     ТИКЕР7, ТИКЕР8, ТИКЕР9, ТИКЕР10, ТИКЕР11, ТИКЕР12

Многопроцессная обработка

python multi_processed.py
# Вывод аналогичен многопоточной обработке

Алгоритм расчета волатильности

Волатильность рассчитывается по формуле:

  • Полусумма = (максимальная цена + минимальная цена) / 2
  • Волатильность = ((максимальная цена - минимальная цена) / полусумма) * 100%

Пример расчета

Для тикера с ценами сделок 20, 15, 23, 56, 100, 50, 3, 10:

  • Максимальная цена = 100
  • Минимальная цена = 3
  • Полусумма = (100 + 3) / 2 = 51.5
  • Волатильность = ((100 - 3) / 51.5) * 100 = 188.34%