dysonance / Strategems.jl

Quantitative systematic trading strategy development and backtesting in Julia
Other
163 stars 39 forks source link

Parameter exploration - nicer API #7

Open femtotrader opened 6 years ago

femtotrader commented 6 years ago

Hello,

Python have an interesting library with a nice API. https://pypet.readthedocs.io/ Maybe you should consider something like this.

This Julia parameter exploration toolkit could be even be a standalone project (with few dependencies).

Similar discussion https://www.quantopian.com/posts/parameter-exploration-slash-running-several-backtests-from-notebook

These discussions about generators and Julia might be interesting for that purpose https://discourse.julialang.org/t/pygen-python-style-generators/3451 https://discourse.julialang.org/t/ann-resumablefunctions/5711

Kind regards

dysonance commented 6 years ago

@femtotrader Excellent references, lots of reading material here for me to get cracking on. This will absolutely be a major development space for this package going forward. Like right now I've just gotten parameter exploration functionality kinda implemented, but it's confined to the parameter space used to calculate the Indicator functions. Down the line there's so many more arenas into which parameter exploration functionality could expand. Looking forward to reading all this, thanks for the recommendations.

dysonance commented 6 years ago

@femtotrader pypet seems like a really awesome project, and probably a good example of what a logical and productive computation/storage model could look like in the strategy development/research domain space.

It might be interesting to do something similar with some mutation of the ParameterSet type (also I'm now thinking that may not be the most intuitive name compared to something like Trajectory but I digress).

Perhaps the Indicator object could hold the default parameters, and a ParameterSet object could behave somewhat like a pypet Trajectory and focus solely on the parameter space exploration/simulation — keeping track of the variable combinations and storing data derived from the simulations. Something to think about.

dysonance commented 6 years ago

I'm still not sure I fully understand the mechanics of the other ideas you mentioned, as I've only just now been exposed to this Julia Channel idea, and probably need to spend some more time with that and these packages to be able to come up with a more informed comparison between these approaches.

femtotrader commented 6 years ago

@dysonance can you send me your email address for private discussion? Mine is available at https://github.com/femtotrader