Авторы:
https://github.com/rasulibragimov
Алгоритм поиска аномальных значений объема и изменения цены и принятия решения о покупке/продаже. Для запуска необходим REFRESH TOKEN брокера АЛОР. Необходимые модули есть в requirements.txt
BUY: VOL (1MIN) > QUANTILE*(100 LAST VOLS, Level=0,9995) AND
ROCP**(1MIN) > 0
SELL: VOL (1MIN) > QUANTILE(100 LAST VOLS, Level=0,9995) AND
ROCP > QUANTILE(100 LAST ROCP, Level=0,9995)
*Quantile alpha-level of [the absolute value of] last n observations
**ROCP: Rate of change Percentage: (price-prev_price)/prev_price * 100
Anomaly-vol-alert состоит из нескольких пакетов:
- Backtest_Strategy
- Realtime_Signals
Первый пакет отвечает за проверку стратегий. В нем используется Фреймворк Backtesting для проверки стратегий на котировках из прошлого. Он не может получать данные быстро в реальном времени (в рамках задачи для данного пакета это и не требуется), однако он может загружать автоматически большие объемы данных (с помощью API брокера АЛОР) для тестирования различных стратегий, для их дальнейшего использования во втором пакете.
Второй пакет отвечает за информирования пользователя о необходимости покупки либо продажи в соответствии с выбранной стратегией. Скрипт автоматически и в реальном времени загружает тики по всем тикерам Мосбиржи (с помощью API брокера АЛОР) и рассчитывает необходимые значения индикаторов, уведомляя в случае необходимости совершить сделку через телеграм канал. Данный пакет не предназначен для проверки стратегий, он создан для использования уже протестированного алгоритма из первого пакета.
Немного про реализацию: Запрос по каждому тикеру беспрерывно, в бесконечном цикле, далее тики агрегируются в минуты, при агрегации, если собрано уже 100 минут (объем хранения минут ограничен, хранится не более 100 последних минут, это уже оптимизированный гиперпараметр) за прошлые периоды, происходит проверка на сигнал: рассчитываются все индикаторы и аналогичный алгоритму выше алгоритм решает, надо ли выпускать сигнал о покупке/ продаже. При положительном решении, на основе данных о цене, объеме, и значениях всех индикаторов генерируется текст сигнала и он отправляется в телеграм канал. Скрипт проработал более недели без сбоев, результат работы имеется в телеграм канале: https://t.me/joinchat/28bkkQ-1GqszOThi