Tech, a question that I have been pondering:
Why is Monte Carlo Analysis better than Optimising/Walk Forward?
We've been lead down the Monte Carlo path with Tradesim but is it the better way to go?
What's the difference?
Cheers SB
Why is Monte Carlo Analysis better than Optimising/Walk Forward?
RE: Out of sample testing
Are the nature of the signals we select for a trading system subject to a natural bias toward performance? ie. a non-systematic process of optimization by the trader who develops the system.
If so, does this support the use of out of sample testing to validate the objectiveness of the design?
An extention of this question, at risk of digressing the thread, I wonder about the assertion Curtis Faith makes that regular Monte Carlo testing breaks up the sequencing of Black Swan events and hence the distribution of results from a series of Monte Carlo might be misleading. He claims that his TradingBlox software has parameters to keep these events properly grouped. I haven't investigated this and it's of course entirely possible that my interpretation of what he was saying is also incorrect...but since we're calling Monte Carlo into question we might as well take it the whole 9 yards.
For this reason I think GPs idea of randomly dropping a proportion of trades has a lot of merit.
ASX.G
Monte Carlo techniques can be applied in many ways. One way is to reorder observed actual trades. Another is to first create a statistical distribution from the observed actual trades, then make repeated random selections from that distribution.
Both of these techniques create simulated equity curves, with the hope that the distribution of these simulated equity curves gives some insight into the possible behavior of the trading system's equity curve, including how Black Swan events might affect the system.
Hi ASXG
My understanding is that TradeSim MC randomises the trades but keeps the date sequence intact. So if there was capital available for one trade, but six signals occurred, then normally TradeSim would take the first share alphabetically.
In MC it shuffles the sequence of trades to give a range of possible portfolios but maintains the date sequence of entries.
Hope this helps
Cheers
Shane
Nizar,
My file for the ASX 2001 is 17MB. Have you got an email address that would take that size a file. I found there is a big difference testing the current ASX300 back in 2001 compared to testing the actual constituents of the ASX300 as it was back then. My file includes those shares delisted and those with name changes. Was a painstaking task doing it but worth it as I eliminate the survivorship bias.
Now my date filter was for the last date of 2001 on the weekly chart. The last date if you are trading from a daily chart would be 31/12/2001.
So it should be
StDay:=Input(" Start day",1,31,31);
StMnth:=Input("Start month",1,12,12);
StYear:=Input("Start year",1980,2020,2001);
EnDay:=Input(" End day",1,31,31);
EnMnth:=Input(" End month",1,12,12);
EnYear:=Input(" End year",1980,2020,2001);
If((Year() > StYear OR (Year()=StYear AND ((Month() >
StMnth) OR (Month() = StMnth AND DayOfMonth() >=
StDay)))) AND (Year() < EnYear OR (Year()=EnYear AND
((Month() < EnMnth) OR (Month() = EnMnth AND
DayOfMonth() <= EnDay)))) ,1,0);
Also you might have to use the forum.dll latch function in your exit code to help you get exits on the 31/12/2001
eg
le:=Fml("Your entry trigger");
lx:=Fml("Your exit trigger");
SE:=0;
SX:=0;
B:=ExtFml("forum.Latch",LE,LX,SE,SX);
B = 0 AND Ref(B,-1) = 1
Also add this to your Entry code. It is from Roy Larsen
Date Filter1
StDay:=Input(" Start day",1,31,1);
StMnth:=Input("Start month",1,12,1);
StYear:=Input("Start year",1980,2020,2001);
EnDay:=Input(" End day",1,31,31);
EnMnth:=Input(" End month",1,12,12);
EnYear:=Input(" End year",1980,2020,2001);
If((Year() > StYear OR (Year()=StYear AND ((Month() >
StMnth) OR (Month() = StMnth AND DayOfMonth() >=
StDay)))) AND (Year() < EnYear OR (Year()=EnYear AND
((Month() < EnMnth) OR (Month() = EnMnth AND
DayOfMonth() <= EnDay)))) ,1,0);
Note this date filter is used with a different purpose from the other date filter I gave earlier and that is why I named this date filter1. This date filter when incorporated with your entry code forces only entries that occur between 1/1/2001 and 31/1/2001
So for example
date:=fml("date filter1");
entry:=cross(c,mov(c,21,s));
entry and date
Hope that helps
Also to get the 0.75% go to the preference section where you set your parameters. You have transaction costs:Fixed costs, fixed costs per share/contract,fractional costs. Choose the fractional cost and this will enable you to choose your transaction cost as a fraction of your cost for entry into a trade.
I try to stress my system as much as possible to see how it performs.
Also I chose 2001 as opposed to 2002 because of the unexpected events of sep 11. A lot of systems would have been unprepared for that and most systems perform worse in 2001 than 2002 even though 2002 was a down year for the XAO.
Somewhere else Howard posted something about system decay, however I haven't heard Nick Radge address this issue and I suspect that it is not a major part of his methodology - not that either method is better, just different, and perhaps points of difference may arise from the nature of the systems being developed. "There is more than one way to skin a cat"
Interested to hear others thoughts on these issues.
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?