Каждый торговый сервер в OsEngine имеет внутри себя объект CandleManager, который следит за тем, чтобы серии свечек собирали свечи и отправляли их вверх. Их нужно активировать. За это одновременно отвечает класс IServerPermission и CandleManager, о которых будем сегодня говорить.
Находится Candle Manager вот здесь:
В нескольких предыдущих постах серии мы разговаривали про IServer, свойства и методы, которые в нём есть. Их много и довольно разных. При этом каждое отдельно взятое API что-то поддерживает, а что-то нет. О том, что конкретно коннектор поддерживает, OsEngine должен знать ДО того, как начнёт запрашивать неработающий функционал. Для этого ServerPermission и существует.
Например, данные могут быть только свечные, или может не быть 15 минутных свечек. Или API может вообще не поддерживать скачку глубоких исторических данных. Или API не поддерживает какие-то торговые операции: нет Market ордеров, не работает перестановка цены ордера.
Cлой автотестов для коннекторов переживает в OsEngine уже ВТОРОЕ пришествие. Увеличившись с первой версии в 10 раз. Про что и будет данная мини-серия статей внутри серии «Коннекторы к OsEngine». АЖ НА 20 Постов. Так надо…
А данный пост о том, зачем такой большой слой тестирования и введение в тему.
Так вышло, что ядро OsEngine тестируется почти без остановки с разных сторон одновременно. И тестером, и оптимизатором и роботами в реальных боях. В какой-то момент дошло до того, что команда в офисе узнаёт о багах, если таковые есть, после их пуша в ядро через 10 – 20 минут.
Выглядит это так:
Рис. 1. Модули, тестирующие слои, поддерживающие работу роботов.
Поэтому само ядро OsEngine стабильно.
Проблемы в другом месте… В коннекторах. Чем мы с Вами и будем весь 2024 год заниматься.
Это самая важная часть создания коннекторов. «Наговнить немного кода, чтобы как-то что-то заработало» — дело нехитрое. Однако при таком подходе пользователи будут не довольны, т.к. коннектор будет работать плохо. Поэтому надо делать хорошо, чтобы коннектор начал проходить автоматические тесты. И для этого придётся попотеть.
Сегодня рассмотрим интерфейс с названием IServer, через который осуществляется доступ к коннекторам в OsEngine. Посмотрим, что у него там есть внутри.
IServer – интерфейс для доступа к реализациям серверов почти во всём проекте. Нужен для того, чтобы унифицировать методы и свойства, нужные для роботов и OsData.
Вероятно, для каких-то молодых камрадов это будет откровением, ибо каждая книжка по Шарпам уже с первых глав нас знакомит с тем, что в C# за сборкой мусора следить не надо. Однако это маркетинговая выдумка. В высоко нагруженных проектах вроде OsEngine, как только ты не проследил за удалением объектов и выкинул это из головы, началась утечка памяти.
Я и сам, как программист-самоучка, очень много лет проживал в этой парадигме, от чего было много проблем как у меня, так и у пользователей OsEngine.
И в этом посте поговорим о том, какие штуки надо обязательно подчищать за собой при удалении коннектора. А вернее при вызове его обязательного к перегрузке метода DISPOSE();
Очень часто коннектор нуждается в перезапуске. Это обусловлено свойствами работы сети интернет. В этот момент у ServerRealization вызывается метод Dispose. Все манипуляции по очищению памяти и переменных нужно делать из этого метода. И ни из какого другого…
Стратегия «Gilean Alt Bull» и «Gilean Alt Bear»
Стратегия была создана для торговли дополнительных фьючерсов с экспериментальной целью — понять работает ли что то на неликвидных символах, каким количеством фьючерсов возможна торговля. Стратегия была создана в ноябре 2023 года в результате анализа и подбора параметров в исторический период. С ноября 2023 года стратегия «Gilean Alt Bull» торгуется на реальном счёте.
Потому как стратегия планируется к закрытию, опубликую только часть своих изысканий.
Доходность портфеля за 2023 год — 63,5%.
Доходность за 4 квартал — 14,4%
Доходность за 1,5 года — 81,8%.
Средняя доходность — 47% годовых.
Максимальная просадка — 14,5%.
Кальмар — 3,2.
Благодаря бычьему рынку на валюте и на российских акциях торговым роботам за 2023 год удалось показать хорошую прибыль. За этот год были отключены некоторые алгоритмы на баксе и евро к рублю. Зато были запущены алгоритмы на юане, как оказалось там работают те же параметры, что и на баксе. Также добавлены 4 стратегии на 50 ликвидных акций.
Мониторить динамику портфеля можно здесь:
https://www.comon.ru/strategies/109402/
Подключиться к стратегии вы можете от суммы 500 тыс.руб. и все сделки автоматически будут копироваться с моего брокерского счета на ваш. Ну а для состоятельных клиентов возможно индивидуальное управление портфелем от 10 млн.руб. 💼😎
По вопросам подключения к стратегии пишите в телеграм: @voronchihin_evgeny
Мой телеграм-канал: @alfa_quant