Торгобот


Здравствуйте мои маленькие криптотрейдеры. Решил вывалить на вас ушат очередных исходников. В этот раз исходники торгового бота со смешным названием - TORGOBOT! ))

Billionaire_Bot.jpg

Месяц назад я переехал на rudex.org со своей мелочевкой, я даже писал пост с призывом перевести торговлю на rudex.org. Тем более комиссия за перевод туда GOLOS и GBG нулевая. И там можно будет менять токены на рубли.

Собственно на rudex.org я увидел первых в своей жизни трейдерных ботов на btsbots.com. Я настроил несколько штук, с разными настройками, что бы поиграться и выяснить оптимальные. Автоматическая торговля это весело, скажу я вам и по ощущениям это работает. Одна проблема, ботам нужны открытые браузеры иначе они не работают. А так как я иду в отпуск, и оставлять включенным компьютер на месяц я не хочу, то я решил написать торгового бота, аналогичному btsbots.com.

Сказано-сделано, но для начала я решил его испытать на голосе. За один вечер получилось написать скрипт для бота, во второй вечер я приделал к нему telegram с оповещением о закрытых и открытых ордерах. И вот уже пару дней мой бот торгует с попеременным успехом на внутренней бирже. @torgobot. Пока что он обменял все GBG на GOLOS-а из за пампа золотых, но теперь потихонечку начинает выкупать золотые. Доход не ахти какой конечно, но и внутренний рынок не отличается интенсивностью. Пока что я играюсь с настройками, пытаюсь подобрать правильную стратегию.

Я параллельно начал писать такого же бота для bitshares, но различия в блокчейнах оказались более разительными, между голосом и bitshares, чем я ожидал. Поэтому бот для bts еще не совсем готов, но вчера я на пробу запустил его и у него получается торговать. Правда он, выделенные ему 40 BTS за ночь ополовинил, но это наверное потому, что торговал он по 2 BTS ))

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

Стратегия

Стратегия у бота простая как кирпич - покупать подешевле, продавать подороже. Бот получает список открытых ордеров, и берет bid с самой высокой ценой и ask с самой низкой. Создает ордер с ценой ниже на заданное число процентов относительно лучшего предложения на покупку и другой ордер соответственно с ценой выше самого выгодного предложения на продажу.

Соответственно, если начнут выкупать ордера выше по стакану, то когда нибудь дойдет очередь и до ордера выставленного ботом. Если ордер закроют, то бот выставит новый. Если сверху по стакану добавятся ордера и цена будет "отставать" от рыночной, то бот отменить ордер и выставит с новой ценой.

Смысл, что бот будет реагировать на медленные колебания рынка. )) Так я себе это представляю. Так как я не специалист и умных книжек не читал, то путать вас дальше теорией не буду.

Исходники и настройка

Исходники можно найти на bitbucket.com, в моем аккаунте

https://bitbucket.org/gropox/torgobot

В директории с исходниками есть пример конфигурационного файла. config.json.example. Переименуйте его в config.json и отредактируйте на свое усмотрение

{
    "ws" : "wss://ws.golos.io",
    "chain_id" : "782a3039b478c839e4cb0c941ff4eaeb7df40bdd68bd441afd444b9da763de12",
    "userid" : "torgobot",
    "key" : "5K",
    "base" : "GBG",
    "quote" : "GOLOS",
    "bid" : {"percent" : 0.5, "max" : 20},
    "ask" : {"percent" : 0.5, "max" : 20},
    "telegram" : {
        "token" : "333",
        "chatid" : 1,
        "send_messages" : {
            "empty_balance" : true,
            "balance" : true,
            "top_prices" : true,
            "desired_prices" : true,
            "open_orders" : true,
            "create_order" : true,
            "changed_desired" : true,
            "filled" : true
        }
    }
}

Думаю в основном все должно быть понятно. Если нет, то лучше не пытайтесь ))

    "bid" : {"percent" : 0.5, "max" : 20},
    "ask" : {"percent" : 0.5, "max" : 20},

bid.percent задается процент, на сколько цена создаваемого ордера будет ниже максимального бида, ask.percent соответственно наоборот. max, максимальный размер ордера 20 GBG и 20 GOLOS в данном случае

    "telegram" : {
        "token" : "333",
        "chatid" : 1,

Это если ходите получать уведомления о закрытых и открытых ордерах. (Собственно бот может и не торговать, а только извещать)



Для этого вам надо создать своего персонального бота в телеграме и получить токен к нему у botfather. Как это делается, я расписывать не буду. Полно статей и в интернете и тут на голосе. chatid можно будет узнать в логе, запустив бота его с опцией debug и послав пару сообщений боту. chatid нужен, что бы бот только вам слал сообщения.

        "send_messages" : {
            "empty_balance" : true,
            ....

Этими настройками можно включать и выключать (true или false) сообщения, которые бот будет слать в чат телеграма. У меня сейчас сейчас включено следующим образом и мне достаточно, иначе будет приходить слишком много сообщений

            "empty_balance" : false,
            "balance" : true,
            "top_prices" : false,
            "desired_prices" : false,
            "open_orders" : true,
            "create_order" : true,
            "changed_desired" : false,
            "filled" : true

Запуск

перед запуском, в папке со скриптом, выполните npm install, что бы установить необходимые библиотеки.

Для запуска бота выполните следующую команду
node index.js broadcast debug

debug можно опустить, если бот работает нормально, что бы не засорять логи
broadcast - если запустить бота без этого параметра, то он не будет ничего делать, только слать сообщения в телеграмм.

Внимание, бот при запуске отменяет все выставленные ордера, лучше его запускать на отдельном, специальном аккаунте.

Пробовать на свой страх и риск, за ваши монеты вы отвечаете сами. )) Помочь с установкой к сожалению сильно не смогу, из-за нехватки времени - сами разбирайтесь. Кое-какие технические навыки лучше иметь, что бы запустить бота. Бот скажем так, не для крипто-обывателей.

Удачи!


Comments 15


Интересно.
Для криптопии не пробовал ботов делать?

28.09.2017 08:50
0

Не, это мой первый бот.

28.09.2017 08:51
0

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

28.09.2017 09:07
0

Спасибо, Горох! ?
А твой @torgobot только на внутренней бирже "Голоса" торговать может?

P. S. Сделаю на всякий случай репост. = )

28.09.2017 09:26
0

Ну наверное и на стимовской еще, но не проверял

28.09.2017 11:20
0

Экий вы умелец! Еще б понять, все, что написано.) Репостну-ка я и потом вникну. А вдруг пойму)

28.09.2017 15:27
0

Отлично, надо будет потом на пару GOLOS / GBG /BitRUBLE запустить на DEX маркетмейкить)

28.09.2017 15:28
0

Смысл, что бот будет реагировать на медленные колебания рынка.

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

30.09.2017 10:07
0

@ropox Вот такого бота сделать слабо? /ru--kriptovalyuty/@primus/avtomatizirovannaya-torgovlya-altkoinami-na-birzhakh-kriptovalyut-chast-3-primer-prostogo-torgovogo-algoritma

07.10.2017 16:05
0

Да, можно, по сути надо добавить анализ пар, составление списка и балансов. Все остальное есть. Я про битшары и если они еще будут, когда вернусь. И надо будет попросить @primus объснить активити диаграмму. На ней ни одного Да, и ниодного Нет не подписано, может с телефона не видно. Вернусь с отпуска в ноябре. Попробую разобраться.

07.10.2017 16:57
0

Спасибо, Георгий. Удачного Пути!

07.10.2017 17:41
0

На блок-схеме переходы в алгоритме по условию "нет" выделены красным цветом, по условию "да" - черные стрелочки.

07.10.2017 20:14
0

Line 138 вместо "BID.max" должно быть "ASK.max", похоже

19.10.2017 09:49
0

Да,спасибо, копипаста видимо. Я обычно одинаковый макс выставлял, не обратил внимания.

19.10.2017 10:40
0