712 karma · joined February 28, 2012
Why not prevent this borrowing in the backtest? Quantopian's philosophy is to report the results, rather than block you from trying outrageous scenarios.
Backtests are not predictive; they are a tool to investigate the behavior of your algorithm.
We build nearly everything in python at https://www.quantopian.com
I hosted a coursera meetup recently (http://www.meetup.com/Coursera/Boston-MA/829362/) and I met two students who were enrolled as part time off-campus students, taking the required minimum of classes at the university, and only "spending" those classes on requirements for their majors. All of their enrichment beyond the major was through MOOCs like Coursera. They told me it would take 6 years instead of four, but cost way less, and the preferred the MOOCs for the advanced material anyway. The last piece of the puzzle for them was finding internships, so they could lay the groundwork for a job upon graduating.
Compared to my "find yourself" traipse through college, I was blown away by the steel-trap optimization these guys were applying to school. This economic downturn is breeding a whole generation of just-try-to-stop-me kids. It will be awesome 25 years from now when they are in charge.
We provide a facility for working with trailing windows as pandas dataframes, which are updated by the events. You can control whether those trailing windows have NaN values for missing bars, or if values are filled forward. You'd keep the NaNs if you want your algo to be aware of empty bars (stock is held, thinly traded, etc). You keep the fill forward if you want to avoid coding guards on NaNs :).
(I work for Quantopian)
We also believe setting our own incentives to match our members' needs is key to sustainable trust. That's why Quantopian doesn't invest its own capital - we want to be purely focused on and motivated by serving quants.
Being a successful quant takes many things - talent, mentorship, access to data, great systems, discipline. We started with backtesting because many aspiring quants end up skipping rigorous backtesting because of the time necessary to develop the test harness. We focused on community from the start to help connect new talent with mentors.
If you're not ready to trust us with your algorithms, I hope you'll trust us with a bit of your time. Come share some of what you've learned over the years with our community.
Our backtesting engine, Zipline, is opensource - https://github.com/quantopian/zipline
Zipline was unveiled at PyData NYC, and the presentation materials are here: https://app.quantopian.com/posts/hello-from-pydata
- do consulting work and build custom software until you have a good sense for the problems. Once you know what customers want, throw away everything you coded and re-implement as a product. It is very difficult to reach escape velocity this way - you will be very dependent on consulting revenue, making it hard to stop consulting and work on product. But if you don't know the domain, this is your best bet.
- make a product that an employee in your target market could/would pay for themselves. Once you have a product users love, you can work out enterprise features like on-site deployment and system/data integration. The individual user revenue will finance your development, and sustain you through the infamous "enterprise software sales cycle", and its longer, more painful cousin the "enterprise software deployment cycle".
If you want ideas: pick a target industry, then talk to users. Literally ask them what frustrates them about their work. Life in the enterprise is _full_ of frustration, it doesn't take long to find a good problem to work on :).
The harder part is picking the right target industry. My advice is to pursue customers you admire. You want to love meeting and talking to your customers, since you'll spend a lot of time obsessing over them...
I work at Quantopian, and our goal is to make it possible for more people to explore algorithmic investing. I agree the social utility of from increasing liquidity from current levels is at best diminishing returns, but algorithms could bring the same drop in costs and increase in quality for money management that it brought to trading. That's a benefit to individuals, pension funds, charitable endowments, and anyone else that has to save and plan for the future. Financial professions couldn't have a worse rap these days, much of it deserved, but there are real social problems that require financial solutions. People need to save for retirement, plan for the kids' college tuition, and take on mortgages.
I think it is really good for society to have smart people work on investment management. Especially if they are automating, collaborating, and discussing their work openly - the opposite of today's Wall Street. I like that QuantBlock did something original, and I love that they are striving for really broad access.
We think the key to advancing algorithmic investment is to create more access so smart hackers can tinker with investment strategies. Those folks should be able to explore and test ideas/algos without spending a few years building a backtester, or a few years' of salary on data. That's why our backtester is free to use at quantopian.com, and why the source code will be released at PyData NYC (http://blog.quantopian.com/pydatanyc-here-we-come/).
I wrote more about where we want Quantopian to go, and where I think finance needs to go on our blog: http://blog.quantopian.com/quantopian-manifesto/
However, we are actually more excited about adding non-market data, because we want to bring more talent to 'algorithmic investment'. We hope our community can create algorithms that make buy/sell decisions based on more than just liquidity - fundamentals, reported data, qualitative news and research content. In other words, automating more of fundamental analysis and investment.