383 karma · joined July 20, 2012
I'm one of the core devs.
PyMC3 uses Theano to create a compute graph of the model which then gets compiled to C. Moreover, it gives us the gradient for free so that HMC and NUTS can be used which work models of high complexity.
I use it in production, despite it still being beta. We're close to the first stable release but there are still some small kinks to figure out.
Disclaimer: I'm a co-developer.
I went ahead and fixed it: https://gist.github.com/twiecki/7361de09b8e4c0a6248e
PyMC3 is nearing the first beta release and is a complete rewrite that's using Theano to add just-in-time-compilation as well as support for next-generation sampling methods like Hamiltonian Monte Carlo (e.g. NUTS): http://pymc-devs.github.io/pymc3/
We have the same strategy on Quantopian though (https://www.quantopian.com/posts/olmar-implementation-fixed-...) where we have 10 years of minutely data, adjusted for splits and dividends. It seems to do quite well.
As for market-paradigm shifts, I totally agree. One way to deal with that is to constantly re-optimize the parameters based on recent data. This is also known as walk-forward optimization on which there is a slide at the very end (see http://blog.quantopian.com/parameter-optimization/ for a more information).
Finally, as to running multiple strategies with different parameter settings. The OLMAR paper that describes the algorithm (http://arxiv.org/abs/1206.4626) has a variation of this where they use a range of different-length moving averages, rather than just one.
Finally, live trading is something which we are working on to enable on Quantopian (which uses zipline for backtesting your algorithms). The syntax is very similar so you could just convert your zipline strategy to Quantopian (which is free to use).
You can, however, view the full IPython NB here: http://nbviewer.ipython.org/urls/raw.github.com/twiecki/zipl...