В данном посте будем учиться запускать «профилирование» в Visual Studio, чтобы глазами увидеть место самых больших нагрузок у бота.
Ну и в целом заканчиваем нашу минисерию постов про производительность роботов и как делать так, чтобы у Вас никакие очереди не забивались, а роботы работали быстро и качественно.
Профилировка производительности C# — это процесс анализа производительности программы путём мониторинга использования процессора различными функциями и сегментами кода.
Профилируя приложение C#, можно определить, какие части кода занимают больше всего времени процессора и вызывают проблемы с производительностью. Эта информация важна для оптимизации приложения и улучшения его общей производительности.
С точки зрения прикладного:
Профилировка производительности – один из способов запуска проектов на СиШарп (OsEngine), который помогает увидеть «узкие» места в коде, где больше всего расходуется ЦП.
Так проект OsEngine можно запустить в нескольких режимах:
В данной статье поговорим о проблемах «перегрузки» в пользовательской логике в роботе. Очень условно поговорим про поточную модель OsEngine и о том, почему нельзя нагружать поток робота «лишней» работой или укладывать «Спать».
Для начала давайте взглянем на поток, который отдаёт данные в роботов в реале. Для этого нужно открыть класс AServer. Это вот здесь:
В конце прошлого месяца вёл в школе АЛОР лекции по направлению. Разбирали различные подходы к определению «стадий волатильности». Смотрели, как это делать:
Всего вышло 5ть часовых лекций. Скрипты в комплекте.
Для клиентов АЛОР, торгующих из нашего сообщества, эти лекции доступны бесплатно!
В основном, разбор проблемы динамического выбора бумаг в торги. Я с этим столкнулся ещё в 2022 году, когда реанимировал свои арбитражи на крипте. С тех пор подход улучшается и изменяется. Проблема встаёт ребром на MOEX, т.к. скорость изменения популярных бумаг довольно быстрая, и алгоритмы должны уметь на это реагировать. Ну и бонусом несколько способов определения стадий волатильности по бумагам.
Какие способы я сам проходил, прям по годам пойдём. От самого простого к самому сложному. Постараюсь сэкономить Вам несколько лет жизни на исследованиях.
В данной статье посмотрим робота, который реализован с использованием многопоточного подхода.
Смотрит стаканы поступающих с биржи бумаг, ожидая «Плиту». При этом смотрит то кол-во бумаг, которое Вы в него подключили, как скринер.
В OsEngine скрипты роботов могут храниться как внутри проекта, так и снаружи, в виде текстовых файлов.
Если роботы (и индикаторы) внутри проекта, то их можно «дебажить» и правит, так что Visual Studio будет помогать.
Если роботы (и индикаторы) как файлы, то их можно очень быстро переносить из версии в версию OsEngine.
И то, и другое имеет свои преимущества и нужно в разные стадии жизни робота. В этой статье поговорим о том, как роботов (и индикаторы) переносить из проекта в скрипты и обратно.
Задача: У Вас есть полностью оттестированный и готовый робот внутри проекта. Например, у Вас есть робот «MyEnvelopeTrend». В проекте он находится здесь:
Год прошёл, как первый пост опубликовали. Фига время бежит…
И я кстати вчера обратил внимание на рейтинги, походу мы сегодня догоним сам! Mozgovik Тимофея! по популярности!
Я, конечно, шокирован, что алгопроект! Про программирование! Open Source! В стадии разработки! Может вообще какие-то плюсы и рейтинги получать на СмартЛабе…
Реально, небесная ось сошла с орбиты и ударилась об офис Тимофея в Питере. Думаю, он и сам удивляется.
Но вот так. Низкий всем поклон! СмартЛаб не безнадёжен! Инвесторы излечимы!