Добрый день.
Некоторе время назад мы с другом (я пишу из под его аккаунта) интересовались темой торгов. Тогда мы разработали фреймворк для этих целей.
Что он позволяет:
1) Написание стратегий на Java/Scala. Это достаточно богатые высокоуровневые языки (по крайней мере по сравнению с языком того жэе метатрейдера), что позволяет проще писать сложную модульную логику.
2) Написание тестов — т.к. стратегия это просто стейт-машина реагирующая на внешние события, для нее можно написать юнит-тесты.
3) Торговля изолирована от стратегии т.н. «торговым бекендом», т.е. стратегия не знает о реальном способе осуществления торговли. Это позволяет, скажем, подменить торговый бекенд симулятором торгов.
4) Стратегия также изолирована от источников данных. Она видит просто источник событий, например тиков. Также стратегия может работать с несколькими источниками событий, то есть фактически есть простая возможность отслеживать несколько пар.
5) Стратегия также изолирована от системного таймера, что позволяет подменить таймер простым циклом. Это, вместе с пунктами 3 и 4 позволяет выполнять быстрые симуляции торговли на данных хранящихся локально (или даже выдуманных или генерируемых какими то алгоритмами).
(
Читать дальше )