Документация

Документация робота WhiteBox™

Содержание

Документация пока еще пишется.

 

  • Требования — минимальные системные требования к ПК
  • Первый запуск — для тех кто впервые
  • Безопасность — чтобы никто не смог Вас обокрасть
  • Настройки — про окно настроек робота
  • Интерфейс — про главное окно робота
  • Лот — как регулировать сумму и плечо
  • Режимы — какие есть и зачем нужны
  • Рестартер — чтобы никогда не «завис»
  • Отчёт — покажет результаты торговли
  • Ошибки — какие бывают и что значат
  • Спам — почему биржи блокируют за спам

Минимальные системные требования к ПК

Есть версия только для Windows, версий для других ОС нет и не планируется. Разумнее всего использовать робота на арендованном виртуальном сервере (VPS, не VDS — стоят от $2 в месяц), а не на домашнем ПК. При этом для эксперимента пробовать на домашнем ПК вполне рационально. Из-за того что робота желательно держать на сервере мы решили что версий для других ОС делать не имеет смысла.

 

  • Windows 7 и старше (либо Windows Server 2008 и старше)
  • Разрешение экрана от 1024×600 (адаптирован)
  • Надёжное соединение с Интернетом ЛЮБОЙ скорости
  • От 512 Mb оперативной памяти (желательно 1 Gb и более)
  • От 500 Mb дискового пространства
  • Любой процессор CPU, любая видеокарта GPU

 

Робот сможет нормально работать на самом дешевом нетбуке из магазина, если там Windows 7 или старше. На ОС Andriod робот работать не будет!

На ПК с работающим роботом можно комфортно запускать требовательные компьютерные игры, это не будет мешать.

Первый запуск

Здесь очень краткая пошаговая инструкция для тех кто запускает робота WhiteBox в первый раз. Описано далеко не всё, здесь лишь необходимый минимум.

Портативный

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

Для биржи BitMEX.com

Другие биржи пока не поддерживает, но будут добавлены в будущем. Для запуска у Вас должен быть аккаунт на бирже BitMEX.com и хотя бы минимальное количество средств на счёте (даже 1 доллара может хватить для тестирования).

Создание API-ключа

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

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

  • Шаг 1. Войдите в личный кабинет на BitMEX.com
  • Шаг 2. Нажмите «Аккаунт»
  • Шаг 3. Нажмите «Ключи API»

Далее не обязательные шаги, их можно пропустить.

  • Шаг 4. Введите название API-ключа на английском в поле «Имя»
  • Шаг 5. Введите IP-адрес Вашего ПК для безопасности в поле «CIDR»

Если Вы не знаете свой IP-адрес, то просто введите в любом поисковике «Узнать мой IP-адрес». Имейте ввиду, что Ваш IP-адрес должен быть статическим (постоянным), но не динамическим (значит меняется). Если Вы не знаете статический у Вас IP-адрес или динамический, то Вы можете это узнать на сайте Вашего интернет-провайдера или же позвонить им в службу поддержки. Поле не обязательное.

Роботу обязательно нужно право «Ордер» (право создавать и отменять ордеры). Но НЕ нужно право вывода средств (не ставьте эту галку в целях безопасности).

  • Шаг 6. Поставьте право ордера
  • Шаг 7. Нажмите кнопку «Создать ключ API»

Внизу должны появиться 2 длинных кода API-ключа как на снимке экрана ниже, именно их нужно передать роботу. Он их сразу зашифрует.

Далее нужно запустить робота (если еще не запущен) и установить ему API-ключ от биржевого аккаунта.

  • Шаг 8. Запустите робота
  • Шаг 9. Нажмите кнопку «Settings» («Настройки»)

Переключим язык на русский. Если вставить коды API-ключа (нужно оба) то пока Вы не закроете окно ключи будут видны Вам, но после закрытия окна настроек ключи навсегда зашифруются, и больше их посмотреть будет нельзя. То есть если посторонний человек получит Вашу копию робота WhiteBox, то он не сможет посмотреть или скопировать Ваш API-ключ (поэтому можно спокойно держать копию робота на чужом сервере, например).

  • Шаг 10. Меняем язык в выпадающем списке
  • Шаг 11. Вставляем коды ключа

В нижнем левом углу есть кнопка «Проверка», нажмите. Если проверка сообщает о проблемах значит что-то неверно сделано.

  • Шаг 12. Нажмите кнопку «Проверка»
  • Шаг 13. Закройте окно настроек

Теперь можно настроить торговые параметры. Для этого есть файлы готовых настроек (пресеты). Эти файлы можно открывать простым текстовым редактором Windows («Блокнотом»), если Вам это будет зачем то нужно. Большая кнопка с коробкой это кнопка «Открыть файл». При этом сразу откроется нужная папка, менять папку не нужно.

  • Шаг 14. Нажмите большую кнопку с коробкой
  • Шаг 15. Выберете файл (например, «BitMEX (any)-USD.ini»)
  • Шаг 16. Выберете нужную Вам пару (например, XBTUSD)
  • Шаг 17. В левом верхнем углу нажмите кнопку «Запуск»

Если на бирже появились 2 ордера на выбранной Вами паре, то Вы всё сделали правильно. Для проверки Вы можете на бирже отменить один ордер или оба, и тогда робот их выставит снова. Если робот снова выставил отмененный Вами ордер, то значит всё работает правильно.

Меры безопасности

Если Вы предпримете все нижеперечисленные меры безопасности, то обокрасть Вас никто не сможет, и мы тоже (если бы пожелали).

  • Не давайте ключи. Никому не передавайте Ваши ключи API или пару логин/пароль от биржевого аккаунта, даже если попросим мы (злоумышленники умеют выдавать себя за других, в том числе благодаря взлому аккаунта нужного человека).
  • Не разрешайте вывод. Не давайте API ключу право вывода денежных средств с Вашего биржевого аккаунта. Роботу это право совершенно не нужно для работы.
  • Двух-факторная верификация. Используйте её если Ваша биржа имеет такую функцию.
  • Белый список IP-адресов. У многих криптовалютных бирж есть функция создания «белого списка» IP-адресов (например у BitMEX.com это называется CIDR). Это значит что подключиться по ключу API к Вашему аккаунту получится только с IP-адреса из Вашего списка (там обычно один адрес делают). Кроме того, злоумышленник даже если как-то смог получить Ваш API-ключ, то IP-адрес ему просто не известен.
  • Используйте антивирус. Каждый раз скачивая новую версию робота (обновление) используйте антивирусную программу. Если на Вашем ПК нет антивируса, то воспользуйтесь онлайн-антивирусами — это просто, быстро и бесплатно.
  • Используйте FireWall. Вы можете запретить роботу делать любые подключения, кроме подключения к бирже, через запрет в VPN или программами типа FireWall. Эта мера гарантирует Вам что робот не будет отправлять Ваши API-ключи куда не следует. То есть это защита скорее от нас. А что? Уверенность — приятное чувство, оно не лишнее.
  • Проконсультируйтесь. Если здесь Вам что-то не совсем понятно и Вы сомневаетесь в полной безопасности предложенной схемы работы, то Вы можете проконсультироваться со специалистами (системный администратор вполне подойдет). Покажите специалисту эту страницу, и разобравшись он подтвердит что при такой схеме работы, приняв все меры безопасности, украсть Ваши средства становится уже технически невозможно.

Настройки

Далее всё на примере русскоязычного интерфейса. В окне настроек имеется панель «Интерфейс».

  • Тип лота — в чём будет измеряться размер лота, в процентах от депозита, или в валюте пары.
  • Цены — как будут отображаться цены в интерфейсе, в биткойнах (типа 0,00004000) или в Сатоши (типа 4000).
  • Слайдер — какое количество делений будет у слайдера при торговле.
  • Автозапуск торговли — если галка стоит, то при запуске робота сразу же запускается торговля с последним выбранным файлом пресета, что полезно для автостарта вместе с Windows или при использовании рестартера (о нём позже).

Остальные настройки интуитивно-понятны и не нуждаются в объяснении.

Интерфейс

Верхние кнопки и галки

  • Запуск — запускает торговлю (заменяется на кнопку «Стоп»)
  • Стоп — останавливает торговлю
  • Стратегия / Пара — переключает интерфейс на выбор стратегии / пары
  • Таблицы — включает/отключает таблицы справа в интерфейсе
  • Поверх — интерфейс будет поверх всех окон
  • Звук — включает/отключает звуковые оповещения

Пресеты

Слева панели отображается полный путь к текущему выбранному файлу готовых настроек (пресету). Файл-пресет можно открывать текстовым редактором Windows («Блокнотом»).

  • Большая кнопка с коробкой — открыть файл-пресет
  • Запись — записать измененные настройки стратегии в выбранный файл
  • Копия — создать отдельную копию файла-пресета

Инструмент

Какую пару и на какой бирже будет торговать? Лучше выбирать по порядку сверху вниз. То есть сначала биржу, потом валюту, потом пару. Все валюты и пары автоматически сортируются в алфавитном порядке для удобства. Все пары и валюты автоматически подгружаются с биржи. То есть новые пары, которые биржа добавит в будущем робот сможет видеть и нормально с ними работать без специальных обновлений.

Параметр «Цены» устанавливается автоматически в момент выбора пары, и означает количество знаков после запятой. Вручную его менять не нужно. Это сделано на случай если биржа изменит количество знаков после запятой у пары (это вряд ли будет, но такое возможно). Если биржа изменит количество знаков после запятой, то придется устанавливать его вручную.

Стратегия

Панель стратегии появляется если нажать верхнюю кнопку «Стратегия». Запускать торговлю можно и без стратегии — для торговли вручную, что удобно для получения премии мейкера и борьбы с загруженностью биржи.

  • Галки лонг/шорт — разрешаем ли лонг и шорт.
  • Страт. — торговая стратегия по которой будет торговать.
  • Корр. — корректор для вмешательства в торговлю вручную. Как он будет выглядеть: как слайдер (ползунок), или как поле ввода. Корректор отображается в верхнем левом углу интерфейса после запуска торговли.
  • ТФ — таймфрейм.

Торговля

Лот измеряется либо в процентах от депозита, либо в количестве валюты, смотря что Вы выбрали в настройках робота (кнопка «Настройки» > панель «Интерфейс» > «Тип лота»). По умолчанию в процентах. Тогда 100 означает торговлю на 100% от депозита (плечо 1 к 1). Чтобы торговать с плечом 3 к 1 нужно соответственно выставить лот 300.

Пирамидинг не используется в стратегии ShiftMA.

«Откр.» и «Закр.» — это режимы выставления ордера. Пока работает только лимитный режим.

Лот

Лот — это сумма, на которую робот будет создавать ордеры. Существует 3 варианта как может рассчитываться размер лота (суммы ордеров):

  • В процентах от текущего баланса
  • В биткойнах
  • В валюте выбранной пары

 

В процентах

Если в настройках робота выбран процентный тип лота, то тогда размер лота будет рассчитываться в зависимости от остатка баланса в биткойнах. Если у Вас счёт на 0,5 BTC, и процентный лот выбран 100%, значит Ваши ордеры будут по 0,5 BTC. Если лот 300%, то Ваши лоты уже по 1,5 BTC.

Размер процентного лота пересчитывается в двух случаях:

  • При запуске робота (включая запуск рестартером)
  • При изменении баланса на 5% или более в большую или меньшую сторону

 

Почему размер процентного лота не пересчитывается в режиме реального времени? Дело в том что на биржах в книге заявок (стаканах) существует очередь ордеров. И чем раньше Ваш ордер в очереди, тем более вероятно что Ваш ордер сработает при касании ценой. Место Вашего ордера в очереди ордеров определяется по времени: кто раньше создал ордер — тот и раньше в очереди. Таким образом, чем чаще пересчитывать размер лота, тем чаще роботу придется перевыставлять ордеры (потому что сумма ордера ведь меняется из-за изменения размера лота), и тем хуже будет Ваше место в очереди ордеров. А значит при касаниях ценой будут редкие срабатывания. Проще говоря: чем реже пересчитывается размер лота, тем лучше. Но слишком редкий пересчёт лота тоже был бы плохим вариантом. В данной схеме получается что если пользователь выбрал размер процентного лота 100%, то его реальный лот будет от 95% до 105%, а не ровно 100%. Если пользователь выбрал лот 200%, то реально будет от 190% до 210% (а не до 205%). Такая погрешность не значительна, но позволяет получить место в очереди ордеров получше, и более высокие шансы срабатывания Вашего ордера при касании ценой. Методом проб и ошибок остановились на варианте в 5% (пробовали 1% и 3% — так хуже). Если минимальное изменение размера лота для перерасчёта в 5%, то происходит этот перерасчёт не так уж часто, и место в очереди ордеров почти не теряется.

 

В количестве

Если выбран количественный тип лота, то тогда перерасчёта размера лота не происходит совсем. В параметр «Лот» записывается конкретное количество монет, которые робот должен покупать или продавать одним ордером. Количественный лот более прост для понимания. Так как перерасчёта размера лота не бывает у количественного лота, то потеря места в очереди ордеров никогда не происходит.

Режимы

У торговых систем ShiftMA и MultiMA имеется выбор режима торговли. Одна сторона или две стороны. При этом при запуске, казалось бы, разницы нет. Разница появляется когда открывается позиция. Если пользователь выбрал торговлю и длинными позициями (лонг) и короткими позициями (шорт), то при запуске появляются ордеры и на открытие длинной позиции (ордеры на покупку) и на открытие короткой позиции (ордеры на продажу).

В двухстороннем режиме после открытия любой позиции не отменяются противоположные ордеры, и создается ордер на закрытие позиции. Например: Вы купили монеты по 100 долларов, и появляется ордер на закрытие позиции (на продажу) по цене 105 долларов. При этом не отменяется ордер на открытие короткой позиции (тоже на продажу) по цене 110 долларов.

В одностороннем режиме после открытия любой позиции отменяются противоположные ордеры, и создаётся ордер на закрытие позиции. Например: купив монеты по 100 долларов отменяется ордер на открытие шорта по 110 долларов. До тех пор, пока не будет закрыт лонг.

Или проще говоря: в одностороннем режиме робот не пытается открыть лонг до тех пор пока не закрыл шорт, а в двухстороннем он пытается открыть и лонг и шорт одновременно, что повышает шансы открыть позицию (не упустить сделку). При этом, архитектуры самих бирж в принципе не позволяют одновременно открыть и лонг и шорт на одной паре, поэтому это не может привести к проблемам.

Зачем это надо? Каждый ордер на бирже занимает маржу. Цена ликвидации позиции расчитывается с учётом свободной маржи. Таким образом, чем меньше маржи занято ордерами, тем больше запаса маржи, тем дальше будет автоматически устанавливаться цена ликвидации позиции. То есть проще говоря, риск получить ликвидацию позиции («слив») в одностороннем режиме меньше, чем в двухстороннем. Однако, двухсторонний режим имеет свой плюс: если цена будет двигаться очень быстро, то в двухстороннем режиме робот успеет сразу после закрытия лонга открыть шорт, а в одностороннем режиме может и не успеть. Упущенная сделка так не станет убытком, но станет недополученной прибылью.

Какой режим выбрать? Зависит от размера лота (кредитного плеча). Если Ваш лот для ShiftMA 100% от баланса и менее (или лот для MultiMA 33% от баланса и менее) то рекомендуется двухсторонний режим. Если Ваш лот больше этих значений, то для снижения риска ликвидации рекомендуется односторонний режим.

Рестартер

Сейчас Вам доступна только beta-версия робота. Beta — означает что программное обеспеченье еще не готово, не закончена разработка. Как правило такое ПО выдает еще много не исправленных ошибок, «зависает» и прочее. Самое печальное это если робот «зависнет» с открытой позицией, которая будет убыточной и которую он так и не закроет, раз уж «завис». И чтобы всего этого избежать как временное решение сделан рестартер. Этот скрипт будет периодически перезапускать робота, из-за чего он у Вас никогда не «зависнет». Рестартер это временное решение для beta-версии робота. Когда робот будет доделан, а все ошибки исправлены, то рестартер станет не нужен.

Проще всего если у Вас 1 робот. Чтобы заработал рестартер достаточно поставить галку «Автозапуск торговли» в настройках робота. Если Вы меняли настройки торговой стратегии, то их нужно сохранить в файл-пресет (в любой, можно и свой создать). После запуска торговли нужно запустить файл restarter.bat двойным щелчком мыши. Он находится в папке с роботом.

Как это работает? 1 раз в час рестартер будет «убивать» процесс робота полностью, и сразу же запускать робота заново. Как будто Вы сами раз в час закрываете робота, и запускаете заново. Из-за этого даже если робот «зависнет», то будет в таком состоянии не более часа, а для данной торговой стратегии это совсем не критично.

Файл рестартера возможно открыть простым текстовым редактором Windows («блокнотом»). То есть правой кнопкой по файлу -> изменить. Изначально там такой текст:

TIMEOUT /T 3600 /NOBREAK
taskkill /im javaw.exe
whitebox.exe
cls
restarter.bat

 

Всё это понимать не обязательно. Но если Вам интересно:

  • первая строка это счётчик времени, где 3600 означает количество секунд (в 1 часе 3600 секунд)
  • вторая строка «убивает» процесс робота
  • третья строка запускает робота
  • четвертая строка очищает консоль от текста (это чёрное окно)
  • пятая строка снова запускает рестартер и так по кругу

 

Сложнее настроить если у Вас несколько таких роботов работает одновременно на одном компьютере (или сервере). В этом случае нужно к каждому роботу прописать путь полностью. А выглядеть такой файл у Вас должен примерно как ниже. Путь к роботу Вам нужно указать свой, а не как в примере ниже:

TIMEOUT /T 3600 /NOBREAK
taskkill /im javaw.exe
taskkill /im javaw.exe
taskkill /im javaw.exe
C:\bot1\whitebox.exe
C:\bot2\whitebox.exe
C:\bot3\whitebox.exe
cls
restarter.bat

Чтобы использовать рестартер в настройках робота обязательно нужно поставить галку «Автозапуск торговли». И желательно поставить галку «Запускать свёрнутым окном», которая появилась лишь в 0,917-ой версии (в свёрнутом окне робот потребляет намного меньше ресурсов системы, и это особенно полезно если на одном ПК запущено несколько роботов). Все настройки стратегии нужно сохранить (кнопка «Запись»), иначе робот будет запускаться с предыдущими сохранёнными настройками.

Рестартер нужно запускать от имени администратора системы (с правами администратора системы), в противном случае у него может не быть прав чтобы убить процесс робота.

Кстати, один из пользователей создал видео-урок на Youtube.com как настроить рестартер:
https://youtu.be/eMQ6Q1Q88GI

Отчёт

Начиная с версии робота 0,917 в главном интерфейсе можно формировать отчёты о результатах торговли. В разрезах по дням и по парам. Отчёты могут выводиться в биткойнах или в сатоши, выбирается это в основных настройках робота. Данные в отчёте автоматически не обновляются (в целях экономии лимита запросов API и для снижения нагрузки на ПК). Чтобы обновить данные в отчёте нужно нажать на кнопку «Обновить». Без этого отчёты не обновляются.

Отчёт по дням, в отличии от данных в личном кабинете на сайте биржи, свёрнут по дате. То есть на каждую дату только одна строка, даже если в эту дату были сделки на нескольких парах. То есть отчёт суммирует результаты по всем парам за день. Остаток (или баланс) должен всегда совпадать с тем что Вы видите в личном кабинете на сайте биржи. Изменение счёта за день может быть положительным или отрицательным. Если за дату сделок не было, то эта дата не будет отображаться в отчёте.

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

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

Ошибки

 

Робот отображает ошибки в двух местах:

  • В главном окне на панели «API-ключ»
  • На вкладке «Лог», если переключить на «Ошибки»

На панели «API-ключи» отображается только количество ошибок API за всё время работы робота с последнего его запуска. При этом остановка торговли не обнуляет этот счётчик ошибок. Подробное описание ошибок можно посмотреть на вкладке «Лог» в логе ошибок. Текст ошибок составлен биржей, и он всегда на английском языке. Вариантов ошибок очень много, поэтому их можно сгруппировать по смыслу.

Ошибки временной потери связи:

  • 502 Bad Gateway
  • «Пустые ошибки» (без текста)

Они не опасны, при условии что таких ошибок не более 100 штук в час. Возникают они потому что Интернет-соединение не 100% стабильно у всех, и это нормально.

Ошибки перегруженности биржи:

  • System currently overloaded

Биржа «завалена» запросами от пользователей и временно (обычно несколько секунд) не может обслужить Ваш запрос от робота. Через несколько секунд запросы станут проходить.

SPAM-ошибки. Если размер Вашего ордера по сумме меньше чем 0,0025 BTC или эквивалент, то при большом количестве созданных таких ордеров биржа автоматически присваивает аккаунту (не API-ключу, а аккаунту, что значит удаление и создание новых ключей не решит проблему) пометку SPAM-аккаунт. То есть подозрение что Вы специально вредите работе биржи. При этом может быть выдан бан сроком на 1 час. Проблема возникает обычно со счетами менее $100.

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

Account has insufficient Available Balance

Означает что не хватает свободного баланса для создания ордера с такой суммой. Либо деньги заняты на другой паре (если Вы одновременно торгуете на другой паре), либо у Вас слишком большой размер лота для данной пары, и размер лота надо уменьшить.

Спам

Некоторые биржи, и bitmex.com в частности, имеют ряд ограничений и из-за нарушения их можно получить пометку «Спам» или даже временный бан для доступа по API (в этом случае зайти на сайт биржи получится, торговать вручную тоже, но робот не сможет работать с баном по API). Обращаю внимание: в случае любого бана биржи всё равно позволяют вывести все монеты.

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

К примеру, на bitmex.com запрещается создавать много ордеров на сумму менее 0,0025 BTC или эквивалент (по курсу $10.000 за 1 BTC это ограничение равняется $25). Однако, на практике при создании одного-двух таких ордеров ничего плохого не происходит, биржа не банит, пометку «Спам» Вашему аккаунту не включают. Проблема возникает когда таких ордеров становится слишком много. А сколько это ордеров — не описано.

Решение в том чтобы Ваш размер лота превышал 0,0025 BTC или эквивалент. Причем чем больше размер лота — тем менее вероятно получить пометку «Спам» или бан. Пометка «Спам» может быть установлена временно или навсегда (тоже не уточняется на сайте). Бан по API изначально выдаётся на 1 час, но при повторных нарушениях может быть дольше, в том числе на день, неделю и навсегда. Поэтому не надо воспринимать это как «не проблема», на второй раз будет хуже и опаснее. Ставьте достаточный размер лота, чтобы не получать пометку «Спам» никогда. Пометку «Спам» нужно воспринимать как первое предупреждение от биржи, и при повторных нарушениях их меры ужесточаются.

В русскоязычном варианте сайта bitmex.com написано следующее, цитата:

Счета, на которых открыто слишком много ордеров на сумму менее 0,0025 XBT каждый, будут помечены как спамовые.

Источник: https://www.bitmex.com/app/restAPI

К сожалению, документация (мануал) пока еще не готова и постепенно пишется. Ответ на Ваш вопрос может уже есть в FAQ, а если нет то можете задать в нашем Telegram-чате, где дружелюбное к новичкам комьюнити обычно подсказывают.