Hello Chorlton,
I still did not have time to work on my Backtesting FAQ, but I am around
I think this Stop thing is a major problem, to be honest. Let me make sure that I understand you correctly. This is how it works now:
1. You enter position at the Open.
2. You set the Stop condition to compare Close with your Stop level and exit on the Open of next bar if Stop level is breached.
3. On the open of next candle you move your Stop level.
The way I originally coded my system was to only exit the trade if the priced closed below the Trailing Stop Level. This Trailing Stop Level was based on the LLV (Lowest Low Value) of the previous few bars. As long as price CLOSED above this level the stop would not activate. Was this your understanding of my orginal explanation?
While this initially seemed to be OK, I noticed on my charts that in a lot of places the low of the price bar sometimes spiked below this level although the price still closed above it.
In this way effectively you have no stop at all... It is more of an "exit condition" than stop, as during each candle you might suffer unlimited drawdown and even face a margin call and you would not exit the position. This kind of a strategy might work 90% of the time and then the remaining 10% could kill you.
Yep, Possible Margin calls are what concerns me if I decide to Spreadbet this strategy.
I can't really say how to improve the situation, as I do not know the rules of your system. However for the beginning you could simply widen your stop considerably (in order to avoid being stopped out to often on the lows) and see what happens with the results.
That was my first idea. To date though, all other stops I have tried result in a much higher MaxDD %. Using my existing Exit strategy but replacing the CLOSE with the LOW actually results in a non-profitable system as due to the number of intraday low spikes, the trades get stopped out prematurely
Another trailing stop caveat - if you do not have intraday data, you cannot really test it. It is probably obvious to you, but let's show it anyway.
Let's assume you open your position at the opening of the candle at 1.5000.
You set your trailing stop to 20 ticks, so the initial level is 1.4980.
Let's say the candle turns out to be a large move up, with the open=low=1.5000 and close=high=1.5100.
If your method for testing if the Stop was triggered involves comparing with either Low or Close, then you think that you were not stopped out. However in reality it might be so. Imagine the intrabar price action:
Move up to 1.5050, the stop moves to 1.5030
Move down to 1.5010, the stop gets hit
Move up to 1.5100
So you had a great winning position but you got stopped out because of the use of the trailing stop...
Good Explanation but in my case the Trailing Stop level would NOT change during trading hours at it is calculated based on previous price data. If it happened to be set at 1.4980 then it would remain at this level for that entire day
A solution could be just to use Stops at fixed-for-the-bar, but moveable levels (
like previous candle's low). In this way you would have no ambiguity.