Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Try to find an answer in Wiki before asking a question.
    Submit programming questions in this forum only.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

Historical testing is a really time consuming process...
 Post subject: Historical testing is a really time consuming process... Post rating: 0   Post Posted: Sat 21 Aug, 2010, 11:36 
User avatar

User rating: 0
Joined: Sun 11 Jul, 2010, 13:46
Posts: 9
Location: Hungary
Hi support!

I've tested strategies on several computers...
The wierd thing is that the worst scaling of the tester!

I use a simple computer with 2 GB RAM and 1CPU then I run the same test on another computer with 8 CPU 8GB RAM...
The testing time is almost the same?!?!?!

Can u improve this part of the program? I'm often test 3-6 months but its somethimes takes 8 hours or more with an optimization!
It would be fine if the program can use more computer resources, or for the future with command line optimization on a 1-5 year period (every tick) can run on a cluster computer use something like this ( https://boinc.berkeley.edu/ ) If we made a trader community we can use each others computer idle times to make faster tests!

Thanks,
HumpY4X


 
 Post subject: Re: Historical testing is a really time consuming process... Post rating: 0   Post Posted: Wed 25 Aug, 2010, 08:47 

User rating: 0
Joined: Tue 24 Aug, 2010, 20:50
Posts: 15
i'm usually testing about 20 months, which for me takes an hour or so...
have you taken a look at the profiling output of the tester?

the general problem with parallelizing the tester is, that many strategies expect a sequential order of the ticks, i.e. they carry some variables or state that gets updated with every tick/bar and is used in computing the actions for the next tick.

you should also check, which version of java you have installed. there are big differences in speed between the updates. the fastest version, i've come across, is the preview-release of java 7, available in sun's (now oracle's) early access program (https://www.oracle.com/technetwork/java/ ... 42245.html), however, make sure it is stable before using it for anything else but demo-accounts and the historical tester ;-)

another way to "speed up" your tests also could be to run them in parallel. so running e.g. 4 times 1 month instead of 1 times 4 months on a quad-core with enough ram. the scaling with that should be nearly perfect.


 
 Post subject: Re: Historical testing is a really time consuming process... Post rating: 0   Post Posted: Sun 29 Aug, 2010, 15:51 
User avatar

User rating: 0
Joined: Sun 11 Jul, 2010, 13:46
Posts: 9
Location: Hungary
Yes a simple test is complete in one hour or shorter, but I'm testing in optimized mode somethimes max pass# 500 :)

"the general problem with parallelizing the tester is, that many strategies expect a sequential order of the ticks, i.e. they carry some variables or state that gets updated with every tick/bar and is used in computing the actions for the next tick."

I thought parallelizing the passes one by one. Not the strategy!

Java 7 is much faster? How much is the difference? I use 64bit ubuntu and an other machine 32bit ubuntu. (but the platform works stable with 32 bit java 6 (or 7) I think)


 
 Post subject: Re: Historical testing is a really time consuming process... Post rating: 0   Post Posted: Sun 29 Aug, 2010, 19:19 

User rating: 0
Joined: Tue 24 Aug, 2010, 20:50
Posts: 15
i saw a difference of about 10-20% between 1.6.0_13 and 1.7.0, both x64 and on windows.
i don't know though, how linux will perfom, but i think, it's worth a try ;-)


 
 Post subject: Re: Historical testing is a really time consuming process... Post rating: 0   Post Posted: Tue 31 Aug, 2010, 16:55 

User rating: 0
Joined: Tue 10 Nov, 2009, 16:58
Posts: 65
take a look at the JForexClientLibrary. It's not hard to write your own tester driver that uses JForex's tester and paralellize that. It's not even 500 lines of code to do it cleanly . Maybe I'll release mine sometime when it's more mature and not internal-use-only-hack quality level ;-)

profx_eu wrote:
Yes a simple test is complete in one hour or shorter, but I'm testing in optimized mode somethimes max pass# 500 :)

"the general problem with parallelizing the tester is, that many strategies expect a sequential order of the ticks, i.e. they carry some variables or state that gets updated with every tick/bar and is used in computing the actions for the next tick."

I thought parallelizing the passes one by one. Not the strategy!

Java 7 is much faster? How much is the difference? I use 64bit ubuntu and an other machine 32bit ubuntu. (but the platform works stable with 32 bit java 6 (or 7) I think)


 

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