Quant-task
Задание.
Предоставляется набор стаканов котировок за 1 час глубиной 10*10 (10 Bid & 10 Ask). Приблизительная частота данных: 10 стаканов в секунду. Имеется 2 вида комиссий: maker - 0.02%, taker - 0.07%. Задача написать алгоритм, который каждую минуту исполняет заявки по рынку на покупку инструмента с заданным объемом.
Для объемов заявок 1 000, 10 000, 1 000 000 нужно получить:
- количество купленного инструмента
- среднюю цену покупки
- cредний slippage по всем сделкам
Так же нужно предоставить сделки в формате csv со следующими полями:
id, time(utc timestamp), amount(usd), price, side
Решение.
-
Для объемов заявок 1000
- Количество купленного инструмента: 60000
- Средняя цена покупки: 60928.40
- Средний slippage по всем сделкам: 0.00002068
-
Для объемов заявок 10000
- Количество купленного инструмента: 600000
- Средняя цена покупки: 60931.22
- Средний slippage по всем сделкам: 0.00006703
-
Для объемов заявок 1000000
- Количество купленного инструмента: 40770480
- Средняя цена покупки: 60972.17
- Средний slippage по всем сделкам: 0.00073938
- 3 файла с данными по сделкам и ipynb.
Текущая версия алгоритма не учитывает влияние на рынок. Если это нужно, готов доделать.