rss

Профиль компании

Финансовые компании

Блог компании OsEngine | Все настройки для Сетки. #2

Практически любой робот в OsEngine может создавать внутри себя сетки как в ручном, так и автоматическом режиме. В этой статье будем учиться делать это в ручном режиме. Также в ней есть описание всех настроек сетки в первом приближении.

 Все настройки для Сетки. #2

 

Создаём робота с источником BotTabSimple.

Сетки создаются в любом роботе с источником BotTabSimple. Для примера мы создадим робота без логики, который называется “Engine”:

Все настройки для Сетки. #2 

Далее нам нужно открыть окно робота и перейти в меню создания сеток. Здесь нажимаем на кнопку «Новая»:

Все настройки для Сетки. #2 

Нажимаем «Настройки». Вызов окна ручной настройки сетки производиться из этого меню:

Все настройки для Сетки. #2 

Вы увидите окно с множеством вкладок и несколькими десятками настроек.

 

1. Базовые настройки.

Все настройки для Сетки. #2

  1. «Тип сетки»:
    1. MarketMaking – сетка, закрывающаяся отдельно по каждому уровню лимитными ордерами с заранее настроенной точкой выхода.
    2. OpenPosition – сетка, рассчитанная на открытие позиции, стандартным способом выхода из которой является Стоп / Профит или Трейлинг стоп, при этом рассчитывается средняя цена входа по всем уровням, и от них откладываются условные заявки.
  2. «Режим торговли»:
    1. Off – Выключена. В этом режиме сетка не делает ничего, за исключением возможного события включения сетки по «Автостарту».
    2. OffAndCancelOrders — Выключена. Но при этом, если имеются ордера, которые стоят на бирже — робот будет пытаться их отозвать.
    3. On – Включена. Работает штатная логика робота.
    4. CloseOnly – Новые открытия запрещены. Выставляются только ордера на закрытие ранее открытых позиций.
    5. CloseForced – Включена процедура принудительного закрытия сетки. Сначала отзываются все лимитные ордера по сетке, затем закрываются все ранее открытые позиции Market заявкой. После того, как все позиции по сетке закрыты, переводит режим в Off.
  3. «Режим входа в логику»:
    1. Это выбор способа обработки логики робота.
    2. OncePerSecond – один раз в секунду. Рекомендуется включать в реальных торгах, и запрещён к включению в тестере.
    3. OnTrade – на новом трейде. Нужен в тестере в обязательном порядке. В реале может загрузить ЦП и уронить программу, т.к. в реале внутри секунды могут быть тысячи трейдов.
  4. «Режим очистки журнала»:
    1.  True – журнал будет очищаться от ранее закрытых позиций. Это позволяет ускорить работу программы и избавляет от задержек, когда в журнале накапливаются десятки тысяч сделок.
    2. False – выключено.
  5. «Макс. закрытых позиций в журнале»:
    1. Количество закрытых позиций, которые робот будет хранить в журнале. Чем меньше, тем быстрее в итоге скорость работы программы.
  6. Максимальное кол-во лимитных ордеров в стакане на открытие.
  7. Максимальное кол-во лимитных ордеров в стакане на закрытие.
  8. «Ожидание операций»: Время которое алгоритм ожидает, после отправления ордеров на биржу и ничего не делает. Для большинства брокеров нужно оставлять без изменений. 500 миллисекунд.
  9. «Проверять микрообъёмы»: Дополнительная проверка при закрытии позиций. В случае если в ней осталось меньше чем может принять биржа – такая позиция игнорируется. Актуально для бирж криптовалют.
  10. «Макс. Расстояние от цены %»: Ограничение для выставления ордеров. Если линия в сетке находится на расстоянии больше указанного – ордер не будет выставлен. Если указано 0 – то выключено.

 

2. Кнопки управления.

Кнопки для управления сеткой:

Все настройки для Сетки. #2

  1. Загрузить настройки сетки из файла.
  2. Сохранить настройки сетки в файл.
  3. «Старт»: Кнопка для быстрого переключения режима робота в ON.
  4. «Стоп»: Кнопка для быстрого переключения режима робота в CloseOnly.
  5. «Закрыть»: Кнопка для быстрого переключения режима робота в CloseForced.

 

3. Создание сетки.

Вкладка настроек, которая позволяет сгенерировать новую сетку или ввести правила для её генерации:

Все настройки для Сетки. #2

  1. «Направление» – сторона открытия сетки.
    1. Buy – покупка.
    2. Sell – продажа.
  2. «Первая цена» — стартовая цена для расчёта уровней сетки.
  3. «Количество линий» — количество уровней сетки.
  4. «Шаг» — имеется ввиду шаг сетки и его настройки:
    1. Параметр 1, тип шага. Можно настроить в абсолюте и в процентах;
    2. Параметр 2, значение шага;
    3. Параметр 3, коэффициент. Базово единица, которая ничего не меняет. Если начинать изменять это значение, расстояние между линиями будет меняться.
  5. «Профит» — закрытие позиции по линии. Актуально для сеток типа «MarketMaking», при котором каждая позиция по каждой линии должна будет отдельно закрыться:
    1. Параметр 1, тип шага. Можно настроить в абсолюте и в процентах;
    2. Параметр 2, значение профита. Будет отсчитываться от цены линии;
    3. Параметр 3, коэффициент. Базово единица, которая ничего не меняет. Если начинать изменять, расстояние между ценой линии и ценой профита будет меняться.
  6. «Объём» — настройки объёма для линий:
    1. Параметр 1, тип объёма:

  i.      Contracts – указывается жёсткое кол-во контрактов;

 ii.      ContractsCurrency – указывается валюта контракта, т.е. кол-во денег, которое будет потрачено на открытие позиций на каждом уровне;

 iii.      DepositPercent – процент от депозита, который нужно открыть на каждом уровне.
2. Параметр 2, значение объёма на каждый уровень. Что именно означает это значение указывается в предыдущем параметре.
3. Параметр 3, коэффициент. Базово единица, которая ничего не меняет. Если начинать изменять это значение, кол-во объёма будет изменяться.
4. «Актив» — в случае, если Вы выбираете объём типа «DepositPercent», то в это поле нужно вставить название портфеля в валюте, по которому мы будем смотреть текущее кол-во средств. В большинстве случае нужно оставить настройку как «Prime».

7. Кнопка «Создать сетку» — генерирует новую сетку по текущим настройкам.
8. Кнопка «Удалить сетку» — удаляет сетку из памяти.
9. Кнопка «Добавить линию» — добавляет линию в таблицу. Её значение предполагается заполнить вручную.
10. Кнопка «Удалить выбранные» — удаляет линии, которые пользователь выбрал в таблице ниже.

 

4. Таблица с сеткой.

Все настройки для Сетки. #2

  1. Колонка «Позиции». Хранит в себе номер позиции по линии, если она есть.
  2. Колонка «Цена входа». Цена входа по линии. По этой цене будет выставлен лимитный ордер.
  3. Колонка «Цена выхода». Цена выхода из позиции для линии. Актуально для типа сетки «MarketMaking». В режиме «OpenPosition» здесь будут прочерки.
  4. Колонка «Объём». Объём, который должен открыться на данном уровне.
  5. Колонка «Открытый объём». Кол-во контрактов, которое уже открыто на данном уровне.
  6. Колонка «Направление». Направление лимитного ордера на открытие позиции на уровне. Buy / Sell.
  7. Колонка с галочками. Если выбрать какую-то линию и нажать на кнопку «Удалить выбранные», линия будет удалена из сетки.

 

5. Таблица с сеткой. Вызов окна позиции.

После включения сетки в работу мы можем видеть следующее:

Все настройки для Сетки. #2

  1. Если по какому-то уровню есть открытая позиция, появляется фактический объём, обозначенный зелёным.
  2. В колонке «Позиции» появляются кнопки с номерами позиций, привязанных к уровню.

При нажатии на какую-либо кнопку с номером позиции откроется окно её спецификации:

Все настройки для Сетки. #2

В окне спецификации позиции можно будет посмотреть ордера на открытие и закрытие позиции по линии. Трейды, которые по ней прошли. Статус позиции.

 

6. Стоп-торги.

Можно настроить автоматический переход сетки из режима On в другие при помощи следующего окна настроек:

Все настройки для Сетки. #2

  1. «По движению вверх. %» — выключение сетки при движении ВВЕРХ на рынке от первой выставленной в рынок заявки до текущей цены.
  2. Окно для ввода размера движения вверх для закрытия.
  3. Режим, в который нужно перевести сетку при движении вверх.
  4. «По движению вниз. %» — выключение сетки при движении ВНИЗ на рынке от первой выставленной в рынок заявки до текущей цены.
  5. Окно для ввода размера движения вниз для закрытия.
  6. Режим, в который нужно перевести сетку при движении вниз.
  7. «По количеству закрытых сделок» — выключение сетки после того, как закрылось определённое количество позиций по сетке. Актуально для режима «MarketMaking», когда каждая позиция по линии должна закрываться лимитной заявкой и закрывается отдельно.
  8. Количество закрытых сделок для выключения сетки.
  9. Режим, в который надо перевести сетку при выключении по кол-ву закрытых позиций.
  10. «По кол-ву секунд с включения» — выключение сетки после того, как она отработала определённое кол-во секунд.
  11. Кол-во секунд для жизни сетки.
  12. Режим, в который нужно перевести сетку при выключении по времени жизни.
  13. «По времени дня» — выключение сетки после того, как придёт определённое время внутри дня.
  14. Ожидаемое время внутри дня. Ч: Часы. М: Минуты. С: Секунды.
  15. Режим, в который надо перевести сетку при выключении по времени дня.

 

7. Автостарт.

Автоматический перевод режима сетки в ON при достижении определённой цены:

Все настройки для Сетки. #2

  1. «Режим»: режим работы модуля:
    1. Off – выключен.
    2. LowerOrEqual – ожидаем цену инструмента ниже или равной указанной.
    3. HigherOrEqual – ожидаем цену инструмента выше или равной указанной.
  2. «Цена»: ожидаемая цена для автостарта сетки.
  3. Авто-старт по времени дня. Как только время сервера станет больше чем указанное значение, сетка выставится автоматически:
  4. «Сдвинуть сетку на старте»: если включено, то во время процедуры автостарта сетка будет пересчитана относительно текущей цены на рынке.
  5. «Сдвиг первой цены %»: если включен режим сдвига сетки на старте, данное значение указывает на сколько процентов вверх или вниз нужно отклонить первую цену сетки во время пересчёта.
  6. «Режим одиночной активации»: По умолчанию включено, и это означает, что после того как активация сработает, авто-старт будет отключен. Если включено, то исчезает ситуация, при которой Вы потом не сможете выключить сетку, т.к. она будет сразу же выбрасываться вновь.

 

8. Подтягивание (Trailing Up / Trailing Down).

Настройки автоматического перемещения сетки вверх и вниз, вслед за ценой инструмента.

Все настройки для Сетки. #2

  1. «Подтягивание вверх». Включено или выключено.
  2. Шаг сдвига сетки. Чтобы перемещение сетки не работало каждое минимальное изменение цены.
  3. Ограничение. Цена, после достижения которой сетка перестаёт смещаться.
  4. Разрешить двигать закрывающие ордера. Если включено – то закрывающие ордера на сетке тоже будут смещаться по мере подтягивания сетки.
  5. «Подтягивание вниз». Включено или выключено.
  6. Шаг сдвига сетки. Чтобы перемещение сетки не работало каждое минимальное изменение цены.
  7. Ограничение. Цена, после достижения которой сетка перестаёт смещаться.
  8. Разрешить двигать закрывающие ордера. Включено или выключено. Если включено – то закрывающие ордера на сетке тоже будут смещаться по мере подтягивания сетки.

Как это работает:

  1. У сетки есть максимальная и минимальная цена ордера.
  2. Подтягивание вверх смещает сетку вверх, когда текущая цена отклоняется от максимальной цены сетки на «Шаг сдвига».
  3. Подтягивание вниз смещает сетку вниз, когда текущая цена отклоняется от максимальной цены сетки на «Шаг сдвига».

 

9. Неторговое время.

Можно настроить дни, в которые сетка будет автоматически отключаться:

Все настройки для Сетки. #2

  1. Выбираем режим, который будет у сетки в неторговый день.
  2. По нажатию на кнопку открывается интерфейс, в котором можно настроить торговые дни и не торговые периоды.

 

10. Открытие только мейкер

Если ничего не менять, ордера будут стараться не выставляться по рынку. Т.е. в стакан будут выставлены только те ордера, которые не могут исполниться мгновенно.
За это отвечает настройка «Открытие только мейкер». И по умолчанию она включена, т.е. True.

Если её перевести в False, как в примере ниже, все ордера сетки будут выброшены в рынок мгновенно, не зависимо ни от чего:

Все настройки для Сетки. #2




11. Стоп и профит.

Если включен режим сетки «Open Position», доступно выставление общих по всем позициям сетки Стопов и Профитов.

Настройки:

Все настройки для Сетки. #2

  1. «Profit режим»: включен ли общий профит или нет. Варианты: On / Off
  2. «Тип переменной»: Какой тип переменной указан в «Значении». Абсолютные значение или проценты.
  3. «Значение». Профит для сетки.
  4. «Stop-loss режим»: включен ли общий stop-loss или нет. Варианты: On / Off
  5. «Тип переменной»: Какой тип переменной указан в «Значении». Абсолютные значение или проценты.
  6. «Значение». Stop-loss для сетки.
  7. «Trail-stop режим»: включен ли общий trail-stop или нет. Варианты: On / Off
  8. «Тип переменной»: Какой тип переменной указан в «Значении». Абсолютные значение или проценты.
  9. «Значение». Trail-stop для сетки.
  10. Средняя цена входа по всем уровням сетки.

 

Как Stop-loss и Profit выглядят на графике:

Все настройки для Сетки. #2 

  1. По сетке есть открытая позиция. Т.е. на каких-то уровнях наши лимитные ордера исполнились.
  2. Исходя из этих входов рассчитана средняя цена входа в позицию.
  3. Для всех открытых позиций выставлен профит приказ.
  4. Для всех открытых позиций выставлен стоп приказ.
  5. Когда цена достигнет стопа или профита, она будет закрыта Market заявками целиком.

 

Как работает Trail-Stop:

Подтягивающийся стоп по общей позиции сетки выставляется после исполнения первых лимитных ордеров по уровням:

Все настройки для Сетки. #2 

Далее. При движении цены вверх стоп будет подтягиваться вверх.

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

 

12. Остановка сетки по ошибкам выставления и отзыва ордеров.

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

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

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

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

Настройки обработчика ошибок здесь:

Все настройки для Сетки. #2

  1. «Проверять ошибки выставления ордеров». Если галочка стоит, робот будет следить за кол-вом ошибок.
  2. «Реакция». Что будет, если критический уровень ошибок уже произошёл.
  3. «Макс. Ошибок на выставлении». Кол-во ошибок, которое считается критическим, и пора реагировать.
  4. «Ошибок на выставлении. Сейчас». Кол-во ошибок, которое было обнаружено за текущую сессию работы робота.
  5. «Проверять ошибки отзыва ордеров». Если галочка стоит, робот будет следить за кол-вом ошибок при отзыве ордеров.
  6. «Реакция». Что будет, если критический уровень ошибок уже произошёл.
  7. «Макс. Ошибок на отзыве». Кол-во ошибок, которое считается критическим, и пора реагировать.
  8. «Ошибок на отзыве. Сейчас». Кол-во ошибок, которое было обнаружено за текущую сессию работы робота.
  9. Блок настроек, отвечающий за ожидание в выставлении ордеров после переподключения. Рекомендовано оставить как есть. 

Удачных алгоритмов!

Пост из серии статей про Сеточных роботов: https://smart-lab.ru/company/os_engine/blog/1167610.php

Комментарии открыты для друзей!

Все настройки для Сетки. #2

https://smart-lab.ru/company/os_engine/blog/1024149.php

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

6.1К | ★1

теги блога OS_Engine_team

....все тэги



UPDONW
Новый дизайн