[O/T from MC] Just some thoughts on forward walk, that is on testing on 'unseen data' ...
From reading about forward walk, those testing systems, may simply take this to mean to test on a defined period, as example 2000-2006, and then once you have completed this then test on unseen data, example 2006-2008. However others may also read this as 'optimize the parameters' as much as one can, then test how well those optimized parameters hold over another period. The emphasis here is on 'optimize'. While we all 'optimize' to a degree, some take it much further than others.
Some system designers and traders, will actually take the concept of 'forward walk' even another step further, and continue to walk forward test and continually adapt parameters through optimization as they trade (that is using the results of this type of testing as a form of system feedback),attempting to adapt to the changing market.
Some of these type of systems, may be very basic, such as a moving average cross-over. This approach to system design of optimization/walk-forward feedback, re-optimization, in my humble opinion is too focused on re-optimization of a system (which potentially could be beating a very dead horse), and not really determining why something may or not work in its raw form, now or in the future.
Shane
It's the jump from testing to walking forward with real money that many find quite hard. A system test of 10 years worth of trades takes 1-2 minutes, but real life is much slower - I guess that it is "real".
You don't suffer the drawdowns in a system test. Mybe we need an electric shock add-in to simulate the pain of losses and give more direct feedback on a system's performance. Then slow down the test during the painful periods and speed it up when it's making money!
stevo
It's the jump from testing to walking forward with real money that many find quite hard.
The larger majority dispense with the testing bit and just step up to the plate with idea 101 and get straight into forward testing---urr trading.
I will put my hand up and say I have NEVER back tested.
Any specific reason for not backtesting?
The only problem with that is that you are initially putting yourself at risk of trading a system without knowing beforehand what it will perform like.
I am not sure it is important to know whether any paths have been repeated as I am mainly interested in MC testing to look at the extremes of results rather than the mean or median results. I might suggest that two years for a LTTF data set is too short and a much longer period will produce more meaningful results (including assessing performance over various market condictions).
Assigning random numbers to the positionscore variable would appear to be using this function to do what it was designed to avoid.
Not sidetracking at all. I simply want to know what something is and how it works
Regarding the position score attribute in Amibroker...here is a wild idea...would it not be possible to randomise this through various iterations of a backtest and essentially simulate the Monte Carlo testing that TradeSim does...using optimisation of a dummy variable to generate each simulated portfolio?
ASX.G
[O/T from MC] Just some thoughts on forward walk, that is on testing on 'unseen data' ...
Some system designers and traders, will actually take the concept of 'forward walk' even another step further, and continue to walk forward test and continually adapt parameters through optimization as they trade (that is using the results of this type of testing as a form of system feedback),attempting to adapt to the changing market.
Just as a note, if you want to use the Mersenne Twister RNG, use:PositionScore = Random
Thought I might post myon how I do Monte Carlo testing as I know it means different things to different people.
I use AmiBroker with an extremly large starting capitial and simple fixed position sizing to generate a list of every possible trade the system could generate over the choosen period. The list of trades is then exported to a csv file.
I wrote a little java app that performs two variations on monte carlo testing.
It imports the csv and stores all of the trades then:
1. randomizes the paths that could have been taken in trading during this period using a set number of runs (I usually use 5 thousand) This is the same approach that Nizar has detailed.
2. It also then randomizes the order of the trades and performs test number 1 randomizing the trade order on each iteration.
I believe this helps give the sample data a bit more of a random feel as future data will be, while still keeps the integrity of the data.
Both tests then give the averages, outliers etc. and both tests just add a little bit more information with which to judge how the system may perform with real money on the line tommorrow.
Hello Grantk,
Apologies if I misunderstand your approach, but if you are using a "very large" starting capital with simple fixed position sizing then, as you say, you will be generating a list of EVERY possible trade.
If this is the case, then can I ask what benefit there is in carrying out Monte Carlo testing on this list as every trade will still be taken? Basically, the only thing you are assessing is the order in which they are taken.
My understanding on the benefit of Monte Carlo Analysis was to assess the impact to a system if every trade could NOT be taken, due to lack of capital, etc.
Just interested in your thoughts...
Cheers,
Chorlton
Ah, it would of made more sense if I had explained it properly. The list of full trades is passed into the monte carlo application, which also has settings for position sizing and capital. These are set before the monte carlo tests are run....
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?