With the current version (2.42.3/2.12.2) I´m having trouble with longer running backtests, I get a lot of DataCacheExceptions, like:
04.12.2014 13:39:08.929 SEVERE datacache.bi ] Last candle time is bigger than new candle time, ignoring candle update
com.dukascopy.charts.data.datacache.DataCacheException: Last candle time is bigger than new candle time, ignoring candle update
at com.dukascopy.charts.data.datacache.bi.a(Unknown Source)
at com.dukascopy.charts.data.datacache.bi.b(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.bf.c(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.w.run(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.Eu(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.DN(Unknown Source)
at com.dukascopy.dds2.greed.actions.c.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
04.12.2014 13:39:08.929 SEVERE datacache.bi ] Last candle time is bigger than new candle time, ignoring candle update
com.dukascopy.charts.data.datacache.DataCacheException: Last candle time is bigger than new candle time, ignoring candle update
at com.dukascopy.charts.data.datacache.bi.a(Unknown Source)
at com.dukascopy.charts.data.datacache.bi.b(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.bf.c(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.w.run(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.Eu(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.DN(Unknown Source)
at com.dukascopy.dds2.greed.actions.c.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
04.12.2014 13:39:08.929 SEVERE tester.bh ] [14400000] Received candle has older time than pervious candle, ignoring
java.lang.Exception: [14400000] Received candle has older time than pervious candle, ignoring
at com.dukascopy.dds2.greed.agent.strategy.tester.bh.b(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.w.run(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.Eu(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.DN(Unknown Source)
at com.dukascopy.dds2.greed.actions.c.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
04.12.2014 13:39:08.929 SEVERE tester.bh ] [14400000] Received candle has older time than pervious candle, ignoring
java.lang.Exception: [14400000] Received candle has older time than pervious candle, ignoring
at com.dukascopy.dds2.greed.agent.strategy.tester.bh.b(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.w.run(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.Eu(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.DN(Unknown Source)
at com.dukascopy.dds2.greed.actions.c.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
The following exception occurs after 3-4 months of running.
First test 2013-01-01 til 2014-01-01, EURAUD, 1 minute Cubic Spline: Exception occurs on April 16th,
Second test 2013-04-01 til 2014-01-01, EURAUD, 1 minute Cubic Spline: Exception occurs on August 19th
So it seems not to be dependent on a certain bar, but from the time running ?! btw. same behaviour when using other currencies.
04.12.2014 13:39:10.044 SEVERE actions.c ] Problem with bar <{T:1376928000000(2013-08-19 16:00:00.000+0000) E:false O:1.46176 C:1.46334 L:1.46131 H:1.4653 V:17502.28}> for the offer side <Ask>, existing data pair EUR/AUD, TIME_PERIOD_AGGREGATION FeedDescriptor [dataType=TIME_PERIOD_AGGREGATION, instrument=EUR/AUD, offerSide=Ask, period=4 Hours, ] {T:1376928000000(2013-08-19 16:00:00.000+0000) E:false O:1.46176 C:1.46334 L:1.46131 H:1.4653 V:17502.28}, null
java.lang.IllegalStateException: Problem with bar <{T:1376928000000(2013-08-19 16:00:00.000+0000) E:false O:1.46176 C:1.46334 L:1.46131 H:1.4653 V:17502.28}> for the offer side <Ask>, existing data pair EUR/AUD, TIME_PERIOD_AGGREGATION FeedDescriptor [dataType=TIME_PERIOD_AGGREGATION, instrument=EUR/AUD, offerSide=Ask, period=4 Hours, ] {T:1376928000000(2013-08-19 16:00:00.000+0000) E:false O:1.46176 C:1.46334 L:1.46131 H:1.4653 V:17502.28}, null
at com.dukascopy.dds2.greed.agent.strategy.tester.b.t.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.t.a(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.t.aX(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.t.IN(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.GK(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.w.run(Unknown Source)
at com.dukascopy.dds2.greed.agent.strategy.tester.b.a(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.Eu(Unknown Source)
at com.dukascopy.dds2.greed.actions.servicesources.StrategyTesterAction.DN(Unknown Source)
at com.dukascopy.dds2.greed.actions.c.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Deleting cache didn´t help. I am using a lot of subscriptions to different FeedListeners, so my first thought was, that the problem is related to the API changes done in this area. Are there any differences in using/subscribung to a feed?
But all of my FeedListeners are subscribed to OfferSide.BID and the IllegalStateException refers to an OfferSide.ASK-bar. So maybe the fault is not on my side of the code?
Unfortunately I am not able to provide a simple test-strategie, which reproduces the error. So I need some guidance where the problem might be, so that I can provide a test strategie.
It would be a good start if you could explain to me, what those two Exceptions mean and what may cause them. Especially the IllegalStateException is not really meaningful to me.