Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
04 октября 2024, 18:55

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

Рассмотрим пример того, как усреднять позицию, выставляя в рынок одновременно несколько ордеров.

Это стало возможно совсем недавно, т.к. камрады из сообщества очень просили. Методы, которыми будем пользоваться для усреднения позиций, называются BuyAtLimitToPositionUnsafe и SellAtLimitToPositionUnsafe. В отличие от старых методов (Без приписки Unsafe), данные методы не убирают предыдущие ордера на усреднение, и можно выставить в рынок множество ордеров.

Точка входа у робота контртредовая на канале Envelops.

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

 

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

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

https://github.com/AlexWan/OsEngine

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

1. Regime – режим работы.
  1. Off – Выключен.
  2. On – включено без ограничений.
  3. OnlyLong – открытие только длинных позиций.
  4. OnlyShort – открытие только коротких позиций.
  5. 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. Envelops length – длина индикатора Envelops.
6. Envelops deviation – отклонение индикатора Envelops.
7. Stop percent – движение от входа до выхода в % для установки стоп-приказа.
8. Profit percent – движение от входа до выхода в % для установки профит-приказа.
9. Average one percent – расстояние, на котором будет выставлен первый лимитный ордер на усреднение позиции.
10. Average two percent – расстояние, на котором будет выставлен второй лимитный ордер на усреднение позиции.

 

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

 

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

 

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

  1. Если ранее был активирован стоп приказ или профит, или позиция ещё открывается, выходим из метода.
  2. Если по позиции нет открывающих ордеров, заходим в эту ветку кода.
  3. Рассчитываем цену для ордеров для усреднения.
  4. Считаем кол-во исполненных открывающих ордеров, чтобы не выставить лишнего.
  5. Если ранее по позиции был только один ордер (т.е. отрывающий позицию), выставляем два ордера на усреднение.
  6. Место использования методов для усреднения позиции.
  7. В случае, если по позиции уже было два открывающих ордера, т.е. осталось по логике одно усреднение, усредняем.
  8. Место использования методов для усреднения позиции.

 

6. Логика закрытия позиций. Часть 2. Стоп и профит.

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

  1. Считаем цену для стопа.
  2. Пытаемся перевыставить стоп.
  3. Считаем цену для профита.
  4. Выставляем профит.

 

7. На выходе.

Робот, торгующий контртренд от канала Envelops, прикрытый стоп ордером с выходом в прибыль по Профиту в %, и два лимитных ордера на бирже для усреднения позиции, если цена пошла против нашей позиции.

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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

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

Усреднение двумя лимитками, ожидающими в рынке. Микроменеджмент позиций в OsEngine #8

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 #8

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн