Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
gmaster
7 лет назад

LiveCoin бот на Python 3. Алгоритм работы

Как и обещал, опишу алгоритм работы бота, про которого писал предыдущих статьях:

 LiveCoin API и бот на Python3

 LiveCoin бот на Python 3. Первый отчёт

Итак, что нужно для того, чтобы начать торговлю? 

1. Определяем биржи для торговли

 Биржи должны соответствовать следующим критериям:

А) удобный и понятный API для обоих бирж 

Б) Возможность обращаться к API как можно чаще, многие биржи банят ip при попытках слишком частого обращения к сайту, дабы избежать DDOS атак 

В) У ведущей биржи, к которой мы будем обращаться за уточнением цен должен быть достаточно высокий оборот, намного выше по данной валютной паре, чем на второй бирже 

Г) Биржа, на которой будут непосредственно осуществляться сделки, должна иметь как можно меньшие комиссии за проведение операций, большие стаканы и не совсем маленький оборот, иначе можем застрять в щиткойнах навсегда 

Ну и главное – цены на биржах для определённой нами валюты должны коррелировать между собой, обычно так и происходит, цена валюты на мелких биржах следует за ценой на крупных с некоторой задержкой.  

  В качестве ведущей биржи был выбрал Bittrex, торги бот проводил на ламповом LiveCoin 

2. Проводим технический анализ и выбираем валютную пару  

В плане принципа подбора алгоритма торговли для криптобота я полностью солидарен с @primus и его мнением, высказанным в этой статье.

  Посему, алгоритм моего бота не подразумевает в своей основе никакого сложного технического анализа, он не рисует треугольники и сложные фигуры по типу человечков с плечами, не проводит сложные астрологические расчеты, поэтому умеет торговать только на флэте. Но, судя по тестам, это получается у него вполне сносно.

 Для начала торговли он должен определить, что на данный момент времени торги на валютной паре соответствуют нужному состоянию.

 Как же определить что валюта во флэте? 

  Рассмотрим график средней цены любой валютной пары на Bittrex: 

  Бот каждую минуту обращается к бирже и записывает в базу данных актуальную рыночную цену, время и дату.

Перед началом торговли он должен провести анализ того, что валюта пригодна для торговли .

  Для этого необходимо рассмотреть промежуток времени Δt = t2-t1  

  Пусть  Δt = 4 часа, тогда мы имеем 240 точек со значением стоимости валюты Определим коэффициенты уравнения средней линии методом наименьших квадратов. Алгоритм легко гуглится в интернете, поэтому описывать его не имеет смысла.  

  Получаем прямую

 с = kt + b 

где k это тангенс угла наклона касательной, т. е. tg α. 

Вычисляем arctg и если |arctg(k)| < 0,17 всё нормально и отклонение средней линии не превышает 10 градусов

Соответственно, если график растёт или падает слишком быстро, то данное условие не выполняется и бот в этом случае либо вообще не начинает торговлю, либо ставит максимально возможный аск и выводит всё в биткойны 

3. Строим линии поддержки

  Так как в любой момент времени промежутка Δt нам известно среднее значение стоимости:

 с = kt + b  

  Простым перебором значений записанных в БД мы можем вычислить точки максимального и минимального отклонения от прямой среднего значения стоимости Δtmin и Δtmax.

 Далее запоминаем координаты данных точек и вычисляем коэффициенты для уравнений прямых линий поддержки 

С1 = k(t-tmin)+Cmin 

С2 = k(t-tmax)+Cmax   

  Бот увеличивает полученные значения на 10%, дабы не реагировать на незначительные изменения максимальных и минимальных значений. Такими образом создаются особые warning зоны (на графике отмечены светло-голубыми областями). 

  Теперь мы можем предусмотреть защиту от резкого изменения курса, и если цена выйдет за пределы коридора, отправляется сообщение в телеграм, а там уже должен подключиться человек. Если курс падает ещё, и выходит из warning зоны то бот продает всё в BTC  

  Такое поведения бота мы будем наблюдать в точке t3 на нашем графике

4. Переходим непосредственно к торговле

  Обращаю Ваше внимание на то, что в предыдущих пунктах я описал поведение бота, который анализирует курс валют на Bittrex. Это очень важно, так как данный анализ поможет нам проводить успешные сделки на Livecoin.   

  Произведём наложение графика курса валют с Livecoin на график Bittrex 

Как показывает практика, спреды на LiveCoin гораздо больше, а колебания курса сильнее.

  Поэтому бот, покупает либо продает валюту каждый раз, когда курс на LiveCoin превышает, либо близок к курсу коридора поддержки на Bittrex

  Так как комиссия на LiveCoin составляет всего 0,18 процентов этого достаточно для того, чтобы бот работал в плюс.

  Всё.  Такой вот алгоритм.

Пока на Livecoin наблюдается такая вот картина, всё идёт по плану и бот торгует в плюс:

Но тесты продолжаются и следующий отчёт о работе бота будет уже через неделю. 

Возможно таки решусь и опубликую свой ужасный код, полный костылей и велосипедов. Но это, если появится лишнее время и мотивация).

Если Вам интересны мои посты по данной тематике, можете подписаться на мой блог, дабы не пропустить продолжение.


318
1.665 GOLOS
На Golos с May 2017
Комментарии (14)
Сортировать по:
Сначала старые