Backtest and timeseries behaviour change in new release 3621?

 

Hi all,

First time poster here. I've been learning a lot from you guys over the last year and hope somebody can help met out with this one.
Please let me know if this is the wrong forum.

After installing build 3621 yesterday I immediately noticed differences in the results of my backtests. No change in code or tick data - just updated to the new version.

TimeSeries

As far as I can tell there is a slight change in the content of the price buffers used e.g. by the RSI indicator. In my case it results in a more pronounced jump between bars triggering orders because of a significant change in the RSI readings. It's almost as if the high[], low[], close[] arrays are not aligned - this might be a poor description of the problem but is a best guess based on what I'm seeing.

The release notes point 8 describes a new CopySeries() function and the benefits related to synchronizing timeseries:

Quote:

[Noob mistake 1 - can't imbed images. It's just a screenshot of point 8 in the release notes above saying that the new function automatically synchronizes timeseries and the programmer doesn't have to]

Synchronizing timeseries is not something I've ever done. I use them as received from CopyBuffer() or use the open[] high[] low[] close[] arrays. Do these need to be synchronized?
Perhaps in the new version they now are synchronized - or no longer synchronized - resulting in the change in behavior.

Backtesting

Perhaps related to the above. The backtest reports confirms that a lot more trades now happen on the hour (using H1 timeframe) as the RSI triggers orders because of a more significant change in the RSI movement as soon as a new bar is formed.

 It is however also giving the wrong dates for some of these. I've never had trades on midnight before and using the same EA's I now do. This is in the backtest tool though and not my code - which makes me think that there could an issue with the new release.


[Noob mistake 2 - Can't imbed images. It's just a screenshot of the backtest report showing that for some trades over several hours it had the exact open and close time at midnight on the same day. It's straight from the backtest tool and has never done that before]
[It also showed new trades in my EA that now happens on the hour as there is more significant movement in the RSI indicator than before. Trades on the hour was just to support my theory above that the RSI now moves more significantly on the bar change resulting in more trades]

Thanks in advance to anyone who can help or confirm if they're experiencing something similar. Much appreciated.

New MetaTrader 5 build 3620: Web Terminal improvements, ONNX support and fast matrix multiplications in MQL5
New MetaTrader 5 build 3620: Web Terminal improvements, ONNX support and fast matrix multiplications in MQL5
  • 2023.03.03
  • www.mql5.com
The new version of the updated MetaTrader 5 platform will be released on Friday, March 10, 2023. The update provides web terminal improvements...
 
ewertg:

Hi all,

First time poster here. I've been learning a lot from you guys over the last year and hope somebody can help met out with this one.
Please let me know if this is the wrong forum.

After installing build 3621 yesterday I immediately noticed differences in the results of my backtests. No change in code or tick data - just updated to the new version.

TimeSeries

As far as I can tell there is a slight change in the content of the price buffers used e.g. by the RSI indicator. In my case it results in a more pronounced jump between bars triggering orders because of a significant change in the RSI readings. It's almost as if the high[], low[], close[] arrays are not aligned - this might be a poor description of the problem but is a best guess based on what I'm seeing.

The release notes point 8 describes a new CopySeries() function and the benefits related to synchronizing timeseries:

Quote:

[Noob mistake 1 - can't imbed images. It's just a screenshot of point 8 in the release notes above saying that the new function automatically synchronizes timeseries and the programmer doesn't have to]

Synchronizing timeseries is not something I've ever done. I use them as received from CopyBuffer() or use the open[] high[] low[] close[] arrays. Do these need to be synchronized?
Perhaps in the new version they now are synchronized - or no longer synchronized - resulting in the change in behavior.

No. CopyBuffer() is getting values from an indicator, it's not a "TimeSeries". Arrays provided in OnCalculate are synchronized.

Anayway, there is no synchronization issue with the Strategy Tester, it can only happen live.

Backtesting

Perhaps related to the above. The backtest reports confirms that a lot more trades now happen on the hour (using H1 timeframe) as the RSI triggers orders because of a more significant change in the RSI movement as soon as a new bar is formed.

 It is however also giving the wrong dates for some of these. I've never had trades on midnight before and using the same EA's I now do. This is in the backtest tool though and not my code - which makes me think that there could an issue with the new release.


[Noob mistake 2 - Can't imbed images. It's just a screenshot of the backtest report showing that for some trades over several hours it had the exact open and close time at midnight on the same day. It's straight from the backtest tool and has never done that before]

Just click on the button and insert your image.

[It also showed new trades in my EA that now happens on the hour as there is more significant movement in the RSI indicator than before. Trades on the hour was just to support my theory above that the RSI now moves more significantly on the bar change resulting in more trades]

Thanks in advance to anyone who can help or confirm if they're experiencing something similar. Much appreciated.

You post doesn't give any technical detail about your issue. You need to provide logs, screenshots, code etc...

At least, show your RSI related code.

 
Alain Verleyen #:

No. CopyBuffer() is getting values from an indicator, it's not a "TimeSeries". Arrays provided in OnCalculate are synchronized.

Anayway, there is no synchronization issue with the Strategy Tester, it can only happen live.

Just click on the button and insert your image.

You post doesn't give any technical detail about your issue. You need to provide logs, screenshots, code etc...

At least, show your RSI related code.

Thanks Alain, appreciate you replying on a Sunday.

I don't have the image icon in my toolbar. A forum search suggests that newbies can't embed images. You need a certain 'rating' or post count.

I'll see if I can show some technical detail without images. The backtest results and reports I have are screenshots unfortunately.
Thanks for confirming that synching is not required for CopyBuffer(). It didn't make sense that it would be required.

I would be interested to hear if anyone else notice a difference in backtest results since the update. Looking at the trades closely they are 80% the same but a few entries/exits based on the RSI has shifted. This is true for several of my EA's, which have not changed in the last 6 months.
Perhaps the update refreshed some settings but I installed a new copy from FXPro as well and got the same results in that one - also build 3621

 
ewertg #: I don't have the image icon in my toolbar. A forum search suggests that newbies can't embed images. You need a certain 'rating' or post count.

Users with a low posting rank, don't have the image icon, but they can still attach images as a files.

Just below the posting area on the left, there is a green plus sign with the words "+ Attach file": . Use that to attach your image files.

 

Hi,

Encountered same problem with build 3621 - back tests not giving same results. I could identify one of the problems being Market Closed at 9:00

This from the test journal : - 

2023.02.21 09:12:17   failed market buy 2.2 F40 [Market closed]

2023.02.21 09:12:18   *! Deal not done. >>> (error: 10018)

On that day , at 9:00 with F40 on our live account, an actual deal was done. Also previous tests did a deal on 21 Feb 9:00. If we do back testing now, almost all deals declined at 9:00 because of error 10018 [Market Closed]

See screenshot of actual live deal on the 21st of Feb, 9:00.

Thanx.


 
Fernando Carreiro #:

Users with a low posting rank, don't have the image icon, but they can still attach images as a files.

Just below the posting area on the left, there is a green plus sign with the words "+ Attach file": . Use that to attach your image files.

Thanks Fernando!
 
WCS_Nell #:

Hi,

Encountered same problem with build 3621 - back tests not giving same results. I could identify one of the problems being Market Closed at 9:00

This from the test journal : - 

2023.02.21 09:12:17   failed market buy 2.2 F40 [Market closed]

2023.02.21 09:12:18   *! Deal not done. >>> (error: 10018)

On that day , at 9:00 with F40 on our live account, an actual was done. Also previous test did a deal on 21 Feb 9:00. If we do back testing now, almost all deals declined at 9:00 because of error 1008 [Market Closed]

See screenshot of actual live deal on the 21st of Feb, 9:00.

Thanx.


Thanks for confirming.

I get the same Market Closed errors but wasn't sure if it was there before. It does explain why the timing on some trades would be different now.

If I export the backtest report I can also see that a lot of the dates are wrong, i.e. midnight of the same day for both the position entry and exit times. This was definitely not the case before.

 
ewertg #: Thanks for confirming. I get the same Market Closed errors but wasn't sure if it was there before. It does explain why the timing on some trades would be different now. If I export the backtest report I can also see that a lot of the dates are wrong, i.e. midnight of the same day for both the position entry and exit times. This was definitely not the case before.

As far as I known, the Strategy Tester has always correctly simulated the trade session for symbols and correctly reported "Market closed" times with an OrderSend error.

Are you stating that it now incorrectly implements the session times or are you saying that it now more accurately implements it?

 
WCS_Nell #:

Hi,

Encountered same problem with build 3621 - back tests not giving same results. I could identify one of the problems being Market Closed at 9:00

This from the test journal : - 

2023.02.21 09:12:17   failed market buy 2.2 F40 [Market closed]

2023.02.21 09:12:18   *! Deal not done. >>> (error: 10018)

On that day , at 9:00 with F40 on our live account, an actual deal was done. Also previous tests did a deal on 21 Feb 9:00. If we do back testing now, almost all deals declined at 9:00 because of error 10018 [Market Closed]

See screenshot of actual live deal on the 21st of Feb, 9:00.

Thanx.


ewertg #:

Thanks for confirming.

I get the same Market Closed errors but wasn't sure if it was there before. It does explain why the timing on some trades would be different now.

If I export the backtest report I can also see that a lot of the dates are wrong, i.e. midnight of the same day for both the position entry and exit times. This was definitely not the case before.

What server are you using ?

 
ewertg #:

Thanks for confirming.

I get the same Market Closed errors but wasn't sure if it was there before. It does explain why the timing on some trades would be different now.

If I export the backtest report I can also see that a lot of the dates are wrong, i.e. midnight of the same day for both the position entry and exit times. This was definitely not the case before.

You keep continuing to NOT provide useful informations : logs, reports, code or screenshots. What you can see or read on your side is of no help to us to identify the issue.
 

Hello, after trying to find any error in my code for several hours, i came here to look if there are any problems with the backtest...

I will try to describe everything i've done to help solve this issue : 

1 - I just ran a fast genetic based algorithm on OHLC data.

2 - When looking at the result I ran a single test on one of the result to check the graph, everything was working ok - still OHLC data

3 - I ran the test on "every ticks based on real ticks" data to check the more accurate results. I get coherent result

4 - I ran again in OHLC before trying to tune some inputs ---> completely different result from step 2

5 - I ran again in "every ticks based on real ticks" to check ---> completely different result from step 3

I went back to the optimisation page where i could select to "run a single test" as in step 1 but it still gave me incoherent result, and completely different from the optimisation result !!!

After this "bug" occurs, every single test that I start from the optimisation page give me different results (see attached images below)



After trying during several hours to add some Print() function in my code to spot if there are any errors, I just think something might be broken with the backtester :/

Is there any way to reverse to the last version before the update ? 


Hope this can help understanding what happens... 


Kind regards to all

Reason: