rss

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

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

Блог компании OsEngine | Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

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

Робот-пример: GridBollinger.

Тип сетки: MarketMaking.

Логика: Сигналом для выброса сетки служит индикатор Bollinger. Выше верхней линии – выброс сетки в Short. Ниже нижней линии – выброс сетки в Long. По обратному сигналу – закрытие сетки.

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11 

 

1. Пример в проекте.

Для начала Вам следует открыть исходный код робота GridBollinger. Внутри проекта это здесь:

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11 

 

2. Конструктор.

Сеточники отличаются от обычного робота только способом открытия позиции. Т.е. конструкторы совершенно обычные:

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

  1. Блок кода, в котором мы создаём источник типа BotTabSimple (Моноисточник). Сохраняем его в поле класса. Подписываемся на событие завершения свечи по какому-то инструменту. Подписываемся на событие старта теста для тестера.
  2. Создание параметров. Всё стандартно.
  3. Создание индикатора.

 

3. Параметры робота.

У данного робота две вкладки параметров, рассмотрим их по очереди.

Вкладка «Base»:

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

  1. Regime – режим работы.
    1. Off – Выключен.
    2. On – Включен и будет входить в лонг.
  2. Start Trade Time – время внутри дня, начиная с которого можно начинать выставлять сетку.
  3. End Trade Time – время внутри дня, начиная с которого больше нельзя выставлять сетку.
  4. Bollinger Length – длина для индикатора линейной регрессии.
  5. Bollinger Deviation – отклонение для индикатора линейной регрессии.

Вкладка «Grid»:

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11 

Grid lines count – количество линий в сетке.

  1. Grid lines step – шаг в % между линиями.
  2. Profit percent – расстояние до закрывающего ордера.
  3. Volume type – режим выбора объёма.
    1. Contracts – кол-во контрактов инструмента.
    2. Contract currency – валюта контракта.
    3. Deposit percent – процент от депозита.
  4. Volume on one line – значение объёма. Что именно, зависит от предыдущего пункта. В случае Contracts тут указывается объём инструмента. В случае Contract currency здесь указывается кол-во рублей или долларов, которыми нужно войти. В случае с Deposit percent здесь указывается % от общего депозита, которым нужно войти в контракт.
  5. Asset in portfolio – тут нужно указывать название валюты, которое будет использовано для расчёта объёма, если Вы выбрали тип объёма “Deposit percent”. В тестере, Т-Инвест и Алор оставляем «Prime». На крипте это обычно “USDT”.

*Все значения для объёмов указаны для одной линии.

 

4. Логика сигнала на выброс сетки.

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11 

  1. Все действия происходят в обработчике события завершения свечи.
  2. Если сеток нет, заходим в логику проверки условия для её выброса.
  3. Берём значение верхнего и нижнего канала боллинджера.
  4. Берём закрытие последней свечи.
  5. Если цена выше или ниже, чем линии, заходим в логику выброса сетки.

 

5. Выброс сетки.

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

  1. Создание основного объекта сетки.
  2. Устанавливаем тип сетки. В данном случае это MarketMaking. Т.е. будем заходить и выходить по каждой линии отдельно.
  3. Устанавливаем стартовый объём для первой линии сетки.
  4. Устанавливаем название валюты в портфеле из настроек.
  5. Устанавливаем тип объёма.
  6. Устанавливаем для сетки цену первой линии.
  7. Устанавливаем для сетки кол-во линий.
  8. Устанавливаем для сетки шаг.
  9. Указываем, что шаг сетки в процентах.
  10. Указываем тип профита. Проценты.
  11. Устанавливаем размер профита.
  12. Указываем сторону сетки в зависимости от нахождения цены от линий боллинджера.
  13. Вызываем метод для генерации линий сетки.
  14. Сохраняем то, что получилось.
  15. Включаем режим сетки в ON. После этого должны начать выставляться заявки.

 

6. Удаление сетки после отработки.

В отличии от предыдущего примера здесь также есть закрытие сетки:

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

1. Здесь мы проверяем, завершила ли сетка свою работу или нет. И если завершила, удаляем старую сетку из памяти.

*Закрытые позиции при этом остаются в журнале, всё в порядке.

2. Логика определения точки, где сетку надо закрывать по противоположному сигналу.

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11 

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

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

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

Автосетка по каналу Bollinger. Лонг и Шорт. Контртренд. Робот с открытым кодом. Сетки #11

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

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал научный трейдинг: https://t.me/bad_quant

5.5К | ★1

теги блога OS_Engine_team

....все тэги



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