Back to Community
Sharing my journey.. a rough cut at Sharpe 1.7

Been a really steep learning curve building my first algorithm.
Enormously grateful to Quantopian for providing the platform to learn > analyse > tests > paper live > repeat
Huge thanks to the community for all the sharing, guidance and support to get to this point to knock up an algorithm..

My steps were nothing extraordinary:
+ Explored the alpha idea in Notebook with Pipeline and get_fundamentals()
+ Mainly use Pipeline to pre qualify stocks; learnt to be very lean to avoid timeout in Pipeline.
+ Used get_fundamentals() for supplementary data for detailed computations to illuminate on the alpha.
+ Wrangled with data to injest into Alphalens.. alternating between disasters, magic, despair and Eureka moments.
+ Suffered the banes of transitioning from Research to IDE, and copying backtest IDs to pyfolio tearsheets.
+ Repeat backtests. Repeat Alphalens. Repeat Pipeline. Repeat timeout.

I think I am now ready for the Optimise API lecture and tutorials.

Loading notebook preview...
Notebook previews are currently unavailable.
4 responses

Great job!
How does the algorithm perform in 2017?

Hi Karl,

Thanks for posting your results. 2015 to 2016 was an awesome year for most of my algorithms as well and then they flatten out. Must be a regime change in 2016.

Best regards

Hey, so what stands out to me is that you've got that jump in returns during the market downturn. If you didn't have that single isolated jump in returns, how would the algorithm have performed? I worry about algorithms that make isolated jumps in gains like that that they might not be as robust out-of-sample. It could indicate over-fitting.

There appears to be a correlation between your 6-mo rolling beta and your rolling sharpe. So if you can keep your beta more in control -- especially keep it from getting negative biased, you might improve your returns.

Karl, the recent speed up to fundamentals data might solve the timeouts. You could also email support at quantopian dot com with some or all of your code when you get timeouts. I've found them extremely helpful in the past.

My main note on reviewing pyfolio is that your net exposure is highly variable. The optimiser can help solve this. I had something similar. I noted that position sizing reduced the positive skew, and increased sharpe, but this may not be what an investor in the fund wants. They probably have a fairly negative skewed portfolio of stocks and bonds and are looking for some positive skew from the hedge fund allocation. In the end I just did 1/n sizing, when n was fixed.