This strategy is based on the modified version of the Directional Movement indicator I posted here. The strategy has to be backtested but it always gives above 70% of winning trades with a decent gain/loss ratio. The average gain per trade can be improved by changing the stop loss and the ADXR threshold.
Blue skies.
//tipomm=2
//x=5 - I normally use a number between 5 and 10
DEFPARAM CumulateOrders = False
// Entering long
ignored, ignored, mioDI, ignored, mioADXR, ignored = CALL "PRT - ADX e DI"[14, 2]
c1 = (mioADXR > 50)
c2 = (mioDI > 0)
IF c1 AND c2 THEN
BUY 3000 CASH AT average[x,tipomm](low) limit
ENDIF
// Exiting long
IF longonmarket THEN
SELL AT average[x,tipomm](high) limit
ENDIF
set stop %loss 15
Hi Gabri, thanks for your contribution for the benefit of everyone here!
About this specific strategy, I’d like to know a little more:
_ what instrument, spread and / or fees?
_ what timeframe?
_ optimized settings: did you try WFA?
Nicolas,
I use stocks (italian, german and french), daily timeframe and no spread on the strategy I posted. I used this system for several months in real trading (manual) and got always more than 70% winning trades and better gain/loss ratios than the one published. I didn’t WFA.
Gabri
Fine!, but how do you define what stocks should be a good candidate to be traded by the strategy?
I pick stocks with high CSI or ADXR. I take this data from the indicator I posted.
I made some backtests and I found it works way better with a major trend filter, since this is a long only strategy with a sorta ‘mean reversion’ theory, what do you think? (trading only if Close>Average[100-200] ..).
Nicolas,
I was using it just for small and short trades and I am sure that there are better way to use it. Every input is more than welcome. How would you code it with your system?
I coded it this way:
(trendperiod is an optimized variable), a 100 days period is a good compromise between performance and trades quantity..
DEFPARAM CumulateOrders = False
tipomm=2
x=5 //I normally use a number between 5 and 10
// Entering long
ignored, ignored, mioDI, ignored, mioADXR, ignored = CALL "Mio - ADX e DI"[14, 2]
c1 = (mioADXR > 50)
c2 = (mioDI > 0)
c3 = close>average[trendperiod](close)
IF c1 AND c2 and c3 THEN
BUY 3000 CASH AT average[x,tipomm](low) limit
ENDIF
// Exiting long
IF longonmarket THEN
SELL AT average[x,tipomm](high) limit
ENDIF
set stop %loss 15
Nicolas,
I think your addition it’s quite interesting but I personally think that launching a screener first (CSI or ADXR) and then running the code on the first 10-15 stocks of the list (building a portfolio) has better results. I quickly tested your version on a portfolio and seems to be carrying lower profits. I like the fact though that you have better gain per trade.
Gabriele
Ok 👌
What about the rebalancing of the portfolio made with this kind of stocks pick?
Good question. I don’t use too much this system anymore but I used to rebalance weekly. I always keep between 20 to 35 stocks in a short trading portfolio. When I sell I am not rushed to find a new stock to replace the old. I just run this screener (or some other screener focused on short term trading) once a week and if I find a good stock I add it.