Dukascopy
 
 
Wiki JStore Search Login

How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ?
 Post subject: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Fri 21 Feb, 2014, 16:03 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hi,

I am backtesting my strategy with 21 Instruments on 7 years of history with a data Interval of 1min
in order to optimize the backtest speed.

It appears that data cache takes more than 100GB on the hard drive due to a very large amount of intraperiod data.

The issue is that since JForex and API ITesterClient both flush intraperiod files after every restart, it often takes
more than 30 minutes to 1 hour to start JForex or a standalone backtest with ITesterClient ! (it takes a long time to flush more than 30GB and thousands of files !)

Can't we just chose to let the data in place and re-use it ? (intraperiod included)

In tried to put the cache on a SSD disk, it's faster, but I it's too small to contain all the cache and with all these write/flush tasks
the disk will be dead in a short time...

This is really a big issue and makes multiyear/multicurrency backtests almost impossible to optimize.

King regards


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Mon 24 Feb, 2014, 09:12 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
We will check this


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Mon 24 Feb, 2014, 10:04 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Thanks for your response.

Please check this both with the JForex platform AND the ITesterClient standalone API (a lot of us use the API for complicated optimization processes).

Let us know what kind of solution you have for us.

Best regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 26 Feb, 2014, 13:40 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
Available on DEMO. Version 2.32.2.

Folders of intraperiod are deleted automatically now if the test is finished and the tester chart is closed.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 26 Feb, 2014, 17:24 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Thanks for the news, I tried and it works.

But I wonder why all this intraperiod data has to be written when no chart is opened ?
Why is the Tester creating all these intraperiod candles when the Optimizer does just load
the start candles ?

The tester with optimization checked is 4 times faster than any other backtest method
for exactly the same result !

Will the standalone API be updated to ? Because I have the exact same issues and I
have no choice but to use the API to automate the backtest process.

Please see the following screenshots where I compare both methods of testing.

Image

Image


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Thu 27 Feb, 2014, 15:00 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
nicofr0707 wrote:
But I wonder why all this intraperiod data has to be written when no chart is opened ?

Intraperiod data might be used in the strategy.
nicofr0707 wrote:
Why is the Tester creating all these intraperiod candles when the Optimizer does just load
the start candles ?

This might be not correct. We will have a look into this.
nicofr0707 wrote:
Will the standalone API be updated to ? Because I have the exact same issues and I
have no choice but to use the API to automate the backtest process.

Yes, it will


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Thu 27 Feb, 2014, 17:16 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Thanks very much for these information.

Platform Support wrote:
Intraperiod data might be used in the strategy.

Platform Support wrote:
This might be not correct. We will have a look into this.


Wouldn't it be possible to let the user choose if all this intraperiod data should be written or not ?
Loosing 4 times the speed of the optimizer for unused data would be just impossible for a lot of us !

If we have no choice but to write intraperiod data on the disk, then at least let us the ability to generate
that data at the first run, then the tester will re-use it like it is doing with the downloaded cache.

This issue of duplicated intraperiod data has been first discussed in another topic concerning the API, let me take the example from it :

Starting multiple strategies with ITesterClient in a loop like the following code, is creating as much duplicated intraperiod
folders as they are strategies started.


for (int j = 0; j < 80; j++) {
 
            MA_Play strategy1 = new MA_Play();
 
            //start the strategy
            LOGGER.info("Starting strategy");
            client.startStrategy(strategy1)
}


This creates for each currency pair something like :
intraperiod
intraperiod1
intraperiod2
intraperiod3
...
...
intraperiod80

Each intraperiod is dupplicated and has the same data for hundred's of MB on the hard drive !
I don't see the need to duplicate all this data since ITesterClient has only one instance, so every
started strategy uses the same ITesterClient parameter set.


Last thing that bothers me. As you can see in the first screenshoot of my last post, intraperiod
data witting is random and is very much lagging the testers progression, for instance :

2007_12_03_00_ticks.bi5 has been written at 16:34

2007_12_03_02_ticks.bi5 which are the ticks 2 hours later has been written at 16:31

So more recent data has been written about 3 minutes before older data. In 3 minutes
the strategy progression is well ahead of that data in time. If it needed intraperiod it
should have pause a few minutes to wait for that data to be in place.
I have a fast computer and the data is on a SSD drive, I imagine on a regular machine
the gap should be a lot bigger.

Please tell me what you think about all this, the steps you are willing to take and the
schedule so I can organize my work in consequence.

Best regards


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 05 Mar, 2014, 10:30 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hi support,

Any news on these issues ?

Kind regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Tue 18 Mar, 2014, 08:57 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hello is anybody still here ?

These are some important issues, last message from support is from February 27th.
I have some projects on hold because of this.

Could I have at least some news from the Dukascopy team, telling what is planned
and when it is scheduled. Every day waiting and not knowing what steps you are willing
to take is costing me money.

Thanks for your understanding.

Best regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Tue 18 Mar, 2014, 13:28 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
Will let you know next week. Probably this will be a custom setting.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 19 Mar, 2014, 09:50 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Thank you Support for your response.

A custom setting would just be fine !
Please note that this setting should be manageable in JForex Gui AND Standalone SDK.

I am looking forward to here from you.

Best regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Mon 31 Mar, 2014, 09:11 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hi Support,

I expected some news last week. Did you take any decision ?
Thanks.

Best regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 07:25 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
Will implement the possibility to disable the intraperiod saving under Custom settings of Historical tester.

This will be possible only if visual mode is off, or else scrolling or switching the period on chart with interpolated data will load real data and there will be a confusion.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 08:45 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hello,

Thank you for this good news.

Quote:
This will be possible only if visual mode is off

OK sounds good to me.

When will this option be available on JForex Gui and Standalone API ?
I hope that this option will be available in the optimizer to, will this be the case ?

Best regards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 09:03 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
If optimizer is used, intraperiod data is not saved anyway as there is no Visual mode. However, it can cause problems in case of indicators or some history specific logic in strategy.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 09:17 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
And about the schedule for implementation on the Gui and the standalone API ?


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 10:39 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
As soon as possible ;)


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Wed 02 Apr, 2014, 15:17 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
OK, please let me know when its ready.

Best reagards.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Tue 29 Apr, 2014, 07:12 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
Available in JForex version 2.35 (DEMO only at this moment)

You can find it under Custom settings in Historical tester. You can disable it, but it will be saved anyway if Visual mode is enabled and test is run on Interpolated data. This is done in order to avoid a mix between real historical data and interplated data when swiching the visual mode chart from one period to another.


 
 Post subject: Re: How to avoid JForex and/or ITesterclient to flush Intraperiod cache on each restart ? Post rating: 0   New post Posted: Sun 04 May, 2014, 18:44 
User avatar

User rating: 5
Joined: Fri 02 Sep, 2011, 10:08
Posts: 157
Location: FranceFrance
Hi support, this is great news !

I just tested. It's perfect, now that the hard drive bottleneck isn't an issue
anymore, on my computer the speed of a backtest is 3 to 4 times faster !

Did you update the standalone API too ?
Can you please give me the syntax in order to use this option ?

Best regards


 

Jump to:  

  © 1998-2025 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com