BOTanica - торговый бот
Botanica – робот для автоматизированной торговли на бирже Poloniex с использованием api-протокола. Применяет стратегию коротких позиций с заданной ставкой прибыли (или не очень коротких, в зависимости от настроек и Вашей жажды наживы
) и усреднением при нисходящем тренде.
Что умеет бот в текущей версии:
- торговать валютными парами BTC_XXX, где ХХХ валюты из вкладки – “ВTC” панели MARKETS, веб-интерфейса биржи poloniex.
- самостоятельно выбирать, из заданного пользователем списка, валютные пары для торговли, в зависимости от состояния рынка. Так же возможно строгое задание пар.
- одновременная торговля несколькими парами (пока количество неограниченное)
- входить в торговлю (выставлять ордера на покупку) в ручном или автоматическом режиме, с использованием алгоритмов анализа текущего состояния рынка (подробное описание алгоритмов ниже)
- обрабатывать подвисания и ошибки многострадальной биржи Poloniex.
- подавать звуковое оповещение о совершенных торговых операциях.
Процесс торговли происходит по следующему алгоритму:
- Выставление ордера на покупку, по лучшей цене в стакане.
- В случае перебивания курса вашей ставки, чужим ордером, бот автоматически изменит цену на лучшую, до тех пор пока ставка не будет куплена.
- После исполнения ордера на покупку будет создан ордер на продажу с заданным в настройках процентом прибыли, а так же орера подстраховки (на покупку) для дальнейшего усреднения, с шагом и коэффициентом увеличения (мартингейлом), так же заданными в настройках.
- При падении курса и исполнении ставок подстраховки, ордер на продажу будет изменяться с учетом купленных ордеров. Так же будут добавлены новые ставки подстраховки, если не достигнут предел падения курса указанный в настройках.
- При исполнении ордера на продажу (фиксирование прибыли) удаляются все неисполненные ставки подстраховки этой валюты и цикл начнется заново, с той же или с другой валютной парой, в зависимости от состояния рынка и пользовательских установок бота.
Описание настроек и интерфейса программы:
- «Размер ставок (BTC)». Сумма первой ставки на покупку при вхождении в торги. Если параметр (5) - «Мартингейл» равен 0, все последующие ставки подстраховки так же будут равны размеру первой ставки.
- «Шаг ставок». Шаг цены при выставлении ставок подстраховки. Например: если первый ордер вхождения условной валюты был куплен по курсу 0.1 btc, при шаге ставок - 0.5%, значит ставки подстраховки будут выставлены по курсам: (1)0.0995; (2)0.099; (3)0.0985; (4)0.098;…
- «Количество ставок». Максимальное количество ставок подстраховки, которое будет выставлено ботом при падении курса. Например: при кол-ве ставок - 39 и курсе ордера вхождения - 0.1, ордера подстраховки будут иметь следующие курсы: (1)0.0995; (2)0.099; (3)0.0985; (4)0.098,… (39)0,0805. При указании этого параметра нужно учитывать размер вашего депозита.
- «Доходность (Коэффициент)». (Не путать с процентом, коэф. 0.003 = 0.3%, 0,01 = 1% и т.д.) Коэффициент прибыли для выставления ордера на продажу, учитывающий комиссию биржи. Например, при значении этого параметра - 0.002 и размере ставки вхождения 1btc, после повышения курса до уровня курса ордера продажи мы получим 0.002btc чистой прибыли, т.е. 0.2%. Если до выхода из торгов по данной валютной паре были так же куплены ставки подстраховки, то прибыль увеличивается пропорционально их количеству.
- «Мартингейл. (Коэффициент как и доходность)» увеличение размера ставок подстраховки. Мартингейл - 0.1 означает что размер каждой последующей ставки будет увеличен на 10% от размера ставки вхождения. Размер ставок подстраховки: (1)0.1; (2)0.11; (3)0.12;….
- «Кол-во валютных пар». Количество пар по которым бот будет осуществлять торговлю.
- «Только продажа». При установленном флажке данного параметра, бот будет только распродавать текущие позиции (если они имеются). Новые ордера на вхождение выставляться не будут.
- «Продолжить с». На этом параметре хотел бы заострить особое внимание. Все свои действия бот синхронизирует с торговой историей Вашего профиля, и записывает ее в свою внутреннюю базу данных. И если его работа была остановлена вручную или прервалась по иным причинам (завис компьютер, пропал интернет и т.д.), то после возобновления работы компьютера можно продолжить работу бота с того же места. Для этого нужно запустить бота и указать ему точку торговой истории с которой следует продолжать работу. Т.е. устанавливаем флажок этого параметра, после чего станет доступно поле для ввода даты и времени, вводим дату и время в соответствии с указанным форматом (пример 2017-06-01 04:15:56) ПЕРВОЙ НЕОБРАБОТАННОЙ БОТОМ ОПЕРАЦИИ после прерывания (брать из Trade History веб-интерфейса в ЛК poloniex). Если за это время в Trade History не появилось новых записей, укажите либо текущее время по UTC (серверное время poloniex), либо время последней обработанной ботом операции с добавлением 1 секунды (второй вариант надежней).
- «Валютные пары». Список разрешенных для торговли валютных пар. К сожалению, пока нет возможности редактировать этот список через стандартный интерфейс программы. Но есть возможность его редактирования в файле настроек - Settings.conf (Раздел “Pairs” ). Подробней о добавлении пар в разделе «установка бота». Если число пар в списке равно или меньше параметра (6) «Количество валютных пар» торговля будет производится исключительно указанными парами. В обратном случае, бот будет сам выбирать пары в зависимости от текущих объемов торгов валютных пар, о чем писалось выше.
- Поле для отображения времени торговых циклов и аналитической информации по валютным парам.
- Текущие выставленные ордера
- Торговая история (Trade History)
- Журнал выполненных операций и обработанных событий, в том числе тут будут показываться безответные запросы и ошибки биржи во время ее зависаний.
- Кнопка запуска и остановки бота
- Флажок отображения полей с API ключами.
Если перевести представленные на скриншоте параметры с коэффициентами на проценты, то они будут выглядеть так:
Доходность (коэф.) 0.004 – 0.4%
Мартингейл (коэф.) 0.05 – 5%
Описание алгоритма автоматического выбора валютных пар:Валютная пара из разрешенного списка с наибольшим объемом торгов будет выставляться первой при условии что: