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

Автоматизированная торговля на Bittrex, почти как у primus

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




Алгоритм бота достаточно простой - купил по текущей стоимости, выставил на продаже чуть подороже. После продажи - вновь покупаем и продаём дороже.
За основу была взята статья Автоматизированная торговля альткоинами на биржах криптовалют. Часть 3: пример простого торгового алгоритма. от @primus
Часть его утверждения я откровенно говоря не понял. Алгоритмическую блок-схему я также составил сам.
Вначале немного терминологии:

  • ордер покупку - выставленный на бирже ордер на покупку определённого количества альткоинов за BTC
  • ордер на продажу - выставленный на бирже ордер на продаже определённого количества альткоинов за BTC
  • сделка - ордер покупку и ордер на продажу, объединённые в группу.

Если в сделке закрыт один ордер или ни одного - сделка является открытой. Если оба ордера закрыты - то сделка закрыта.
Закрытая сделка - это всегда небольшой доход. Его размер зависит от того, насколько цена в ордере на продажу выше цены в ордере на покупку(минус комиссия биржи на создание ордеров).
Также биржа берёт комиссию при выводе, так что доход с части сделок будет "съеден" биржей. Кругом комиссия, ох…
По каждой торгуемой монете может быть только одна открытая сделка. То есть если купил GBG - пока не продашь с выгодой - больше не покупаешь.

Алгоритмические блок-схемы



https://i.imgur.com/sz5Einb.png
Основной cron, который создаёт сделки и ордера на покупки. Запускается каждые 2 минуты.



https://i.imgur.com/iJdqDAr.png
Cron, который проверяем состояние ордеров и создаёт ордеры на продажу, а также закрывает сделки. Запускается каждую минуту.

Также нужен cron, который будет принудительно закрывать сделки, если монета продаётся слишком долго. У @primus указан лимит в 2 недели. Сколько указать - я пока незнаю, бот пока работает второй день.

Скока денег?

Ну и теперь самое интересное.
Значит накрутку я поставил 1%, чтобы сделки быстрее закрывались.
Покупаю я всегда на 0.00060000 BTC. У Bittrex минималка 0.00050000 + комиссия(по-моему 0.25%)
Продаю все купленные на 0.00060000 BTC монеты.
Одна сделка(купил, увеличил цену на 1% и продал) на 0.00060000 BTC даёт доход примерно 1.55 руб.
На данный момент торгую на парах: BTC-GOLOS, BTC-GBG, BTC-AEON, BTC-EMC2, BTC-ETH, BTC-NEO, BTC-MONA, BTC-ADX, BTC-QTUM.
Ранжировал монеты(кроме GOLOS и GBG) по формуле:




Ну и статистика на вечер субботы и первую половину воскресенья.



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

Непонятки

@primus, у тебя написано Первым делом бот проверяет - есть ли у него открытые ранее ордера и если такие есть - закрывает все текущие ордера. Если крон запускается раз в 2-3 минуты, а ордер выполняется скажем несколько часов - как тогда всё работать будет? Зачем закрывать открытый ордер на продажу через 2-3 минуты? Поясни пожалуйста что ты имел ввиду.

Бот всегда работает как маркетмейкер, т.е. не продаёт по существующей на рынке цене Bid, а выставляет лимитные ордера Ask, но эти лимитные ордера всегда с лучшей ценой на рынке.
То есть вот ты купил монету и прикидываешь за сколько тебе её надо продать, чтоб получить выгоду. Ты её выставляешь на продажу как только монета начинает торговаться на бирже по требуемой тебе цене? Не сразу выставляешь ордер на продажу?
Я после покупки сразу же выставляю на продажу. Есть ли разница в этих подходах, влияет ли она на поведение рынка?

Монеты ранжируются по разнице между Ask и Bid и объёму торговли.
По объёму - это понятно, чем больше объём - тем больше движуха на рынке, скажем так.
А вот ранжирование по спреду я не могу понять чисто логически.
По формуле наверху будут монеты с бОльшим спредом. Но ведь чем больше спред, тем сильнее должна подняться стоимость продажи чтобы превысить стоимость покупки.
А если у пары маленький спред - монете нужно совсем немного подорожать чтобы её можно было продать дороже, чем она была куплена.
Вот этот момент мне проясните пожалуйста.

Ну вот в общем то и всё.

Мне это всё напомнило как я становился программистом. Помню 5 лет очень хотел быть программистом. А потом за 1 месяц я научился программировать и устроился на работу. Тоже самое и с ботом - смотрю на эту статью третий месяц, понимаю что это всё легко и понятно, а заставил себя всё это накодить только сейчас. Ушла у меня на это одна единственная суббота. Мда…

Да, бот написан на PHP, база MySQL. Скрипты дёргаются обыкновенным кроном.
Как только всё отлажу(возможно что-то поменяю) - бота можно будет смасштабировать и на другие биржи.
На Bittrex на начало торговли у меня было примерно 0.029 BTC. Так как ставки я делаю маленькими - торговать я могу хоть двадцатью монетами, но с этим пока не тороплюсь.

Заглавное фото с сайта binexpert.com

41
23.309 GOLOS
На Golos с January 2017
Комментарии (22)
Сортировать по:
Сначала старые