Мобильное приложение kwatoko позволяет запускать роботов с различными стратегиями для торговли на бирже через API Тинькофф Инвестиций
🏆 Победитель конкурса Tinkoff Invest Robot Contest в номинации:
- Лучший торговый робот для мобильных устройств
Участник в номинациях:
-
Лучший интерфейс (визуализация) торговой стратегии
-
Самое оригинальное использование API Тинькофф Инвестиций
В приложении доступно создание до 10 роботов с указанием стратегии, инструмента и всех необходимых для торговли по выбранной стратегии параметров (описание стратегий и параметров)
В разделе История отображаются сделки по каждому роботу, процент прибыли (убытка) на каждую сделку, а так же график сделок с линией тренда заработка данного робота
Для авторизации необходимо использовать два токена (инструкция по генерации):
-
токен для биржи
-
токен для песочницы
Рекомендуется использовать Readonly token, если не предполагается торговля на реальной бирже
ЗДРАВО ОЦЕНИВАЙТЕ РИСКИ ПРИ ЗАПУСКЕ РОБОТА ДЛЯ ТОРГОВЛИ НА РЕАЛЬНОЙ БИРЖЕ
В разделе Профиль отображаются открытые счета, можно посмотреть баланс по всем валютам. Для счетов в песочнице доступно открытие, закрытие, пополнение баланса в любой валюте, возможность переименовать счет (только в приложении)
Из-за особенностей работы песочницы, пополнение доступно только в рублях. Чтобы пополнить баланс иностранной валюты, будет совершено пополнение в рублях на сумму приблизительно эквивалентную сумме валюты с последующей покупкой указанной валюты Если произойдет ошибка - попробуйте указать меньшую сумму Покупка иностранной валюты может происходить с задержкой. Если обновление баланса не произойдет моментально - попробуйте вернуться на экран позже и проверить баланс снова
Возможность пополнения баланса определяется режимом торгов биржи
На данный момент в приложении реализован алгоритм торговли по стакану. Исторические данные стаканов отсутствуют (или не были найдены автором), поэтому для тестирования предлагается сгенерировать свой набор данных в формате JSON.
Пример заполнения:
{
"interval": 1.0,
"data": [
{
"asks": [
{ "quantity": 44, "price": 100.31 },
{ "quantity": 40, "price": 101.24 },
...
],
"bids": [
{ "quantity": 22, "price": 99.13 },
{ "quantity": 12, "price": 98.33 },
...
]
},
...
]
}
interval: интервал получения роботом тестовых данных по стакану
data: массив стаканов
asks: массив заявок на продажу в стакане
bids: массив заявок на покупку в стакане
quantity: объём заявки (Int)
price: цена инструмента в заявке (Double)
Для запуска робота на тестовых данных необходимо
- Заполнить тестовый файл DemoData.json своим набором данных
- Добавить робота со стратегией "Демо: торговля по стакану"
- Запустить робота
Алгоритм основан на гипотезе: когда в стакане появляется заявка с аномально большим объёмом, есть вероятность, что произойдет отскок цены от данной заявки. Задача робота заключается в поиске таких заявок и заработке на таком отскоке
Подробное описание с примерами
Робот был запущен для торговли 1 лотом акций TCSG 23 мая 2022
За одну сессию робот совершил 51 сделку и заработал 48 рублей, что составляет ~ 2.25% от стоимости лота на момент закрытия торговой сессии
Заголовок x-app-name: AndreVasilev.Kwatoko
Используемые зависимости:
Все зависимости должны быть установлены перед сборкой проекта через Swift Package Manager
Реализация алгоритма
Исходный код реализации алгоритма находится в файле ContestStrategy.swift
Вспомогательные файлы в папке ContestStrategy
Платформа | Минимальная версия |
---|---|
macOS | 12.0 (Monterey) |
iOS & iPadOS | 15.4 |