Конфигурация фильтров и запуск бота

by @JauWoo
Конфигурация фильтров и запуск бота

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

Начало - https://blog.pumpdetector.com/rkqcdapBr

Первая часть (настройка сигналов)- https://blog.pumpdetector.com/rkPBAFZIH


BOT SETTINGS

настраиваем логику бота

Global Settings

Переходим в раздел Real Bot, жмем кнопку Create New Bot, попадаем в раздел глобальных настроек. Заполняем все формы:

  • Bot name - вводим название бота
  • Markets - Binance
  • Tikers - BTC
      • Тесты проводились только с BTC парами. При желании, можно сделать отдельных ботов для ETH/USD пар или торговать всеми тикерами одновременно.
  • Coins - All Coins
      • Выбираем все доступные монеты. Далее бот сам отфильтрует пары с завышенными рисками.
  • Deposit and order size - Выделяем нужную часть депозита и указываем базовый размер ордера.
      • Бот не будет открывать новые сделки, если суммарный размер всех активных ордеров достиг значения, указанного в Deposit Size.
      • Размер ордера для данной стратегии рекомендуется ставить в размере 0.4% от размера депозита. Если депозит равен 0.5 btc, тогда размер ордера должен быть не более 0.002 btc. На самом деле, размер ордера должен зависеть от того, на каком уровне медианы бот заходит в рынок. Чем ближе находится AMMD к уровню -1500, тем больше вероятность разворота рынка вверх, тем больший размер ордера можно использовать. На уровнях от -1200 и ниже рекомендуется использовать размер ордера не более 0.8%от депозита. В текущей версии софта, размер ордера должен контролировать трейдер.
  • Start Bot Condition - Ситуация на крипторынке меняется стремительно. Длительные раздумья, сон, прием пищи и другие отвлекающие от торговли факторы приводят к неудачным точкам входа в рынок. Стоит отвернуться на 2 минуты, а рынок уже развернулся и летит на Луну или в Ад. Функция автозапуска гарантированно активирует бота, как только на рынке сложатся благоприятные условия.
      • 1st Signal: выбираем ранее созданный сигнал AMMD, который срабатывает при входе индикатора в зону от -600 до -1500
      • 2nd Signal: добавляем сигнал VBI +0.7%
      • Бот включится и начнет делать закупки после того, как весь рынок в целом вырастит на 0.7% и этот рост подтвердится ростом на медиане
Базовые настройки стратегии

Open Order Conditions

Следующим шагом настраиваем условия открытия ордеров.

  • Buy coins, If: выбираем сигнал техиндикатора - Williams / -90, To: -100 / 5 minute.
      • По этому сигналу бот закупает монеты, которые вошли в зону перепроданности по Вильямсу.
      • Можно использовать любой другой индикатор или их связку на любом таймфрейме. Чем больше глубина анализа, тем реже приходят сигналы, при этом величина отскока в среднем выше. Например, сигналы на 5и минутных фреймах дают в среднем 1.5-2.5% прибыли, а на 1-2х часовиках имеет смысл ожидать прибыль от 5-7%.
  • Cancel New Order. Эта функция удаляет неисполненный отложенный ордер из стакана.
      • В этой стратегии используем рыночные (market) типы ордеров, поэтому опцию можно оставить выключенной
  • Buying Conditions. Выбираем тип ордера - "by market" или "by price -%%". Если выбрана опция "by price -%%", тогда бот выставит ордер на покупку ниже цены сигнала на Х%.
      • Выбираем "by market"
      • Activate buying by "Echo" signals - активируем и ставим 30 минут. Эта функция покупает те монеты, по которым был сигнал за последние Х минут. При первичном запуске бот сформирует портфель и купит сразу несколько десятков монет. Когда рынок отталкивается от дна, в этот момент растут практически все монеты и пятиминутные индикаторы выходят из зоны перепроданности. Если не успеть купить монеты сразу по хорошим ценам, следующие сигналы могут прийти через несколько часов. Покупки в этом случае будут по худшим ценам и бот пропустит часть пампов.
  • Additional Buy Conditions. В этом блоке настраиваются уровни сетки (лесенки) на усреднение позиции.
      • Open orders below the signal price level - активируем сетку ордеров
      • Reserve deposit for additional orders - резервируем часть депозита для усреднений. Если базовый размер ордера равен 0.4%, тогда на усреднения выделяем 55% от депозита.

1st Level:

      • Open order, if price dropped down by - первый уровень сетки. Выставляем 2%. При снижении цены на 2% бот дозакупит монету.
      • The signal was triggered - усреднение по сигналу. Если в это условие добавить сигнал, тогда ордер на покупку будет выставлен после того, как цена опустится на 2% ниже от первоначальной точки входа и когда сработает выбранный сигнал. В данной стратегии первый уровень лесенки покупаем без дополнительного сигнала.
      • Order size in %% of standart order size - размер ордера в процентах от базового. Ставим 115%
      • Close order, if price rised up by: - уровень тейк-профита. Ставим 1.8%
      • Activate Trailing Stop - каждый уровень лесенки можно закрывать по трейлинг-стопу. В текущем конфиге первый уровень закрываем без трейлинга.

2nd Level:

      • Open order price: 4%
      • Order size: 125%
      • Close order price: 2.2%
      • Activate Trailing Stop Distance: 1.2%

3d Level:

      • Open order price: 6%
      • Order size: 140%
      • Close order price: 2.5%
      • Activate Trailing Stop Distance: 1.5%
условия покупки монет и настройки DCA

Лесенки (аля сетки ордеров) являются полезным и эффективным инструментом, но они также несут в себе большой риск. Во фремя флета рынок ходит вверх-вниз на 2-3-5 процентов, набранные монеты на нижних уровнях сетки успешно распродаются, за счет большего размера ордера прибыль получается выше. Все хорошо идет до начала дампа.

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

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

Для дополнительного контроля рисков, каждый уровень сетки можно активировать по сигналу. Вопросы по этому функционалу задавайте в телеграм канале - https://t.me/pumpdetector_ru


Risk-Management

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

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

В этом примере фильтруем только по трем сигналам, 2 тех.индикаторы на 4х часовом таймфрейме и 1 сигнал на процентное изменение цены. Для лучшей фильтрации нежелательных монет желательно добавить дополнительные блокирующие сигналы на часовом и дневном таймфреймах.

Итак, рассмотрим настройки рисков более подробно.

  • The signal was triggered. Активируем эту опцию и добавляем ранее созданные сигналы:
      • Williams: From -35 To 0 / 4 hours
      • CMO bigger than +20 / 4 hours
      • Price Decreased -3% / 2 minutes
Если монета на высоком таймфрейме находится близко к зоне перекупленности по Вильямсу и Чанде Моментуму, в этом случае покупку не совершаем. Также не берем те монеты, которые резко начали терять в цене и просели на 3% и более. Работаем только с теми активами, которые показывают умеренное и плавное движение.
  • Day volume trade is less - бот игнорирует активы, объем торгов которых меньше указанного в конфиге значения. Если используется большой депозит, имеет смысл дополнительно отфильтровать монеты по объемам.
  • 2 Days Price Increased by - дополнительный фильтр-детектор пампов. Если цена за последние 2 суток выросла на 12%, в этом случае бот не совершает сделки с монетой.
  • Coin Price is Less - если цена меньше Х, тогда активируется запрет на торговлю. Ставим ограничение в 100 сатошей - 0.000001
  • Coin is in BlackList - активация блек-листа.
      • В процессе торговли необходимо добавлять в блек-лист на 2-3 дня те монеты, которые оказались в топ 3 лидеров роста.
фильтры риск-менеджмента

Take-Profit Conditions

Открытые ордера закрываются следующим образом. Как только цена актива выросла, пяти минутный индикатор вошел в зону перекупленности и при этом цена выросла не менее, чем на 2.2%, тогда активируем трейлинг-стоп с дистанцией в 1.5% от максимального значения цены.

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

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

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

  • Фильтр AMMD - можно активировать тейк-профиты, когда медиана находится в заданных значениях. В тестовой торговой системе эту функцию не включаем.
  • The signal was triggered. Активация тейк-профитов по сигналу
      • Включаем этот фильтр и добавляем сигнал Williams From -20 To 0 / 5 minute
  • Current profit is not less, than. Тейк-профит сработает в том случае, если цена выросла не менее, чем на Х%. Если включена эта опция, бот продаст ордер, когда цена выросла на Х% и при этом дополнительно сработал сигнал на продажу.
      • Вводим значение 2.2%
  • Activate trailing stop. Активация трейлинг-стопа при выполнении первых трех фильтров. Трейлинг-стоп будет выставлен на расстоянии (distance) X% от цены сигнала.
      • Включаем эту функцию, Distance = 1.2%
  • Sell all, if price increased by. Альтернативный вариант продажи при фиксированном росте цены. Отключаем.
  • Selling Conditions. Тип ордеров на продажу
      • By Market - ордер будет исполнен по рынку - активируем эту опцию
      • By Price + %% - будет выставлен отложенный ордер на продажу на Х% выше цены сигнала.
настройка условий тейк-профитов

Stop-Loss Conditions

В боте представлены как стандартные условия стоп-лосс ордеров, так и уникальная методика панической распродажи. В тестовой криптовалютной стратегии используем только функционал Panic Sell, о нем чуть подробнее:

  • 1st Signal - Активируем и добавляем сигнал "VBI -0.3%"
  • Pause the Bot - включаем галочку

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

    Второй блок настраиваем уже непосредственно для панических продаж.

    • 1st Signal - Активируем и добавляем сигнал "VBI -2.8%"
    • 2nd Signal - при желании и при модификации стратегии, можно добавить дополнительный сигнал от медианного индикатора или глобального конструктора.
    • Close All Deals. Активируем эту функцию. Когда рынок снизится на 2.8%, бот закроет все активные ордера и перельется полностью в биткоин.
    настройка условий паузы и панической распродажи

    Несколько слов хотелось бы сказать, почему используется уровни VBI -2.8%. Рынок альтов волатильный и движется волнообразно. В рамках восходящего тренда могут случаться ложные пробои вниз. Если активировать функцию паник-сейла на расстоянии 1-1.5% от верхнего пика, в этом случае бот будет закрывать позиции слишком рано, что приведет к первую очередь к лишним потерям на комиссиях и спредах. Что хуже, рынок после микро-коррекции продолжит рост, но бот останется без открытых позиций и пропустит все движение.

    Посмотрим на график VBI. Альты вошли в локальный бычий тренд, но в течении ~2.5 часов был небольшой откат на 2.3%. С коротким паник-сейлом бот в такой ситуации закрое все сделки слишком рано и останется вне рынка. С более длинным стопом бот снимется с паузы через 0.7% после отскока, дозакупит просевшие монеты по сетке ордеров и продаст их выше на ~3-4% по трейлингу.

    Уровень в -2.8% подобран после нескольких месяцев анализа поведения рынка в разных условиях. Если альты снизились на 3%, это говорит о действиях крупного капитала, а большие деньги обладают большой инерцией и с высокой вероятностью падение продолжится. К тому же, глобально альткоины в 2019г находятся в даун-тренде, доминация биткоина безудержно растет.

    Если выставить уровень паник-сейла в 3.5%, в этом случае получаем лишние 0.7% убытка и более высокие спреды (так как дамп в самом разгаре и покупатели в меньшинстве). При этом вероятность быстрого отскока уменьшается.

    Уровни VBI необходимо корректировать, в зависимости от текущей рыночной волатильности и преобладающего глобального тренда.



    Остались вопросы? Будем рады ответить в нашем телеграм канале.
    Присоединяйтесь и участвуйте в обсуждении торговых стратегий и алгоритмического трейдинга.

    https://pumpdetector.com

    https://t.me/pumpdetector_ru

    September 7, 2019
    by @JauWoo