Large Improvements to the Github Repo
Since the last post -
we have made big improvements to the Github repo. There are primarily three new PRs, here, here and here.
For paid readers who have NOT yet joined the repo, you are really, really missing out if you do not at least review the code and try to understand how the project is evolving/works. I have been spending a lot of time trying to get this to take off, which is why the market notes and formulaic alphas have taken a backseat - to my detriment - I have readers who left saying that I post less, so on and so forth.
This is because I whole heartedly believe that the repo is the BEST possible way for our readers to spike their learning experience, and become skilled devs. Most people want to know trading ideas, strategies and stuff like that - less people want to hone their PROCESS.
Since the project is rather fresh, it is very reasonable for a beginner-mid tier programmer to understand the project in its entirety, unlike established scientific libraries out there. Even I have trouble understanding those libraries. And we are evolving quickly, so you get a chance to contribute to the direction of the project, while learning about quant dev/finance as well as devops.
Email me or comment inside the referenced post below to join *for paid readers. Unpaid readers should read the last post on how they may be waitlisted.
Improvements
Primarily, in terms of the project structure, the biggest change is the introduction of decently extensive unit and integration testing. The testing process also highlighted and brought to surface some bugs, as well as areas for optimization.
For those interested in testing, here is a simple book you can read.
Which leads to another big change for the library users - other than some bug fixes, we have also run some computational optimizations, so the library should work faster. Formulaic computations like csrank(xxx) have been improved and SHOULD run much more quickly now. We have yet to run the benchmarks, but I strongly suspect it.
I have also added intersect_idx_op as one of the index manipulators, so now you can specify different kinds of formulas. For instance, you can write
div(plus(open,close),const_2)
but you can also write
div_un(plus_un(open,close),const_2)
div_ix(plus_ix(open,close),const_2)
which computes based on the union and intersection of the child arguments respectively. It is backwards-compatible, in that it defaults to union, so you don’t have to change your formulas (for existing users of the library).
Cheers.~