Открываю исходный код, который мы используем для сборки наших торговых роботов.
Разработку я начал год назад и нашей главной целью было как можно быстрее, и как можно с меньшими затратами начать торговать алгоритмически. Цели как мне кажется мы вполне достигли, потому что используя наш подход мы сегодня можем реализовывать и ставить на торговлю новые алгоритмы очень быстро (в течение одного рабочего дня даже).
Я записал несколько коротеньких видео, все вместе они потянут на час с небольшим, в которых постарался показать концептуальную основу библиотеки и как с ее помощью можно за час собрать и запустить робота.
Видео можно скачать файлом
отсюда. (Формат avi, размер 27.4 Мб)
Видео можно скачать файлом
отсюда. (Формат avi, размер 135 Мб)
Видео можно скачать файлом
отсюда. (Формат avi, размер 44.8 Мб)
Видео можно скачать файлом
отсюда. (Формат avi, размер 146 Мб)
В ближайших планах записать несколько видео (возможно это будет еженедельно), последовательно демонстрирующих процесс доработки робота.
Исходный код библиотеки можно загрузить
отсюда.
Исходный код адаптера для торговли через Ай Ти Инвест можно загрузить
отсюда.
Исходный код робота, использованный при записи видео можно загрузить
отсюда.
Весь исходный код в оптимальном объеме покрыт модульными тестами (сама библиотека около 700 тестов, код адаптера чуть больше 100 тестов). Часть тестов скорее являются интеграционными, потому что проверяют работу нескольких компонентов.
Тесты не избыточны и не покрывают весь код стопроцентно. То есть в процессе эксплуатации сейчас выявляются и наверняка еще будут выявляться ошибки или сбои для пограничных случаев, для которых нет тестов. В случае выявления таких ошибок, будут реализованы дополнительные тестовые наборы и с их использованием исходный код будет исправляться или трасформироваться.
Если в двух словах, то моя библиотека, как мне кажется проще и легковеснее. Я в самом начале разработки понял что не хочу концентрировать все поведение в каком-то суперклассе Strategy, а хочу получить много небольших, но легко повторно используемых компонентов, из которых можно будет компилировать новые алгоритмы торговли, просто добавляя их в робота.
В моих видео я постарался продемонстрировать подход и весь процесс сборки робота, от начала и до конца со всем необходимым исходным кодом, включая теоретические пояснения, настройки, инсталляцию компонентов брокера, регистрацию тестовых счетов у брокера и все это заняло час времени. Разницу в подходах к разработке можно попытаться увидеть сравнив мои видео с к примеру демонстрационным видео StockSharp vimeo.com/59339982.
А объективно, из явно-видимых невооруженным глазом отличий, код моей библиотеки покрыт модульными и интеграционными тестами (представители StockSharp на мой запрос на их форуме сообщили что они модульные тесты практически не пишут). Ну а поскольку есть тесты, то мою библиотеку можно смело исправлять, дополнять и трансформировать не боясь поломать что-то внутри. Упавшие тесты сразу показывают что и где сломалось.
Ну и как показывает практика, если сначала писать тесты, внутренняя архитектура системы получается более логичной, взвешенной, интуитивно-понятной, относительно легко масштабируемой и изменяемой. Компоненты библиотеки базируются на интерфейсах, между собой слабосвязаны и как правило отвечают только за выполнение какой-то одной конкретной операции, поэтому можно легко заменить одну реализацию на другую.
Спасибо.