Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
22 сентября 2024, 10:34

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

Сегодня рассмотрим пример того, как можно усредняться через отложенные ордера на открытие других позиций.

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3 

 

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

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

https://github.com/AlexWan/OsEngine

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3 

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3 

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

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3 

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

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 – длина индикатора.
6. Envelops deviation – отклонение индикатора.
7. Profit percent – на каком расстоянии от средней по позициям будет выставлен профит.
8. Stop percent – размер стопа для закрытия всех позиций.
9. Average one percent — расстояние от входа до первого усреднения.
10. Average two percent — расстояние от входа до второго усреднения.

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

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

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3 

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

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

  1. Если ранее по позициям активировался стоп или профит, выходим из метода. У робота используются StopMarket и ProfitMarket отложенные заявки. Если стопы сработали, должно закрыться.
  2. Если позиций пока 1 штука, мы должны выставить отложенный ордер на усреднение. На каждой свече надо переставлять, т.к. срок жизни для ордера ставим – 1 свеча.
  3. Берём цену открытия первого ордера.
  4. Если надо докупать в лонг, используем метод BuyAtStopMarket.
  5. Если надо докупать в шорт, используем метод SellAtStopMarket.
  6. Второе усреднение.

 

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

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

 

7. На выходе.

КонтрТрендовый робот от канала Envelops, который может дважды усредниться и который закрывает позицию по стоп и профиту от средней цены входа:

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

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

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

Усреднение позиций через открытие новых позиций с пересчётом тейк-профита по средней цене входа. Микроменеджмент позиций в OsEngine #3

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

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

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

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