rss

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

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

Блог компании Os_Engine | Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

Сегодня будем рассматривать пример, в котором будем последовательно выходить из позиции через лимитки в рынке, выставляя лимитки одну за другой. Вход у нас будет по развороту на свечках, опирающихся на волатильность (через ATR).

Итоговая логика робота на графике выглядит так:

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

1. Открываем робот-пример. CandlesTurnaroundPattern.

На ГитХаб в репозитории OsEngine это находится здесь:

https://github.com/AlexWan/OsEngine

Внутри проекта здесь:

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5


2. Конструктор и сервисный код.

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

  1. Поле для хранения источника BotTabSimple. В это поле потом мы положим объект источника и сможем обращаться к нему из любой части робота. Так удобнее.
  2. Поле для хранения индикатора.
  3. Параметры. Чуть позже поговорим про каждый.
  4. Создание источника BotTabSimple.
  5. Создание параметров.
  6. Создание индикатора ATR. Установка его длины из параметра.
  7. Подписка на событие CandleFinishedEvent (завершение свечи). В обработчике этого события будет вся торговая логика.
  8. Подписка на событие изменение параметров. В этом обработчике мы будем устанавливать индикатору новое значение длины.
  9. Отключаем автоматическое сопровождение позиции.

Настройки такие:

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5 

За что отвечают параметры:

1. Regime – режим работы.
  1. Off – Выключен.
  2. OnlyLong – открытие только длинных позиций.
  3. OnlyClosePosition – доступно только закрытие позиций.
2. Volume type – режим выбора объёма.
  1. Contracts – кол-во контрактов инструмента.
  2. Contract currency – валюта контракта.
  3. Deposit percent – процент от депозита.
3. Volume – значение объёма. Что именно, зависит от предыдущего пункта. В случае Contracts тут указывается объём инструмента. В случае Contract currency здесь указывается кол-во рублей или долларов, которыми нужно войти. В случае с Deposit percent здесь указывается % от общего депозита, которым нужно войти в контракт.
4. Asset in portfolio – тут нужно указывать название валюты, которое будет использовано для расчёта объёма, если Вы выбрали тип объёма “Deposit percent”. В тестере оставляем «Prime». На крипте это обычно “USDT”.
5. Atr length – длина индикатора ATR.
6. Atr mult to entry – размер свечей разворота перед входом не может быть меньше чем ATR * MULT. Т.е. это значение участвует в расчёте размера свечей в паттерне.
7. top percent – движение от входа до выхода в %. Для установки стоп-приказа.
8. Exit one percent – расстояние, на котором будет выставлен первый лимитный ордер на закрытие позиции.
9. Exit two percent – расстояние, на котором будет выставлен второй лимитный ордер на закрытие позиции.
10. Exit three percent – расстояние, на котором будет выставлен третий лимитный ордер на закрытие позиции.

 

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

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

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

 

4. Логика открытия позиций.

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

  1. Берём значения АТR. Если оно вдруг почему-то равно нулю, выходим из логики.
  2. Считаем размер минимального размера тела свечи, умножая ATR на мультипликатор, который выставил пользователь.
  3. Берём свечи по инструменту. Текущую и предпоследнюю.
  4. Берём у свечей размер их тел.
  5. Если размер тел свечи больше расчётного значения и, если последняя свеча растущая, а предпоследняя падающая, входим в лонг.

 

5. Логика закрытия позиций. Часть 1. Стоп приказ.

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

  1. Если ранее по позиции уже активирован стоп, то больше ничего не делаем. Также пропускаем статус Opening.
  2. Заходим в логику закрытия позиции по стопу один раз.
  3. Считаем цену стоп-активации.
  4. Выставляем приказ стоп-маркет.

 

6. Логика закрытия позиций. Часть 2. Последовательное закрытие лимитами, которые стоят в стакане.

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

  1. Считаем количество исполненных ордеров на закрытие. Это надо, т.к. ордера могут отзываться, например, во время клиринга или ночью. И придётся их перевыставлять, обучая робота игнорировать неисполненные ордера.
  2. Профит — закрытие 1. Если в рынке лимит-ордеров сейчас нет, и если кол-во исполненных ордеров на закрытие ноль, выставляем первый лимит на закрытие на биржу.
  3. Профит — закрытие 2. Если в рынке лимит ордеров сейчас нет, и если кол-во исполненных ордеров на закрытие один, выставляем второй лимит на закрытие на биржу.
  4. Профит – закрытие 3. Если в рынке лимит ордеров сейчас нет, и если кол-во исполненных ордеров на закрытие два, выставляем третий лимит на закрытие на биржу.

 

7. На выходе.

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

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

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

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

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

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

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

Последовательный выход из позиций лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #5

★1

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