In the last two years I have been developing my ow...
# feed
p
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:
Copy code
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
ā¤ļø 8
K 2
l
In the sample in the README, generateRating seems to produce BUY when the price is at its highest, and SELL when the price is at its lowest. Shouldn’t this be the other way around, since you’d likely want to BUY into a dip and possibly SELL at a peak (assuming you’re going with a ā€˜simple’ approach, I’m sure there’s a lot more to take into account for a full implementation).
Nevermind. Just realized that the sample is a breakout strategy, where this is the intended behaviour.
p
The example snippet is just the default ā€œtemplateā€ if you create a new project (Maven Archetype). So more to help to get started with your first strategy, and not meant to be a full fledged strategy suitable for live trading. But it is fully working.
l
I’ll have to try this out sometime. Is there any sort of fee or limit a user of roboquant would run into? I looked into getting stock price data before, but there were often limits to the free plans.
p
You can plugin market data provides and for example Yahoo is included and is free. You can also use your own CSV files. But is you want better quality or higher frequent data, typically you have to pay. Not a limit of roboquant, but just of the data provider you want to use. Personally would love to see high quality free data, but so far that has been limited.
šŸ‘ 1
s
This looks very impressive