Zein
Zein личный блог
02 августа 2017, 13:15

Свободный Scala/Java/Kotlin фреймворк для анализа/симуляции/торгов

Добрый день.

Некоторе время назад мы с другом (я пишу из под его аккаунта) интересовались темой торгов. Тогда мы разработали фреймворк для этих целей.

Что он позволяет:

1) Написание стратегий на Java/Scala. Это достаточно богатые высокоуровневые языки (по крайней мере по сравнению с языком того жэе метатрейдера), что позволяет проще писать сложную модульную логику.

2) Написание тестов — т.к. стратегия это просто стейт-машина реагирующая на внешние события, для нее можно написать юнит-тесты.

3) Торговля изолирована от стратегии т.н. «торговым бекендом», т.е. стратегия не знает о реальном способе осуществления торговли. Это позволяет, скажем, подменить торговый бекенд симулятором торгов.

4) Стратегия также изолирована от источников данных. Она видит просто источник событий, например тиков. Также стратегия может работать с несколькими источниками событий, то есть фактически есть простая возможность отслеживать несколько пар.

5) Стратегия также изолирована от системного таймера, что позволяет подменить таймер простым циклом. Это, вместе с пунктами 3 и 4 позволяет выполнять быстрые симуляции торговли на данных хранящихся локально (или даже выдуманных или генерируемых какими то алгоритмами).

6) Быстрые симуляции — для простой стратегии год торгов симулируется за несколько секунд.

7) Перебор параметров — есть механизм позволяющий перебирать параметры, т.е. запускать симуляции многократно с разными параметрами и сохранять логи тестовых прогонов для дальнейшего анализа.

8) Параллелизм — система изначально разрабатывалась с расчетом на параллельную симуляцию, каждый прогон подбора может быть запущен в отдельном процессе или даже на отдельной машине.

9) Интеграция с метатрейдером — для метатрейдера был написал плагин, который позволяет импортировать «тики» получаемые метатрейдером в качестве источника событий и использовать метатрейдер как тоговый бекенд. Т.е. фактически, можно управлять метатрейдером и торговать на любых площадках где есть его поддержка.

Сейчас тема торговли для нас не интересна и, вероятнее всего, не будет интересна в ближайшем будущем, поэтому мы делаем этот фреймворк доступным публично, бесплатно, под GPL v3 лицензией, в надежде что он будет кому то интересен и/или полезен.


Ссылка на гитхаб-репозиторий: github.com/7ocb/forex-trade-and-analysis-framework

В случае если нужна будет какая то поддержка, со мной можно связаться через issues в репозитории.
3 Комментария

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн