Back to Community
Taking Quantopian to the Next Level (IMO)

First, looking back 10 year from now, I think that Quantopian will be the single most important development in the world of finance. The barrier for me and a lot of strategy developers is the necessity of learning Python and having to re-create a fairly complex architecture needed to take full advantage of what Quantopian can actually do.

The typical reply to this argument is to hire someone who knows Python. But here is the problem - I am a strategy developer like you and not some big firm or office with deep pockets. I currently develop strategies on another platform - which is a combination of a GUI and some technical syntax - and I lease or sell these to family offices and funds. I don't have tens of thousands to pay out to a third party to 'just see if this works' better in Quantopian or not. I am of very low prominence in the investment world - yet I have made some highly profitable strategies over the past 5 years which a dozen or so funds, RIAs and family offices have used. Most of the strategy developers I know of are in a similar boat. We make enough to eat.

The second reason why hiring someone else doesn't work is privacy. If we really do have strategies that work well on other platforms - there is a risk that we lose that edge by floating the code around to third parties. If you want someone to code for you - you better pay them really well and have them sign all sorts of NDAs and have a serious trust factor. But it is much easier to say, "well this works good using end of day data so why risk the entire system by making it intra-day"?

Then why not learn Python? I started - but I am busy with other projects. To learn the necessary programming for what I have in mind (and what is needed) would probably take me a couple of years to learn in my spare time. I will likely take this route as will some other die hard strategy developers but that impedes the growth of Quantopian.

The answer, I believe, lies in having the Quantopian community come together and making a GUI interface in addition to the current Python-only setup. As well, there is a certain logic that needs to be built. The other institutional platforms for strategy development allows for the quick design of relative ranking systems of multiple factors. I think pipeline tries to address this a little.

Basically, the pieces are all there. The data and the programmers and the strategy developers. But a front-end needs to be developed for those who don't know Python. The concept of Pipeline needs to be taken a whole lot further. The question is - how do we get there? I am happy to donate my time and knowledge to help build something out. If there are others... maybe that is what is needed.

Comments from Quantopian users or management?

8 responses

Hi Kurtis -

Regarding Python and the idea of a GUI interface, I think investing in other areas would pay off more (e.g. the infrastructure for high-performance computing along with ML tools selected/tuned for algorithmic trading). Depending on what you need to do, it can really be a lightweight version of Python that you have to learn. I'm curious--could you give a thumbnail sketch of the kind of thing that you'd like to do on Quantopian? It may not be as hard as you think to accomplish with some basic Python, the Quantopian API, and the various analysis tools available (Alphalens, performance & risk tear sheets, etc.).

The other thing to appreciate is Quantopian is leveraging the fact that Python is the language of data science, and "new alpha" will be found by data scientist types who are proficient in Python. So, the tools and the people are out there; moving toward a proprietary GUI would seem to be not so smart.

I'd also note that if one already knows MATLAB, and vectorization, etc., the jump to Python isn't so bad. MATLAB is pretty common in the technical world, so Python is a relatively "short put" for the MATLAB crowd.

So basically we are back to getting strategy developers to needing to learn Python. Still a major disconnect between common people with good ideas and programmers. Unless this gets solved...

There are GUI-based sophisticated tools, such as Simulink and LabVIEW. Is this the kind of thing you have in mind? I'm at a loss for understanding what you mean by a GUI interface? Are you thinking that even a single line of Python should not be required to do everything presently offered on the Quantopian platform? Or something else?

In any case, if you have a toy strategy that you could outline that captures the sophistication of the kind of thing that you'd want to do, it would be a lot easier to comment.

So I have used Modelstation by ClariFI and Portfolio123. Both have been used with high quality point in time data from CapIQ and Compustat. The backbone of these systems is the ability to develop relative ranking systems based on fundamental or technical factors.

My thought is not to develop a complex one-of-a-kind system but instead to allow strategy developers on these other platforms to come to Quantopian to take it to the next level.

I will give you a very simple example of a strategy that I am not currently using but which can illustrate what is needed to bring hundreds of profitable strategy developers to Quantopian with their systems which are already being used by funds and firms.

Start with Russell 2000 constituents

Rank all 2000 stocks with a relative rank on various factors. Any stock with an NA for that factor will either get the lowest possible rank for that factor. The four factors are:

  1. The median of next years EPS estimate divided by the current closing price. (higher is better)
  2. Trailing 12 month free cash flow divided by the Enterprise Value (higher is better)
  3. The percentage of the available float that is sold short
  4. The float capitalization

All stocks should have a comprehensive ranking score based on these 4 factors.

Next for a rule that excludes any stock which has the trailing 13 week relative performance in the bottom 25% of the Russell 2000 index.

From here, retain the top 100 ranked stocks and replace weekly.

Add a 75% dollar hedge using the IWM Russell 2000 ETF (IWM).

Don't even worry about t-costs at this point. The above example is for illustrative purposes. But the raw returns with weekly stock replacements is an annualized 21.8% from 2000 until today. Max DD is 20%. Sharpe is 1.65.

This isn't even a very good system and super simplistic. It would take me 3-5 minutes to design in my current platform. But I also only have data points of OHLC with weekly re-ranking. My thought is to have this portion of Quantopian easy to design for - intuitive for non-programmers. It would then be on equal footing with platforms that are worth hundreds of millions. As strategy designers move their daily/weekly systems over - the historical stock data series could be provided (perhaps through Pipeline) to the rest of the Quantopian community.

This would allow a second group of developers on Quantopian. We could provide a higher-level stock selection which algo developers could then build on.
Or partner up with platforms like P123. Let the community of 1,000+ strategy developers lease their ranking systems here. Thus, they could keep the design secret and provide stock rank databases for the community here.

The strategy I have outlined above isn't even a really good one. Very simple and basic in the extreme. But it highlights what I wish I could do (and any strategy developer in my shoes) on Quantopian. We truly have some awesome strategies that have worked very well over the past 5 years. And we are begging to turn weekly systems into strategies that update and trade based on minute by minute data. But this is impossible for the little guy to do right now. You have expert programmers which need to develop strategies over the next 5 - 10 years...or you have existing strategy developers who need to learn computer programming in their spare time over the next 5-10 years. Or you have someone who has both skills and is taken up by firms earning $300K per year and will not be part of the Quantopian community. So there needs to be an easier bridge between the two. If I was a big firm I would hire both. But as it is - Quantopian is unaccessible to me. So how do I get it done inline with Quantopians mission statement?

Grant,

You stated "The other thing to appreciate is Quantopian is leveraging the fact that Python is the language of data science, and "new alpha" will be found by data scientist types who are proficient in Python. So, the tools and the people are out there; moving toward a proprietary GUI would seem to be not so smart."

I thought the whole mission for Quantopian was the opposite of this. To take away the secrecy and barriers so someone with financial insight can flesh out their idea.But it seems that you need to learn Python first. I can tell you first hand that of all the people I know with incredible strategies that make a lot of money from their own ideas - not one knows Python. And I know a lot of people who know programming and not one has developed a rock solid investment strategy. There are those out there that can do both - but they are only a small slice of the overall pie. So if we start from the pool of Python programmers and try to develop investment strategists...nothing wrong with that but you just excluded 99% of your target market of current strategy developers.

Shouldn't we start with people with strategies who can quickly implement it on their own (without hiring a full time programmer or having to learn Python)?

The platform is still way too elite and excluding super smart financial strategists who don't have the time or desire to learn programming.

Oh well. I have had my say. I have been writing and saying this to the developers since it began. I will check back in another few years I guess.

Thanks Kurtis -

Lots to chew on in your feedback.

As you may have figured out, the Quantopian Pipeline API is the primary tool for the kind of thing your are talking about. Note, however, that in the present form, it is limited to daily OHLCV bars and other daily data. The issue with minute data, as I understand it, is one of computational capacity; the basic framework could be extended, with enough computing power. In theory, the "other daily data" could be derived from minute data, and then provided as input to Pipeline at a daily frequency (and now I'm curious if this would be feasible in the Quantopian research platform).

Also note that Quantopian does not have the Russell 2000 point-in-time, however you could cook up a proxy that would serve as a decent base universe.

Overall, I'd say there is a pretty good workflow in place to do the kind of slicing and dicing you have in mind in the research platform, using Pipeline, and then pasting code into the backtester for trade simulations (and then back to the research platform for analyses).

I do agree with your sentiment that a lack of programming skills in Python is a barrier to entry. It is compounded by several factors. The first is that I don't think Quantopian has a process for reviewing all of the material they put out for style, and so not only do you have Python to contend with, but it has not been put through a filter, with the question, "Is this code easily digestable by a novice Python coder, still trying to get up the learning curve?" There is an unintentional elitism. Another issue is that the Quantopian API expressed in Python is a moving target; deprecations, additions, bugs, and data errors are not uncommon. To compound matters, it is never quite clear if examples are up-to-date with respect to the current version of the API.

Overall, things could be a lot more approachable. I can understand your frustration of having to slog through not only Python but the Quantopian API; there is a steep learning curve.

Gotta run. It would be interesting to hear from other users, and the Quantopian team.

Agreed. The point is - I would be more than willing to share some strategies in my inventory that are not being used just to further the Quantopian platform.
If there is any interest in this - let me know. It might make a very informative open source case study for learning. If Quantopian can replicate in Pipeline the standard process of what is already being done in institutional grade platforms - then they can leverage the other tools on top of that.

Hi Kurtis,

If you would like to collaborate on writing strategies for live trading, I am currently writing strategies in python on the QuantConnect platform. I work in financial markets & have some intermediate experience programming at the moment and keen to keep practicing. Just at first glance however, the strategy you proposed trades 100 stocks a week which would incur pretty substantial transaction costs & the subsequent returns can probably be easily replicated with simple ETF rotation strategies.

Shoot me an email for further discussion - [email protected]

Lex