В классе BotPanel имеется ряд абстрактных членов, которые необходимо реализовать в классах наследниках.
По-простому, надо сделать несколько обязательных методов после того, как Вы начнёте создавать своего робота.
Рассмотрим пример создания робота. Пустого, но который уже будет виден тестером.
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/97e8b8.webp)
Шаг 1. Создаём в проекте класс MyFirstSimpleBot.
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/b5e054.webp)
Шаг 2. Добавляем директивы using.
Это нужно, чтобы подключить нужные библиотеки и пространства имён в робота:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/e5a074.webp)
- Это системные штуки. Чтобы подключились стандартные типы данных C# и коллекции (нам нужны будут листы List<>) данных.
- Это примитивы в OsEngine. Свечи, трейды, ордера и всё остальное.
- Это индикаторы и всё, что с этим связано.
- Здесь расположен класс родитель для всех роботов, которым сейчас будем пользоваться.
- Это помогает прописывать робота в системе через атрибут класса, что очень удобно.
- А здесь хранятся все источники данных в OsEngine.
Шаг 3. Даём классу понять, что он робот. Наследуемся от BotPanel.
Для этого после названия класса ставим двоеточие и пишем BotPanel. После чего создаём обязательные члены класса для BotPanel. Должно получится вот так:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/af2f95.webp)
- Наследование. После того, как Вы это (: BotPanel) написали, программа поймёт, что Вы делаете робота для OsEngine.
- Нужно прописать конструктор. В нём мы будем задавать начальное состояние робота, объявлять источники и подписываться на события.
- Метод, хранящий в себе название робота. Чуть позже его реализуем.
- Метод, вызывающий уникальное окно робота. У нас его не будет, т.ч. мы просто удалим всё, что там внутри метода.
Шаг 4. Задаём роботу имя.
Для этого нам понадобиться доработать исходник в двух местах:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/c7136c.webp)
- Добавляем атрибут. В скобках пишем ТОЧНОЕ имя нашего класса.
- Добавляем возвращаемое значение в метод GetNameStragyType. В скобках тоже должно быть точное название нашего класса.
Шаг 5. Создаём моноисточник BotTabSimple.
Идём в конструктор и создаём источник для подключения к одному инструменту. Должно получиться вот так:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/ed09f5.webp)
В красном квадратике вызов метода, создающего источники. В данном случае источники типа Simple.
Шаг 6. Сохраняем источник BotTabSimple как поле класса.
Для этого нужно создать поле у класса и сохранить в него ссылку на источник. Вот так:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/de508a.webp)
- Создаём переменную типа BotTabSimple. Вне методов, чтобы из всего робота было её видно.
- В конструкторе мы положим в ранее созданную переменную источник. И будем далее обращаться к источнику по этой ссылке.
Шаг 7. Готово! Запускаем тестер и настраиваем источник!
Запускаем проект. Если что, это вот эта кнопка в Visual Studio. Надо обязательно проект собрать:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/036cc7.webp)
Выбираем тестер. И когда нажимаем на кнопку добавить робота, видим наш «MyNewSimpleBot»:
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/94b6ac.webp)
Удачных алгоритмов!
Комментарии открыты для друзей!
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/22/aaaed5.webp)
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
![Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine. Обязательные к реализации члены класса BotPanel. Создаём робота, которого видит система, через Атрибут. OsEngine.](/uploads/2024/images/21/16/44/2024/08/12/b55377.webp)