Ого, целых два плюса) сори что так поздно, очень плотный график и всё такое. А ещё я не могу найти где тут личные сообщения. Чел что прислал мне письмо, спасибо за ценную инфу, обязательно почитаю на досуге!
Ну и продолжение истории.
Немного технических подробностей. Раньше я знал что есть всякие разные среды разработки, что есть питон нескольких версий, системы контроля версий и сборщики поставок, но на очень поверхностном уровне (впрочем и сейчас ни во что не углубляюсь дальше чем необходимо для кратчайшего решения моей прикладной задачи). Так что за нубство в отдельных вопросах сорян)
В январе уже устал держать бота на ноуте и арендовал пару vds. Их сейчас везде полно. Кстати они на windows server 2012 (позже объясню почему). Я занимался разработкой в pycharm одновременно на Mac и ПК, а для контроля версий ткнул на первое что попалось - bitbucket. Выбор postgresql был оправдан тем что эта субд есть для всех ос. Для сборки использовал pyinstaller - очень хотелось чтобы бот был в 1 файле, типа скопировал на сервер и запустил. Прочел где-то про ограничения, что на mac можно делать сборки только для os x, а на винде только под винду (скорее всего всё можно, просто я не знаю как). Поэтому очевидно, что линукс на сервере отпадает, остается только винда.
В январе началось самое веселье) боты торговали крипту к крипте (землю к земле, прах к праху), а учитывая сильную волатильность - делали и хороший плюс и хороший минус (опять же, если считать в крипте). А дальше было это бесконечное падение.. Даже учитывая что в количественном отношении крипты у меня стало немного больше, в деньгах я потерял много-премного процентов. Мое предположение о том что альты к биткоину будут приносить такие же дикие прибыли как в 2017 году не сработало
В какой-то момент я остановил торговлю и занялся переписыванием биржевого апи чтобы оно было "более лудшим", ордера чаще закрывались и ошибки биржи не выбивали ботов из колеи, перестройкой и упрощением стратегии, адаптацией для торговли только на usdt-btc в лонг. Пробовал задружить бота с другими биржами.. Как ни странно, всеми нелюбимый poloniex оказался самой стабильной и дружелюбной биржей с точки зрения API. Вот краткое резюме: bitfinex - красивая и функциональная там только оболочка в браузере. Для моих же целей API был очень враждебный - конские ограничения по загрузке исторических данных, длинные задержки, периодические отвалы. Конечно можно было задействовать какую-нибудь чужую продвинутую обертку или потратить кучу времени и написать свой велосипед, но чего-то мне не хватало, уже не помню чего. Bittrex - аналогично, но отвалы и задержки во время активной торговли были вообще за пределами адекватности. Последнее что пробовал недавно - binance. Нашел качественную обертку, но опять же, одним взмахом историю не загрузить, какие-то там веса для вызовов, непонятные лимиты, временные баны, чёрт ногу сломит. Но я даже честно сделал выставление ордера параллельно с poloniex. Последняя ошибка, которая заставила меня забить - если время сервера отличается хоть на пол секунды от времени биржи, запрос отклоняется. Когда пинг больше половины секунды - считай всё. А пинг скачет рандомно. На форумах люди советовали поставить какой-то секретный параметр, но было уже лень. Итого - остался на poloniex. Пусть там нет маркет-ордеров, стопов и трейлинг-стопов, зато стабильность. По мне так эта биржа была сделана специально для ботов, ведь в браузере интерфейс ужасный, торговать руками очень неудобно.
После перехода на торговлю usdt-btc только оттачивал обертку для биржи и бэктестил свои недалёкие стратегии) Относительно недавно попробовал внедрить канонический риск-менеджмент, но результатом остался недоволен (небольшое увеличение профита на истории) потому что не умею правильно считать уровни S/R - уж очень сложно, неточно и медленно это у меня получилось, бектестинг превратился в улитку, об оптимизаторе и говорить не стоит. Скорее всего это потому что я ничего толком не умею в математике на питоне) Но идея осталась. Возможно смогу правильно поставить задачу каким-нибудь индусам и они мне что-то напишут.
Сейчас уже ничего не делаю, потому что очень много работы по 1сным проектам. Только строю планы по развитию. Бот работает сам, что-то там продает, покупает, уже почти не отваливается. Функционал так и остался базовый - вход по сигналу, выход по сигналу, тейк-профиту, либо стопу. Тейк и стоп естественно реализованы на уровне бота, а не биржи (так таких ордеров просто нет).
Вот несколько карточке из стобца ideas у меня в trello))
- сбор и экспорт подробной статистики, чтобы дальше повертеть это и визуализировать в экселе
- приложение для контроля бота. Это очень большая карточка. Идея следующая. Бот работает полностью автономно, но таки есть случаи когда требуется вмешательство человеков. Например, во время интенсивного пролива апи биржи иногда подвисает и бот выставляет ордер с опозданием с уже неактуальной ценой. Программно это обрабатывать сложно. Проще вручную нажать в приложении - выйти любой ценой. Или я вижу, что бот сделал плохой вход. В таком случае нужно его подстраховать - пододвинуть стоп, либо заставить его выйти без потерь прямо сейчас - изменить тейкна текущую цену. Ну и просто посмотреть текущие позиции, статус, статистику, остановить, запустить с телефона очень удобно. Для всего этого требуется сервер приложения на стороне сервера и клиент на стороне телефона. Сервер приложения делает две простые вещи - считывает/записывает данные о текущей позиции, стопе, тейке в postgresql и общается с клиентом допустим через http-сервис данными в json.
Ну про самое интересное - результаты. Итого я довольно бездарно слил около 3000$ )) Всего на эксперименты с ботом выделял около 5000$. Довольно дорогой опыт, зато было весело получать такой опыт, гореть новыми идеями и вот это вот всё. Для кого-то это вообще не деньги. Изначально рассчитывал что потеряю всё, потому что каждый должен терять всё перед тем как начать что-то немного понимать)
Нынешняя стратегия довольно простая.
Таймфрейм 15 минут.
Точка входа: наличе бычьего тренда, сигнальная линия пересекает macd сверху вниз, rsi находится в диапазоне от 40 до 50.
Точки выхода: rsi>74 или тейк (+15% от цены входа, это на всякий случай
) или стоп (-1% от медленной ema, по которой определяется тренд)
Бычий тренд определяется когда быстрая ema пересекает медленную снизу вверх.
При текущих параметрах на истории стратегия дает доходность как на рисунке. Естественно на истории все стратегии супер граали) так что не стоит обольщаться. В реальности всё будет не так радужно.
Синяя линия - баланс в usdt (его шкала справа).
Красная линия - график цены биткоина, его шкала слева.
В этом бэктесте начальный баланс 1000$.
На графике красной линией отмечен момент когда бот начал торговать usdt-btc.
Видно что баланс чуточку вырос при том что курс биткоина немного упал.
Ещё видно что при медвежьем тренде бот находится в просадке, но не такой сильной как при buy&hold. Ловит некоторые бычьи движения даже в общем медвежьем тренде. Ну а в бычьем тренде естественно наращивает баланс.
Прикрепленные файлы:
Снимок экрана 2018-09-05 в 23.17.47.png
Снимок экрана 2018-09-05 в 23.18.01.png