В данном посте будем учиться запускать «профилирование» в Visual Studio, чтобы глазами увидеть место самых больших нагрузок у бота.
Ну и в целом заканчиваем нашу минисерию постов про производительность роботов и как делать так, чтобы у Вас никакие очереди не забивались, а роботы работали быстро и качественно.
Профилировка производительности C# — это процесс анализа производительности программы путём мониторинга использования процессора различными функциями и сегментами кода.
Профилируя приложение C#, можно определить, какие части кода занимают больше всего времени процессора и вызывают проблемы с производительностью. Эта информация важна для оптимизации приложения и улучшения его общей производительности.
С точки зрения прикладного:
Профилировка производительности – один из способов запуска проектов на СиШарп (OsEngine), который помогает увидеть «узкие» места в коде, где больше всего расходуется ЦП.
Так проект OsEngine можно запустить в нескольких режимах:
В данной статье поговорим о проблемах «перегрузки» в пользовательской логике в роботе. Очень условно поговорим про поточную модель OsEngine и о том, почему нельзя нагружать поток робота «лишней» работой или укладывать «Спать».
Для начала давайте взглянем на поток, который отдаёт данные в роботов в реале. Для этого нужно открыть класс AServer. Это вот здесь:
В OsEngine скрипты роботов могут храниться как внутри проекта, так и снаружи, в виде текстовых файлов.
Если роботы (и индикаторы) внутри проекта, то их можно «дебажить» и правит, так что Visual Studio будет помогать.
Если роботы (и индикаторы) как файлы, то их можно очень быстро переносить из версии в версию OsEngine.
И то, и другое имеет свои преимущества и нужно в разные стадии жизни робота. В этой статье поговорим о том, как роботов (и индикаторы) переносить из проекта в скрипты и обратно.
Задача: У Вас есть полностью оттестированный и готовый робот внутри проекта. Например, у Вас есть робот «MyEnvelopeTrend». В проекте он находится здесь:
Год прошёл, как первый пост опубликовали. Фига время бежит…
И я кстати вчера обратил внимание на рейтинги, походу мы сегодня догоним сам! Mozgovik Тимофея! по популярности!
Я, конечно, шокирован, что алгопроект! Про программирование! Open Source! В стадии разработки! Может вообще какие-то плюсы и рейтинги получать на СмартЛабе…
Реально, небесная ось сошла с орбиты и ударилась об офис Тимофея в Питере. Думаю, он и сам удивляется.
Но вот так. Низкий всем поклон! СмартЛаб не безнадёжен! Инвесторы излечимы!
В мире алгоритмической торговли и высокочастотных операций скорость получения данных играет критическую роль. Хотя выбор брокера зависит от множества факторов, включая тарифы, удобство использования платформы и набор инструментов, для определенной категории трейдеров и разработчиков торговых систем скорость обновления стакана котировок может быть решающим фактором.
Я провел сравнительное исследование скорости работы API двух популярных брокеров: Alor и Tinkoff. Целью было определить, какой из них обеспечивает более быстрое обновление данных стакана котировок.
Исследование проводилось с использованием открытых протоколов API обоих брокеров. Это важно отметить, так как открытые протоколы представляют собой передовые технологии в области биржевой торговли, обеспечивая максимальную скорость и эффективность передачи данных.
Для каждого API был разработан клиент, который подключался к серверам брокера, подписывался на обновления стакана и регистрировал время получения каждого обновления. Мониторинг проводился в течение 30 секунд, что позволило получить репрезентативную выборку данных.
Всем привет!
Сегодня расскажу, как все устроено в коде нового коннектора.
OsEngine – проект с открытым кодом, поэтому посмотреть раздел, относящийся к коннектору можно прямо сейчас онлайн по адресу https://github.com/AlexWan/OsEngine/tree/master/project/OsEngine/Market/Servers/MoexFixFastSpot
Также можно просто скачать весь проект и открыть его в Visual Studio, чтобы смотреть более наглядно.