Backtest EA - consistency

 

Hi

I've spent so much time writing many EAs, changing it numerous times based on various strategies but none of them seem to produce consistent results which is frustrating me. I found a post by bgaitero and his EA performed excellent over a period of 8 -9 years in backtest. (https://forum.mql4.com/18491). He used RSI + Stochastic to produce this graph. I cannot get my EA to perform like that. Is this graph believable?

The strategies I've tried are moving averages, 3 ducks, ny breakout box, rsi+stochastic, HMA + williams etc (with various settings). What am i doing wrong? I always risk 1% of account margin, calculate lot based on stoploss distance and apply trailing stop (mostly 70 pips) on 1hour chart. The EA performs great at times (2008) and then flat lines bleeding money, recover again in spurts and long periods of flat lines. I've tried testing most of the strategies on EUR USD. My spread is fixed (offline chart).

I'm more of a programmer than a trader. But I've spent countless hours reading up on forums on strategies and trading methods. I know that many strategies stop working as market conditions change - so how is it possible for an EA to produce a graph like bgaitero did.


Thanks in advance.

 

Is this graph believable? It's believable for the back-tester.

What am i doing wrong? Nothing, we all try different things.

is it possible for an EA to produce a graph like bgaitero.

Yes, one way is using Strategy Optimizer. Only bgaitero can describe in detail how he achieve his results. But even if he did, there would be allot of people here who would dis-agree with his methods. The EA could be Curve-Fitted or Forward-Peaking and I've seen allot of them come through here.

What you're describing is the same experience I've had. For Trend-Based systems with 1-2% risk-per-trade, they're going to lose by Flat-Lining and Bleeding to death. Also these types of systems usually cannot exceed more than 20-30% return per-year. This type of system suits someone who is conservative and intends to switch-off the system when it starts-losing, and look for another system, or try something else. The slow downward equity gives the user lots of time to reflect and think about his next move.

After testing-testing-testing, the systems I settle upon are the stack-like, logical-close (instead of hard stop) systems. These systems usually runs contrary to the conventional wisdom systems. It's advantage is the ability to double-deposits within a week/month. Its dis-advantage is to blow account with-in a day. The big question here is how often does that bad-day come up. So the biggest mm I employ is "Don't leave all your eggs in the Broker's basket". If the account double, take out your deposit. If it double's again, take out half again. Keep doing so until you've pulled out enough to change the deposit size. If the system blows the account, oh-well, hopefully it didn't do that on the first deposit ;)

As you can see, both these approaches is a matter of Personality. I don't believe in a Risk-Free system, or a System which will always be farming consistent profits while it guarantee low draw-down. But this is what everyone seems to be searching for. If you minimize the draw-downs you wouldn't make jack-squat. If you maximize the profits, you risk blowing the account. Damm-if you do, damm if you don't.

 

Thanks for your reply, ubzen.

Yes I'll try using a strategy optimizer but I doubt an RSI + Stochastic will give me a graph like bgaitero. A market trends only 30% of the time. Unfortunately he has not posted since 2009 - so we can't even ask him. Do you know of any EA that has shown to perform like that over 10 years? I'd like to look at the code and see what I'm doing differently.

What I'm looking for a solid backtest over a period of 10 years that shows that graph steadily increases before I even attempt a forward test. If I dont get this then I don't think i will have confidence in my system. The aim is to write an EA that will do everything for me as I have a 9-5 job. I've programmed and developed all my life in various languages but trading does not come naturally to me. Having blown my account once and learned lessons, I'm a bit conservative in my approach. How many years worth of backtest would you normally do before deciding to go live?

These days I'm testing if Big Dog NY Breakout strategy will perform in backtest or not. Running a strategy optimizer currently.


Please could you give me an example of stack-like logical-close systems?

 

Do not fall into the optimisation trap. Nearly every system can be optimized to show profit in the last x years. It is very likely that it will fail on a out of sample test.

For a solid system which beats the last 10 years you will need different things depending on the timeframe you are targeting:

For all timeframes:

A system to calculate your takeprofit/stoploss/entry's/exit's dynamical. It is very unlikely that the same market conditions apply for a long period

For smaller timeframes < D1:

A system to know what the current overall market conditions are. (Ranging/Trending for the beginning should be enough)

For each market conditions a working system. (Or if you do not have one, do not trade in such markets)

Ranges on timeframes > D1 are unlikely, maybe because of the limited history on these timeframes.

 
What am i doing wrong?

Your expectation of movement framework is wrong (and not coding). Don't worry. I guess I did it wrong too, until I gave the whole thing a rethought. I'll save you some time. Do not touch the pre-set indicators until you know what you want to process. There are more than enough information to work with in raw OHLC data. Don't smooth/process them then expect a signal to rise from their combination. Whatever you get from it will be noise. Garbage in garbage out.

 

Thanks zzuegg.

I'm mostly targeting 1 hour charts. I could try daily charts or 4 hourly to wipe out noise maybe. The reason being the stop loss too wide on daily chart. My lot size calculation is dependent upon stop loss and risk i.e. if my stop loss is hit I will always lose the same amount of money.

I'm mostly using HMA on the same 1 hour chart to determine if market is ranging or not - it goes flat pretty quickly when ranging. Any change shows on lower charts first before it goes on to reflect on higher timeframe charts. Now I could build support and resistance or pivot points but that's really complicating the system in my view.

Another way I found was to use Joe Ross Law of Charts defining ledge and range. I could program it but I'd like to try easier methods first.

Do you see any obvious flaws in my approach?

 
rbhauer:

Your expectation of movement framework is wrong (and not coding). Don't worry. I guess I did it wrong too, until I gave the whole thing a rethought. I'll save you some time. Do not touch the pre-set indicators until you know what you want to process. There are more than enough information to work with in raw OHLC data. Don't smooth/process them then expect a signal to rise from their combination. Whatever you get from it will be noise. Garbage in garbage out.


Thanks rbhauer.

Are you saying I should ditch indicators and just use OHLC? Could you give me some pointers? You mean something like candle making higher-high and higher-low etc.?

 
texto:

Thanks rbhauer.

Are you saying I should ditch indicators and just use OHLC? Could you give me some pointers? You mean something like candle making higher-high and higher-low etc.?

Yes. Rethink on that. What can you do with OHLC? What do the 4 points mean?

No, on the higher-high/higher-low nonsense. Think movement mechanics, not coordinate configurations.

When you do it right, your optimization grid should return something like a hot optimum zone instead of scattered noise.

 

Forgive me rbhauer - maybe I'm being a bit thick. OHLC on a candle tells me whether buyers or sellers are taking control. I could also work out some patterns like expanding or contracting pattern maybe. Please could you guide me a little here on how you use raw OHLC data? Do you not even use a moving average to determine the trend or if it is sideways?

 

texto -

I feel your frustration. I too have had varying results from my EA. I not new to programming (just haven't done programming in a few years and not in MQL), but the EA that I have developed (a breakout strategy based on the London open) as not performed as well as I hoped (maybe "dreamed" is a better word). For example, I backtested it in the strategy tester on a M15 chart for 2011 price data, and the result was great: 45% increase in account balance. However, when I tested the EA on price data for the first three months of this year, it lost appoximately 10%. When I backtested the EA on price data for 2010, it lost 20% to 30%. So I, too, am trying to figure out what I can do (if anything) to make my ROI more consist--I would be happy (but not necessarily content) with 2% to 3% increase each month. Sounds like you've had more experience than me...but just remember, there are others struggling along side of you. Keep working at it; I am. :)

Reason: