📢 🤖 Анонс нового раздела и двух публичных торговых ботов от RuDex: SpreadTrade и TrailingStop

in #blockchain6 years ago (edited)

photo_2018-11-21_16-25-38.jpg

Привет, уважаемые пользователи RuDex и сообщество Bitshares!

Пока все грустно поглядывали на свои позиции на умытых кровью рынках, мы не теряли времени даром и подготовили для вас нечто новое и весьма полезное. Итак, интерфейс биржи RuDex пополнился новым разделом с говорящим названием “Боты”.

На данный момент в нём представлены два бота, воплощающих в себе стратегии SpreadTrade и TrailingStop.

Со временем наш зоопарк публичных торговых ботов для Bitshares DEX будет дополняться новыми экземплярами, так что приглашаем всех ботоводов подписаться на этот блог и следить за обновлениями.

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

Бот SpreadTrade

ПОШАГОВАЯ ИНСТРУКЦИЯ:

Начальные данные:

  • поля base и quote: рынок, на котором должен торговать бот;
  • поля balance: доступный для использования баланс для base и quote;
  • поля amount: объем актива, выставляемый в ордера (абсолютное значение, если выбран value-checkbox, процент от balance, если выбран balance %-checkbox);
  • поля spread: спред относительно расчетной цены для каждого актива;
  • default price: цена по умолчанию, в случае если это не bitAssets;
  • get price from market: брать ли цену с рынка.

При старте бот подписывается на новый блок в блокчейне. При получении нового блока он каждый раз производит проверку двух ордеров: на покупку и на продажу.

Если ордера нет, то бот проверяет, не исполнится ли новый ордер при выставлении с ценой feed_price * (1 ± spread / 100), и достаточно ли balance для выставления ордера с amount.
Если balance достаточно, и ордер не исполнится – бот выставляет новый ордер. При выставлении нового ордера поле balance уменьшается на amount.

В том случае, если ордер есть, бот сравнивает feed_price и цену ордера. Если цены разнятся больше, чем на spread / 2, и в то же время при выставлении ордера на цену feed_price * (1 ± spread / 100) алгоримт не исполнит его, принимается решение о сдвиге ордера к цене feed_price * (1 ± spread / 100).
Для этого текущий ордер отменяется, а balance увеличивается на количество актива, оставшегося в ордере. Затем выставляется новый с необходимой ценой и объемом min(balance, amount).

Если поле balance – числовое значение. Если ордер для base был выставлен ранее, однако не был найден при очередной проверке, делается вывод об исполнении ордера. Помимо вышеописанных действий, balance для quote увеличивается согласно цене исполненного ордера. Аналогичное поведение характерно и для quote ордера.

Если поле balance пустое. Доступным для бота балансом считается баланс привязанного аккаунта.
Если поле balance имеет значение "-", баланс актива считается равным 0 и не меняется.

Расчет цены производится следующим образом: если выставлено get price from market, цена берется из рынка. Если активы состоят из smart-asset и core-asset (BTS), цена пересчитывается к base-активу, используя полученную из блокчейна цену. Для smart-пар не содержащих core-asset (BTS) пересчет производится в два этапа: на первом рассчитывается цена к BTS, на втором – пересчет к base-активу.

Для пар, состоящих не только из smart-активов (или только из UIA), проверяется, не установлена ли default price. Если она не установлена, то формируется запрос к binance.com. У активов второго порядка (OPEN.BTC, RUDEX.BTC) исключаются префиксы. USD исправляется на USDT. Например, запрос OPEN.BTC/OPEN.USD формируется в BTC/USDT-запрос.

Если запрашиваемая пара не торгуется на binance, то цена приравнивается к 0, и торговля не ведется.


Бот TrailingStop

ПОШАГОВАЯ ИНСТРУКЦИЯ:

Начальные данные:

  • sellAsset и getAsset: продаваемый актив и желаемый для получения соответственно;
  • amount: количество продаваемого актива;
  • stoploss и minAmount: цена, при которой создается ордер, и минимальное количество getAsset-актива;
  • trailing percent: максимальная разница между ценой stoploss и текущей ценой.

Поля stoploss и minAmount взаимосвязаны и показаны исключительно для удобства настройки бота.

При старте бот подписывается на новый блок в блокчейне. При получении нового блока он каждый раз производит проверку цены на рынке.

Если рыночная цена больше stoploss, чем на trailing_percent, цена stoploss корректируется на эту разницу. Если рыночная цена ниже stoploss + trailing_percent / 3, выставляется ордер для продажи актива sellAsset с ценой stoploss и объемом amount. После выставления ордера бот останавливает свою работу.

На этом пока всё! Надеемся, что теперь вам станет еще проще заниматься поддержанием STEEM/SBD и любого другого токена DEX, не прилагая к этому чрезмерных усилий.

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

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

  • RuDex team

Загрузите десктопное приложение с открытым исходным кодом RuDex


Если вам нравится то, что мы делаем - поддержите witness blckchnd в сети Bitshares


Телеграм чат: https://telegram.me/BitSharesDEX_RU