🏆 Tinkoff Invest Robot Contest

Related tags

Example Apps Kwatoko
Overview

kwatoko

Роботы для торговли на бирже прямо с iPhone

Мобильное приложение 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)

Для запуска робота на тестовых данных необходимо

  1. Заполнить тестовый файл DemoData.json своим набором данных
  2. Добавить робота со стратегией "Демо: торговля по стакану"
  3. Запустить робота

Торговые стратегии

Торговля по стакану

Алгоритм основан на гипотезе: когда в стакане появляется заявка с аномально большим объёмом, есть вероятность, что произойдет отскок цены от данной заявки. Задача робота заключается в поиске таких заявок и заработке на таком отскоке

Подробное описание с примерами

Результаты

Робот был запущен для торговли 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

Лицензия

Apache License 2.0

You might also like...
The concept won first place in the Design Concept Award contest Season 2 in December 2021.
The concept won first place in the Design Concept Award contest Season 2 in December 2021.

SwiftUI-ChristmasGift Developed by Alex Kryvodub as part of the You are launched "Design Concept Award" contest Season #2. ChristmasGift demo. alex.mp

The concept took second place in the Design Concept Award contest Season 2 December 2021.
The concept took second place in the Design Concept Award contest Season 2 December 2021.

SwiftUI-UrlaunchedMerryChristmasCard Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #2. MerryChrist

The concept took third place in the Design Concept Award contest Season 2 in December 2021.
The concept took third place in the Design Concept Award contest Season 2 in December 2021.

SwiftUI-UrlaunchedLaunchScreen Developed by Vladyslav Fil as part of the You are launched "Design Concept Award" contest Season #2. Animated Launch Sc

Comments
  •  Фидбек по конкурсной работе от проверяющих

    Фидбек по конкурсной работе от проверяющих

    Сборка Все ок. Качество кода

    Не используется SwiftUI при минимальной iOS 15.4. Часто используется в коде force unwrapping. В коде встречаются не используемые методы или с пустой реализацией - последнее говорит о проблемах с архитектурой. Нет тестов. Для небольшого проекта, возможно, стоит выбирать архитектуру попроще, например, MVC или MVVM.

    UI/UX

    Все ок. На Mac При запуске на остается подсказка - Проведите от левого края и тд. Текст обрезается и нет возможности его прочитать.

    Обработка ошибок

    По коду обработки ошибок нет, с уведомлениями пользователя, например, что нет интернета. print не подходит для продакшен версий, стоит использовать debugPrint, assert, логгирование и уведомления для пользователя.

    Документация

    Не хватает раздела Установка/Первый запуск/Сборка проекта. Readme лучше оформлять по шаблону популярных приложений, например, https://github.com/RobotsAndPencils/xcodes.

    Обратная связь

    Красивый и понятный readme, есть локализация и понятная декомпозиция по слоям.

    opened by b1ng0o 1
Releases(0.1.0)
Owner
Andrey Vasilev
Andrey Vasilev
The concept took third place in the Design Concept Award contest Season 1 in 2021.

SpringAnimation Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #1. SpringAnimation demo. Inspired b

You are launched 5 Jul 10, 2022
The concept won first place in the Design Concept Award contest Season 1 in 2021.

TallyCounter Developed by Vladyslav Fil as part of the You are launched "Design Concept Award" contest Season #1. Tally Counter Micro-Interaction demo

You are launched 3 Dec 17, 2022
The concept won first place in the Design Concept Award contest Season 2 in December 2021.

SwiftUI-ChristmasGift Developed by Alex Kryvodub as part of the You are launched "Design Concept Award" contest Season #2. ChristmasGift demo. alex.mp

You are launched 5 Jan 12, 2022
The concept took second place in the Design Concept Award contest Season 2 December 2021.

SwiftUI-UrlaunchedMerryChristmasCard Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #2. MerryChrist

You are launched 6 Jun 17, 2022
The concept took third place in the Design Concept Award contest Season 2 in December 2021.

SwiftUI-UrlaunchedLaunchScreen Developed by Vladyslav Fil as part of the You are launched "Design Concept Award" contest Season #2. Animated Launch Sc

You are launched 5 Jan 3, 2023
The concept won first place in the Design Concept Award contest Season 1 in 2021.

TallyCounter Developed by Vladyslav Fil as part of the You are launched "Design Concept Award" contest Season #1. Tally Counter Micro-Interaction demo

You are launched 3 Dec 17, 2022
The concept took third place in the Design Concept Award contest Season 1 in 2021.

SpringAnimation Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #1. SpringAnimation demo. Inspired b

You are launched 5 Jul 10, 2022
The concept took second place in the Design Concept Award contest Season 1 in 2021.

SmileRate Developed by Alex Kryvodub as part of the You are launched "Design Concept Award" contest Season #1. SmileRate demo. Inspired by Duy Luong c

You are launched 1 Jan 12, 2022
The concept took third place in the Design Concept Award contest Season 1 in 2021.

SpringAnimation Developed by Yurii Sameliuk as part of the You are launched "Design Concept Award" contest Season #1. SpringAnimation demo. Inspired b

You are launched 5 Jul 10, 2022
The concept won first place in the Design Concept Award contest Season 1 in 2021.

TallyCounter Developed by Vladyslav Fil as part of the You are launched "Design Concept Award" contest Season #1. Tally Counter Micro-Interaction demo

You are launched 3 Dec 17, 2022