Monte Carlo stress tests give you an estimate of how much capital you need to run a given strategy or portfolio of strategies.
One of the stress tests that is useful is to randomly skip trades. The only input is a probability (say 1-10%) for the test along with the other monte carlo parameters.
This is a common robustness test as generally you won't get filled on all your trades and it tests how reliant your strategy is on getting filled on all the trades in the backtest.
One of the stress tests that is useful is to randomly skip trades. The only input is a probability (say 1-10%) for the test along with the other monte carlo parameters.
This is a common robustness test as generally you won't get filled on all your trades and it tests how reliant your strategy is on getting filled on all the trades in the backtest.
Rename
Interesting, do you know of any source material that describes this in more detail?
It's super simple. You are already generating random numbers for the trades in the monte carlo for each iteration. Just add an input for the probability to skip a trade and condition in the loop to skip that trade if the random number is less than or equal to the probability.
Yes it's pretty descriptive but where is this coming from i.e. can you point to a reputable source?
Would you see this option available across all of the MC simulation methods? I gather that the net effect is to reduce the ultimate number of trades by the given percentage. As such it might justify even a new simulation mode that simply returns the actual positions. You could then simulate runs of just dropping some of the positions to see the effect.
I would add it as an option for any of the monte carlo tests.
In my opinion, the monte carlo tests aren't really a robustness test but rather an estimate of what your potential drawdown could be. It also is a trigger for when you should stop trading that strategy (i.e. if you exceed your max drawdown or average drawdown given a 95-98% confidence interval)
Speaking of which you should add average drawdown to the chart as that is also a great warning signal your strategy is in trouble.
As to Eugene's question. I don't remember seeing any paper on it but I have seen it used elsewhere. It is basically a common sense test. Often it won't make any difference (which is good) as the trades relatively similar (particularly in mean reversion strategies), but if the strategy is dependent on a few large wins then you could see a significant degradation in the performance and lead you to including a different strategy in your portfolio.
In my opinion, the monte carlo tests aren't really a robustness test but rather an estimate of what your potential drawdown could be. It also is a trigger for when you should stop trading that strategy (i.e. if you exceed your max drawdown or average drawdown given a 95-98% confidence interval)
Speaking of which you should add average drawdown to the chart as that is also a great warning signal your strategy is in trouble.
As to Eugene's question. I don't remember seeing any paper on it but I have seen it used elsewhere. It is basically a common sense test. Often it won't make any difference (which is good) as the trades relatively similar (particularly in mean reversion strategies), but if the strategy is dependent on a few large wins then you could see a significant degradation in the performance and lead you to including a different strategy in your portfolio.
Since we have a hot fix coming out with the market holiday fix I'm using the time to work on these Monte Carlo changes for the next release cycle. Always value your contributions and thanks for the long-time support!
Awesome!
@Glitch I like your idea: "As such it might justify even a new simulation mode that simply returns the actual positions. You could then simulate runs of just dropping some of the positions to see the effect."
It’s coming in MC Lab Build 6 👍
We've got to hand it to mjj3 for the suggestion and to Glitch for implementing it - there is a profound negative effect to missing trades -
It is also an element of over optimization. Optimization is basically a process of finding parameters that take the best trades and miss the worst trades. When you randomly skip trades you are negating that effect. You will find that the most robust strategies (or parameter combinations) will not degrade as much.
Your Response
Post
Edit Post
Login is required