Предыстория
Я разработчик мобильных приложений для iOS и не имел никакого отношения к трейдингу. Ручной трейдинг не рассматриваю, так как у меня остается мало свободного времени после основной занятости. Однажды мой друг трейдер рассказал о неудачном периоде в работе, он винил себя за несоблюдение собственных стратегий в торговле и говорил что не может перебороть эмоции в период потери капитала. Так мы и решили попробовать написать собственного робота для торговли на Bybit, чтобы исключить человеческий фактор из его достаточно успешных стратегий.
Описание программы
Так как я iOS — разработчик, для быстрого написания робота были выбраны знакомый мне язык Swift и среда разработки Xcode. У биржи оказалась достаточно удобная документация, и я без труда смог создать сетевой слой для наших роботов. Так же большим плюсом при написании программы оказалось наличие библиотеки с основными индикаторами, написанной на языке C, которая уже была готова для интеграции в мой проект и работы с моим языком Swift.
В итоге мы получили программу, которая может взаимодействовать с биржей Bybit, имеет набор необходимых стандартных индикаторов, и для написания конкретного алгоритма достаточно только написать сам алгоритм. Стоит учесть, что программа не умела работать с историческими данными, не имела локального тестирования. Торговать на iPhone на этом этапе я не вижу смысла, если только не покупать отдельный девайс для торговли. Смысл писать программу под iOS был только в том, что это знакомые мне технологии, а запускать программу можно на компьютере с помощью стимулятора iPhone в качестве внешнего интереса программы (См скрин с примером отправки нескольких запросов на получение свечей).
Результаты работы программы
Было запущено несколько трендовых роботов, которые показывали достаточно хороший результат, но со временем этот результат мог сильно прыгать, и уходить в минус. Алгоритмы в процессе редактировали, и последние результаты уже не дают прибыли в 10-20 % в месяц, но главное и не уводят в минус (пока самый большой минус был около 1.5%).
Выводы
Для себя я понял, что написать роботов можно почти на любых языках, но важнее иметь правильные рабочие алгоритмы. Для правильных алгоритмов нужно много тестирования, в том числе на исторических данных. Можно было и дальше развивать свою программу, но для того, чтобы она была похожа по функционалу и количеству бирж даже на бесплатные аналоги, уйдут годы. Мною было принято решение перейти к изучению языка c# и платформы OSEngine в целях экономии своего времени.
Алготрейдинг на iPhone
Из плюсов такого подхода могу выделить только то, что девайс не так критично реагирует на отключение электричества/интернета, так как имеет аккумулятор и дополнительно обычный мобильный интернет при потере wi-fi. Эти плюсы становятся не актуальными при аренде сервера, а для нормальной работы он обязателен. Серверы на macOS для запуска моей программы так же существуют, но они дороже, и встречаются гораздо реже. Единственным вариантом алготрейдинга на iPhone я вижу использование его в качестве фронтенда, когда твои роботы запущенны на сервере, а ты в любой момент может зайти и посмотреть статистику и возможно поменять параметры индикаторов, но для этого так же нужно сначала написать API для взаимодействия iOS-приложения с той-же например OSEngine, запущенной на сервере, в которой и будет происходить основная работа.