Hi,
I’m hoping for input from people to see if the trailing stop loss section of this strategy which I have been working on can be improved before publishing it.
This strategy is taken from the book Beyond Technical Analysis by Tushar Chande, the strategy is called Bottom Fishing. It was intended for use on a daily time-frame but I have adapted it to a 3 minute time-frame to generate more signals. It has just a few Entry criteria of which I optimised a couple on 50k bars before then testing on 200k bars. The Exit strategy is taken from the excellent Vectorial strategy, a very big thank you to the author and contributors of that.
This strategy is good at taking small profits on a consistent basis, which accounts for 80% of the winning trades, and only a few losing trades overall. hence I believe the trailing stop loss might be too tight.
I would welcome any ideas or feedback regarding the trailing stop loss methodology to see if the performance can be improved without impacting the equity curve too greatly. I have looked through the Snippet library and this is still work in progress, but hoping someone might have a better idea.
Notes:
Instrument Dax
Account IG Spreadbetting, assumed spread 2.6
Capital/Risk 10,000 and 10 per point
Money Mgt None utilised in this code. I manage this manually, increasing risk per trade at month end based on original capital plus performance to date and keeping the 1,000 of capital to 1 per point ratio.
Thank you very much,
S
With second image which didn’t load.
What do you want the trail to achieve? to start when you’re $3500 in profit? That doesn’t seem to make sense, as you already have an ATR trail.
I think what you want there is
SET STOP %LOSS
or
SET STOP pLOSS
with a more realistic stoploss of around 1.5% (for example)
You do realize that the Breakeven is switched off ? did you mean to do that?
Otherwise, tsminstop should be 5 for the DAX – this is set by IG (although they can also vary it at different times of the day).
Also, for backtest you have to enter something for Spread, at least 2 if it’s running 24hrs
This is how it looks on 1m bars
Spread = 2
SET STOP %LOSS 0.6
Breakeven = 1
positionsize = 1
tsminstop = 5
No other changes
thanked this post
Hi nonetheless,
Thank you for the flurry of ideas, feedback and observations. That’s exactly what I was hoping for. In reply to each of your suggestions/comments;
1 – Trailing stop to start when you’re $3500 in profit?
Probably too high based on average winning trade being so much lower. But I could reconsider a lower profit target.
2 – %LOSS at 1.5%
I like this idea, it will create a wide enough stop to allow it to run. However, as it trades on a 3 min time-frame, I might refine your idea further – thank you
3 – Break even switched off, did you mean to do that?
Yes, purely for the purposes of showing the raw performance. Enabling the break even increases returns (see attached image), but then the majority of the winning trades are from break even profits which I feel partly clouds the analysis, but also suggests that the break even might be to tight.
Does optimizing the Stop Loss also equate to curve fitting?
4 – for backtest you have to enter something for Spread, at least 2 if it’s running 24hrs
I have this set to 2.6, please see first post. I based this on an article you had kindly posted on the MoD strategy, showing how you arrived at a suitable spread for back testing based on how the spread with IG changes throughout the different hours.
Thanks once again, very helpful.
Thank you for running this over 1m bars. Please could you provide a screenshot of the equity curve above the DAX market price chart. As this is a long only I would imagine it might require a simple filter to avoid the drawdown period.
Thank you,
S
The equity curve will be v similar to the gross performance graph, as shown.
Quick question – you have backtest on 1m bars testing the IG German CFD contract. Are you a client of ProRealTime, and through them trade with IG, or a client of IG directly? Thanks
Both. I opened a second IG account through PRT in order to get Premium.
Both. I opened a second IG account through PRT in order to get Premium.
Are you allowed to have two accounts? When I talked to PRT the other day they said I had to cancel my main IG account first in order to open a Premium account through PRT.
This was about a year ago, maybe they’ve changed their policy. I actually have 4 IG accounts in 3 different countries (don’t ask).
PaulParticipant
Master
no trailingstop & no breakeven, but a smaller profittarget compared to the stoploss 0.6%, re-optimise on 200k, showed here results on 1M.
// strategy
//bullish = close>lowest[15](low)[5]
bearish = lowest[15](low) //ORIG:20 OPT:12 on 5ok bars
PullBack = (low[5]=bearish)
X = high-low
Y = close-open
// Conditions to enter long positions
indicator1 = Average[13](close)
indicator2 = Average[6](close)
c1 = (indicator1 CROSSES UNDER indicator2)
condbuy = c1 AND Pullback AND X > 1 AND Y > 2
condsell= 0
//
ctime = time >= 090500 and time < 213000
thanked this post
PaulParticipant
Master
@samsampop Performance looks good in your code. But this part
SET STOP $TRAILING StopLoss
I believe it can’t be used reliable because it doesn’t read tick by ticks.
Perhaps it’s better to use a stoploss like nonetheless suggested.
To me ts is secondary. It’s interesting to test this code in ORT layout. Thanks for posting.
Here’s another possible treatment, I added a 6min Stoch/RSI and %trail.
This is optimized on 1m bars at 70/30, preferring Lowest Max DD. Interesting that I got very similar values to Paul with his ORT approach.
Still patchy in places, but getting there.
PaulParticipant
Master
nice results nonetheless. Using mtf makes it slow but worth it!