Блог компании Os_Engine |Разное #5. Экстренная остановка роботов по бумаге и закрытие позиций на бирже. Коннекторы к OsEngine #44

Есть в OsEngine функционал, который по одной кнопке останавливает торги по определённой бумаге и закрывает позицию. Штука появилась недавно, не уверен, что ей кто-то пользуется кроме нашего управляющего, однако функционал важен и нужен.

Разное #5. Экстренная остановка роботов по бумаге и закрытие позиций на бирже. Коннекторы к OsEngine #44

Выглядит это так:



( Читать дальше )

Блог компании Os_Engine |Слой тестирования #3. Var_1. Валидация бумаг. Коннекторы к OsEngine #43

Тест, проверяющий бумаги на площадке. Во время подключения к любой бирже, одно из первых, что происходит – запрос бумаг, торгующихся на ней. Этот класс называется Security.

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

Слой тестирования #3. Var_1. Валидация бумаг. Коннекторы к OsEngine #43

Где находится в проекте?



( Читать дальше )

Блог компании Os_Engine |Разное #4. Размещение и создание коннекторов в ServerMaster. Коннекторы к OsEngine #42

Подробнее посмотрим на ServerMaster в текущей статье. На его состав и структуру. А самое главное посмотрим на то, где создаются и где хранятся объекты серверов.

Разное #4. Размещение и создание коннекторов в ServerMaster. Коннекторы к OsEngine #42

 

Server Master.



( Читать дальше )

Блог компании Os_Engine |Как брать коннекторы в работу #1. Коннекторы к OsEngine #41

Февраль неумолимо приближается. Инструкции по тому, как делать коннекторы скоро будут дописаны.

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

В общем. Пора перегруппироваться.

Как брать коннекторы в работу #1. Коннекторы к OsEngine #41

1. Первый коннектор в любом случае крипта.

Напоминаю, что первый коннектор в любом случае — крипта. Да, я знаю, что бюджеты на проф-коннекторы к MOEX есть и Вам хочется начать с них. НО! Это будет противоестественно с точки зрения увеличения сложности задачи.

Подробная статья на тему: https://smart-lab.ru/company/os_engine/blog/964640.php

 

2. Выбираем биржу.

Если вдруг, Вам не из чего выбирать и своих предпочтений нет, то не беда. Есть замечательный сервис по просмотру объёмов на биржах, который называется CoinMarketCup. Идём по ссылке.

  1. Топ по фьючерсам: https://coinmarketcap.com/ru/rankings/exchanges/derivatives/
  2. Топ по споту: https://coinmarketcap.com/ru/rankings/exchanges/

Выбираем любую из ТОП 50.



( Читать дальше )

Блог компании Os_Engine |Слой тестирования #2. Обзор робота для тестов. Коннекторы к OsEngine #40

Вчера мы с Вами начали знакомиться со слоем для тестирования коннекторов в OsEngine. А сегодня будем смотреть, как они реализованы технически.

К слову сказать, созданы тесты на базе обычного робота для OsEngine. А это статья — обзор этого робота.

Слой тестирования #2. Обзор робота для тестов. Коннекторы к OsEngine #40

1. Робот для тестов внутри проекта:

 



( Читать дальше )

Блог компании Os_Engine |Разное #3. Старт серии свечек в CandleManager. Коннекторы к OsEngine #39

Каждый торговый сервер в OsEngine имеет внутри себя объект CandleManager, который следит за тем, чтобы серии свечек собирали свечи и отправляли их вверх. Их нужно активировать. За это одновременно отвечает класс IServerPermission и CandleManager, о которых будем сегодня говорить.

Разное #3. Старт серии свечек в CandleManager. Коннекторы к OsEngine #39

Находится Candle Manager вот здесь:



( Читать дальше )

Блог компании Os_Engine |Разное #2. Разрешения коннекторов. Интерфейс IServerPermission. Коннекторы к OsEngine #38

В нескольких предыдущих постах серии мы разговаривали про IServer, свойства и методы, которые в нём есть. Их много и довольно разных. При этом каждое отдельно взятое API что-то поддерживает, а что-то нет. О том, что конкретно коннектор поддерживает, OsEngine должен знать ДО того, как начнёт запрашивать неработающий функционал. Для этого ServerPermission и существует.

Разное #2. Разрешения коннекторов. Интерфейс IServerPermission. Коннекторы к OsEngine #38

Например, данные могут быть только свечные, или может не быть 15 минутных свечек. Или API может вообще не поддерживать скачку глубоких исторических данных. Или API не поддерживает какие-то торговые операции: нет Market ордеров, не работает перестановка цены ордера.

 

1. Расположение интерфейса в проекте.



( Читать дальше )

Блог компании Os_Engine |Слой тестирования #1. Введение. Коннекторы к OsEngine #37

Cлой автотестов для коннекторов переживает в OsEngine уже ВТОРОЕ пришествие. Увеличившись с первой версии в 10 раз. Про что и будет данная мини-серия статей внутри серии «Коннекторы к OsEngine». АЖ НА 20 Постов. Так надо…

А данный пост о том, зачем такой большой слой тестирования и введение в тему.

Так вышло, что ядро OsEngine тестируется почти без остановки с разных сторон одновременно. И тестером, и оптимизатором и роботами в реальных боях. В какой-то момент дошло до того, что команда в офисе узнаёт о багах, если таковые есть, после их пуша в ядро через 10 – 20 минут.

Выглядит это так:

Слой тестирования #1. Введение. Коннекторы к OsEngine #37
Рис. 1. Модули, тестирующие слои, поддерживающие работу роботов. 

Поэтому само ядро OsEngine стабильно.

Проблемы в другом месте… В коннекторах. Чем мы с Вами и будем весь 2024 год заниматься.

 

1. Зачем это всё? И почему будет так много внимания тестам?

Это самая важная часть создания коннекторов. «Наговнить немного кода, чтобы как-то что-то заработало» — дело нехитрое. Однако при таком подходе пользователи будут не довольны, т.к. коннектор будет работать плохо. Поэтому надо делать хорошо, чтобы коннектор начал проходить автоматические тесты. И для этого придётся попотеть.



( Читать дальше )

Блог компании Os_Engine |Разное #1. Интерфейс IServer. Коннекторы к OsEngine #36

Сегодня рассмотрим интерфейс с названием IServer, через который осуществляется доступ к коннекторам в OsEngine. Посмотрим, что у него там есть внутри.

Разное #1. Интерфейс IServer. Коннекторы к OsEngine #36

IServer. Общие сведения.

IServer – интерфейс для доступа к реализациям серверов почти во всём проекте. Нужен для того, чтобы унифицировать методы и свойства, нужные для роботов и OsData.



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #13. Сборка мусора и очищение памяти. Dispose. Коннекторы для Os Engine # 35

Вероятно, для каких-то молодых камрадов это будет откровением, ибо каждая книжка по Шарпам уже с первых глав нас знакомит с тем, что в C# за сборкой мусора следить не надо. Однако это маркетинговая выдумка. В высоко нагруженных проектах вроде OsEngine, как только ты не проследил за удалением объектов и выкинул это из головы, началась утечка памяти.

 Стандарты кода #13. Сборка мусора и очищение памяти. Dispose. Коннекторы для Os Engine # 35
Я и сам, как программист-самоучка, очень много лет проживал в этой парадигме, от чего было много проблем как у меня, так и у пользователей OsEngine.

И в этом посте поговорим о том, какие штуки надо обязательно подчищать за собой при удалении коннектора. А вернее при вызове его обязательного к перегрузке метода DISPOSE();

 

Dispose в коннекторе.

Очень часто коннектор нуждается в перезапуске. Это обусловлено свойствами работы сети интернет. В этот момент у ServerRealization вызывается метод Dispose. Все манипуляции по очищению памяти и переменных нужно делать из этого метода. И ни из какого другого…

 

Сборщику мусора нужна помощь.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн