Ok, I'll bite...why would live-trading algos have such a restriction? That is usually only useful for deterministic debugging.
Here is a scenario I'm facing lately...
I have an algo( in fact a modification of one of yours Grant!), which when I make the start-date different, and fix the end-date to today, gives a fairly wide range of TotalReturns = ~(-10% to +30%), using backtest windows of from ~(1.5-10) years...I like the algo, as it's pretty solid for a good proportion of
the start times I've run it in the IDE backtester....so what do I do? ... as at any time, should I start or not?
Well...comments welcome, but the path I'm currently taking is:
- Use the Research environment to sweep the start-date as a parameter, to analyze the ending point distributions of this
particular type of "random walk".
(This is easier said than done, but I'm making progress, and may find out I don't need this infrastructure)
So let's assume I complete that task, and move on to what I do with that information.
- Develop a restart-signal, with a controlled modeled-random-jump to a new start-time that gets me into a statistically good starting
region, in simulation.
- Deploy this algo, with the restart-signal+modeled-random-jump, into the live-trading environment.
[Note: This is where the live random number generator is actually needed...not a fixed-seed deterministic one,
as I'll have a stochastic model that is predicting good jumps to start-times.]
As Alexander pointed out, if some entity bans the use of random(), I'd probably just use the numpy version, or even my own version if need be.
alan