Попробуем сравнить Python и С# (берем OsEngine) в скорости тестирования стратегий
и смотрим что получится.
Для тестирования берем простую стратегию «Пересечение двух SMA», торгуем только лонг 1контракт,
данные по акции Сбербанк 1мин c 01.01.2024 по 10.10.2025 года все примерно 428000 свечек.
Сразу надо уточнить что с новой OsEngine на .NET 9 были проблемы, она напрочь отказывалась запускаться
на чистой машине с Windows10 и .NET 9.0
Вот с такой ошибкой при запуске

Кто знает что это за хрень?
Я думал уже что придется для тестирования брать старую версию OsEngine на NetFramework, но обнаружилась
машина с Windows10 и установленной VS2022 на которой запустилась новая версия OsEngine .
На этой же машине и проводились все тестирования с Python и OsEngine.
Итак что у нас получилось.
Та дамммм ! Все подробности и детали => github.com/Alex-Shur/algo_trading_csharp_ws_Python
---------------------------------------------
Результаты тестирования
1. OsEngine (C#)
Источник: OsEngine
Язык: C#
Платформа: Windows
Время выполнения: 4.26 сек
Статус: ✅ Успешно
2. Backtesting.py (Python)
Источник: Backtesting.py
Язык: Python 3.13.9
Время выполнения: 3.47 сек
Статус: ✅ Успешно
3. Backtrader (Python)
Источник: Backtrader
Язык: Python 3.13.9
Время выполнения: 42.62 сек
Статус: ✅ Успешно
Итоговый анализ
| Платформа |
Язык |
Время (сек) |
Ускорение |
Примечание |
| OsEngine |
C# |
4.26 |
1.0x |
Базовое значение |
| Backtesting.py |
Python |
3.47 |
1.23x |
Самый быстрый |
| Backtrader |
Python |
42.62 |
0.1x |
Медленнее в 10 раз |
Выводы
- Быстродействие: Backtesting.py показал лучший результат - на 23% быстрее, чем OsEngine на C#
- Удобство использования: Python-решения проще в развёртывании и не требуют установки IDE
- Производительность C#: OsEngine находится между Python-фреймворками по скорости
- Problematic: Backtrader значительно медленнее конкурентов (в 10 раз медленнее Backtesting.py)
Рекомендации
- Для максимальной производительности: Backtesting.py
- Для комбинированного подхода (скорость + GUI): OsEngine
- Для быстрого прототипирования: Python с Backtesting.py
Для кого он вообще это делает и зачем? Тратит время и деньги.