In the last two years I have been developing my own algo trading software written in 100% Kotlin. It is called
roboquant (named after robocop š)
Iām getting close to version 1.0 where I would like to have stable APIs. So I would love some feedback on the overall API/design/approach from a Kotlin perspective.
You can include roboquant as as a library in your own standalone JVM application. But you can also interactively develop in Jupyter Notebooks using a Kotlin kernel. The following link brings you to public hosted notebooks that you can try directly in your browser: roboquant on
https://mybinder.org/v2/gh/neurallayer/roboquant-notebook/main?urlpath=tree/notebooks/ (
recommend to try the charts notebook)
In my experience so far, Kotlin has been a great fit for developing data intensive applications when combined with no-trivial business logic. It is so much faster in these use-cases than Python for example, and also dealing with complex logic is easier. Quick sample how to run a complete back test:
val feed = AvroFeed.sp500()
val metric = AccountMetric()
val strategy = EMAStrategy()
val roboquant = Roboquant(strategy, metric)
roboquant.run(feed)
The software is free (Apache 2.0 license) and you can get the source code at
GitHub