Quantopian is a very interesting FinTech project for virtually everybody, who wants to try the algorithmic trading. Yet I explain why I myself - a successful trader, experienced quant and good programmer - don't take part.
First of all Quantopian requires from traders to upload their algorithms to the Quantopian's server. It may be justified with data protection: Quantopian has a rich dataset, which is very expensive. But if they are so keen on protecting the data (which are licensed to them but are not their intellectual property), why should I disclose my algorithm (which is my intellectual property) to them?!
Second, as a programming language they allow only Python. Python is definitely a very successful language. Bruce Eckel, whose books I read to learn Java and C++ is a big Python fan. Many argue that every data scientist should possess Python. All right, all right ... but still I haven't got around to learn Python. Indeed, I know pretty in depth R, C++ and PHP. I use R when I need to do some statistical analysis. C++ is good for computationally-intensive tasks and if they can be run in parallel I also engage CUDA. If I need to preprocess a data, PHP is a good scripting language. So I really have no big need to learn Python and IMO its Quantopian's job to offer the alternatives, e.g. R and Matlab.
Now let us reflect on what Quantopian does and doesn't look for or, in other words, which properties your algorithm should have (and which avoid) in order to get funded by Quantopian.
Low Exposure to the Market
We want algorithms that aren't correlated to the rest of the stock market. If your algorithm is correlated with the rest of the stock market, the algorithm isn't providing any quality different from buying a market index. As a practical matter this means that we're looking for algorithms that have a strong hedging component, or are completely hedged at all times. We measure market exposure by calculating your beta to the S&P 500. We are looking for algorithms with a market beta between -0.3 and +0.3
So they essentially want a market neutrality. Of course it is good but is it realistic in the world, in which even gold has positively correlated with stocks during recent years?! And if an algorithm has a large beta (closely correlates with the market) but also has a significant alpha (beats the market), isn't it still worthy?!
We are looking for uncorrelated algorithms that show stable profits. If your algorithm is losing money, or makes money in a volatile way, it isn't very helpful. We are looking for algorithms that consistently have a Sharpe ratio over 1.0.
This is probably the most unrealistic requirement, esp. for the algorithmic trading. Guys, do you really believe that a market inefficiency, which consistently persists, will not be exploited (and thus exhausted) in the twinkling of an eye?!
I do have algorithmic components in my trading strategies but essentially they watch a large asset universe and patiently wait for a proper opportunity (patience is one the the biggest advantages of computers over humans). Usually, I need a higher volatility in order these opportunities to occur. And the volatility clustering (alternation of periods with high and low volatility) is a stylized fact!
Actively Trading Algorithms
Your algorithm has to actively trade. We measure that by looking at how often your portfolio turns over per year. This is important because we need your algorithm to be predictable. Our algorithm selection model only works if we have sufficient data to analyze about your algorithm. Algorithms that rebalance or trade very infrequently are difficult to model with limited historical data. We are looking for algorithms that turn over their portfolio between 12 and 500 times per year (e.g between once per month and twice a day).
In Germany they say: Hin und her macht Tasche leer! (trading too frequently makes you wallet empty). Yes, due to the Central Limit Theorem a large number of trades allows a reliable statistical evaluation of a trading algorithm. I used it when I evaluated the Einstein's and my own performance. But one should clearly understand that the statistical tractability is a nice-to-have feature, which in no way should be bought at cost of performance. If you try to trade too frequently, not only will you have to pay the spread and commissions, but you will essentially trade the noise!
Low Correlation to Peers
Your algorithm must generate a returns stream that has low correlation with other algorithms we select. We measure correlation by looking at your average pairwise correlation with the rest of the algorithms in the pool. We prefer that average to be between -30% and +30% average pairwise correlation with the other algorithms in our portfolio.
Oh my God! I should take into consideration the factors that I even cannot see completely (or do everyone has a full access to everyone's algorithms ... which would be even worse). But guys, do you at least adhere to "first come, first got funded" principle?! Or if I create a good algo but then somebody else makes a similar one, I may be rejected only because somebody did (later than me) a similar good job?!
We are looking for algorithms that are driven by underlying economic reasoning. Examples of economic reasoning could be a supply and demand imbalance, a mixture of technical and fundamental drivers of stock price or a structural mispricing between an index ETF and its constituent stocks.
Whose economy has the fastest growth during last decades?! Chinese! Even if its growth is not the fastest, it is definitely one of. And Deng Xiaoping, the father of Chinese Wirtschaftwunder used to say: "It doesn't matter whether a cat is white or black, as long as it catches mice".
What you have forgotten to mention (but definitely should have to) is the scalability. As a matter of fact, most of the market inefficiencies are found by small caps. Einstein's Platintrader 1000% Leidenschaft is an example that generally suits your requirements (with only one exception: most likely Einstein is a discretionary trader). But with real money his portfolio would reach the market liquidity limit very quickly due to the slippage and partial execution of orders.
As to what Quantopian does not want (overfitting, data snooping, spurious correlations and infringing or misappropriated content), these requirements are generally plausible. Probably only the spurious correlation is somewhat questionable:
If there is no economic underpinning linking the algorithm's signal and its profits, this should be a warning sign. When you don't know why your algorithm works, it is difficult to have confidence about its future behavior.
Of course it good to have an economic linking but is it really possible? At least many experts argue that the stock prices converges to fundamental data only in long-term (if at all).
But ok, let us unrealistically assume that you have fulfilled all the requirements. As a reward Quantopians offer you
If your algorithm receives an allocation, we will pay you a share of the returns that your algorithm earns on our capital. Our target is to pay you 10% of the net profit on your algorithm's allocation.
10% of the net profit!!! Guys, you are really generous! Summing up, let me tell you a short anecdote, which was very popular in Russia in 90s, as Russia moved from communism to a (wild) capitalism.
A job-ad: we are looking for a secretary with 20 years of experience, not older than 18 years, who is ready to work for food.
P.S. All my critics doesn't mean that Quantopian is a useless project. Contrary, I find it very useful an, like Wikifolio, genually social. Indeed, every student or wanna-be-quant-trader can make his hands dirty and get a track record. But this is only a first step and don't expect that Quantopian will be able to help you to make further steps (at least so far).
And if Quantopian really wants to be a successful mediator between investors and quantitative traders, they should get rid of their overfastidiousness, stop being Python only, allow traders to run algos at their client machines (put a requirement in license agreement not to redistribute the market data or offer a paid subscription like Quandl does) and, last but not least, more actively attract investors.
The discretionary (human) and the automatic (computer) trading are often contraposed. I am quite sure they should rather complement than substitute each other. A computer should do a routine job like "search for assets that dropped x% within two weeks". A computer may also do some fundamental preselection, e.g. based on the branch, P/E and even news sentiment. But it is a trader's task to scrutinize why this drop has happened (analyze the news not just for "positive" or "negative" sentiment, interpret economic and political events and so on).
Another example: the commodity markets are, in my opinion, more trendy than stock markets (recall gold, oil, agricultures and metals during recent decades). What is more important, they experience more mean reversion by downtrend because if a company goes bankrupt, a stock can fall to zero but a commodity will always cost something. Since I cannot (though I would with pleasure) do the fundamental analysis for all liquid commodities, I use a set of algorithms to automatically recognize trends and their reversals. But for the oil, which is likely the most important commodity, I do a lot of fundamental analysis (finally, currently I work in energy branch). And this fundamental analysis is more qualitative than quantitative, because the oil price converges (if it all) to the fundamentals only in a long term. But knowing what the shale oil is, what Donald Trump is promising to do, what the (range of) break-even production costs is and that OPEC lands will likely (secretly) violate their own agreement allows me to introduce an "inclination to going short" into my system. But if the context qualitatively changes (e.g. I know that a new OPEC meeting is scheduled and the market does pay attention to it), this inclination may be (temporarily) disabled. Moreover, it will readily be changed to going long, if there are reasons to do this like e.g. a rising demand in India like it was in China in 200x.
FinViz - an advanced stock screener (both for technical and fundamental traders)