Hello support team!
Help me please!
I'm write my backtester using jforex api
In main class? i'm usins setup data period for testing...like in manual...
final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date dateFrom = dateFormat.parse("01/01/2015 12:00:00");
Date dateTo = dateFormat.parse("09/22/2015 00:00:00");
client.setDataInterval(DataLoadingMethod.ALL_TICKS, dateFrom.getTime(), dateTo.getTime());
in "strategy_play" classes is creating array of classes, that contains price range feeds
spectr = new ArrayList<mtfTimeFrame>();
for (int i=0; i<cfg.numberTF; i++) {
spectr.add(new mtfTimeFrame(context, cfg, cfg.startTF+cfg.stepTF*i));
}// End for
constructor feed class create and subscribe to feed
//Constructor
mtfTimeFrame(IContext fcontext, cfgTrading fcfg, int frangeValue) throws JFException {
...
rangeBarFeedDescriptor = new RangeBarFeedDescriptor(cfg.instrument, PriceRange.valueOf(rangeValue), cfg.offerSide);
context.subscribeToFeed(rangeBarFeedDescriptor, this);
...
}
feed class contain override method onFeedData...method is empty
@Override
public void onFeedData(IFeedDescriptor feedDescriptor, ITimedData feedData) {
}
It's result...
...
2015-09-23 22:07:53.916 INFO mTF_tester - Connected
2015-09-23 22:07:53.916 INFO mTF_tester - Subscribing instruments...
2015-09-23 22:07:54.550 INFO ClientConnector - Child session opened for [d-ja-msk-10.dukascopy.com/195.208.187.197:10443]
2015-09-23 22:07:56.958 INFO mTF_tester - from: Thu Jan 01 15:00:00 MSK 2015 to: Tue Sep 22 03:00:00 MSK 2015
2015-09-23 22:07:56.958 INFO mTF_tester - Downloading data
2015-09-23 22:07:57.313 INFO mTF_tester - Starting strategy
2015-09-23 22:07:59.285 INFO mTF_tester - Strategy started: 1
2015-09-23 22:07:59.469 INFO mTF_tester - Getting prices before start time
2015-09-23 22:07:59.626 INFO mTF_tester - Creating data loading threads
2015-09-23 22:07:59.634 INFO mTF_tester - Getting prices before start time
2015-09-23 22:07:59.721 WARN WLabelData - White Label Image is not received
2015-09-23 22:07:59.745 INFO mTF_tester - Filling in-progress candles
2015-09-23 22:07:59.860 INFO mTF_tester - Executing onStart
2015-09-23 22:07:59.860 INFO strategy_play - *********************
2015-09-23 22:07:59.861 INFO strategy_play - * mTF started... *
2015-09-23 22:07:59.861 INFO strategy_play - *********************
2015-09-23 22:08:00.072 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=10_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.222 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=20_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.312 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=30_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.461 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=40_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.616 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=50_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.694 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=60_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:00.778 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=70_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:01.366 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=80_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:01.567 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=90_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:01.608 INFO mtfTimeFrame - subscribe to feed=FeedDescriptor [dataType=PRICE_RANGE_AGGREGATION, instrument=GBP/USD, offerSide=Ask, period=7 Days, priceRange=100_PIPS, interpolationDescriptor=DEFAULT]
2015-09-23 22:08:01.608 INFO mTF_tester - Running
2015-09-23 22:08:02.974 INFO mTF_tester - Running, Thu 2015.01.01 12:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.004 INFO mTF_tester - Running, Thu 2015.01.01 13:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.031 INFO mTF_tester - Running, Thu 2015.01.01 13:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.058 INFO mTF_tester - Running, Thu 2015.01.01 14:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.078 INFO mTF_tester - Running, Thu 2015.01.01 14:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.097 INFO mTF_tester - Running, Thu 2015.01.01 15:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.122 INFO mTF_tester - Running, Thu 2015.01.01 15:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.149 INFO mTF_tester - Running, Thu 2015.01.01 16:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.174 INFO mTF_tester - Running, Thu 2015.01.01 16:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.562 INFO mTF_tester - Running, Thu 2015.01.01 17:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.582 INFO mTF_tester - Running, Thu 2015.01.01 17:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.603 INFO mTF_tester - Running, Thu 2015.01.01 18:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.614 INFO mTF_tester - Running, Thu 2015.01.01 18:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.625 INFO mTF_tester - Running, Thu 2015.01.01 19:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.635 INFO mTF_tester - Running, Thu 2015.01.01 19:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.645 INFO mTF_tester - Running, Thu 2015.01.01 20:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.657 INFO mTF_tester - Running, Thu 2015.01.01 20:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.673 INFO mTF_tester - Running, Fri 2015.01.01 21:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.695 INFO mTF_tester - Running, Fri 2015.01.01 21:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:03.832 INFO mTF_tester - Running, Fri 2015.01.01 22:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:04.215 INFO mTF_tester - Running, Fri 2015.01.01 22:30 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:04.689 INFO mTF_tester - Running, Fri 2015.01.01 23:00 Eq: 1,000.00 UoL: .00%
2015-09-23 22:08:05.071 ERROR StrategyRunner -
java.lang.ArrayIndexOutOfBoundsException
at com.dukascopy.charts.math.dataprovider.priceaggregation.buffer.ShiftableBuffer.setUp(ShiftableBuffer.java:154)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.checkAndFillRangeBarBuffer(TesterHistory.java:1754)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.addRangeBar(TesterHistory.java:1735)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.historicalPriceRangeReceived(AbstractStrategyRunner.java:487)
at com.dukascopy.dds2.greed.agent.strategy.tester.StrategyRunner.run(StrategyRunner.java:396)
at java.lang.Thread.run(Thread.java:745)
Strategy tester: java.lang.ArrayIndexOutOfBoundsException @ com.dukascopy.charts.math.dataprovider.priceaggregation.buffer.ShiftableBuffer.setUp(ShiftableBuffer.java:154)
null: java.lang.ArrayIndexOutOfBoundsException
at com.dukascopy.charts.math.dataprovider.priceaggregation.buffer.ShiftableBuffer.setUp(ShiftableBuffer.java:154)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.checkAndFillRangeBarBuffer(TesterHistory.java:1754)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.addRangeBar(TesterHistory.java:1735)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.historicalPriceRangeReceived(AbstractStrategyRunner.java:487)
at com.dukascopy.dds2.greed.agent.strategy.tester.StrategyRunner.run(StrategyRunner.java:396)
at java.lang.Thread.run(Thread.java:745)
2015-09-23 22:08:05.075 ERROR TesterClientImpl$DefaultStrategyExceptionHandler - Exception thrown while running onBar method: null
java.lang.ArrayIndexOutOfBoundsException
at com.dukascopy.charts.math.dataprovider.priceaggregation.buffer.ShiftableBuffer.setUp(ShiftableBuffer.java:154)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.checkAndFillRangeBarBuffer(TesterHistory.java:1754)
at com.dukascopy.dds2.greed.agent.strategy.tester.TesterHistory.addRangeBar(TesterHistory.java:1735)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.historicalPriceRangeReceived(AbstractStrategyRunner.java:487)
at com.dukascopy.dds2.greed.agent.strategy.tester.StrategyRunner.run(StrategyRunner.java:396)
at java.lang.Thread.run(Thread.java:745)
2015-09-23 22:08:05.089 INFO mTF_tester - Strategy stopped: 1
2015-09-23 22:08:05.093 INFO strategy_play - ***********************
2015-09-23 22:08:05.098 INFO strategy_play - * mTF stoped... *
2015-09-23 22:08:05.098 INFO strategy_play - ***********************
When i'm testing strategy in JForex Platform tester, this code to subscribe custom feeds work-fine!
What is the problem? In my code? Or not?
P.S.
ubuntu 15.04
JForex-SDK 2.45.14
netbeans-8.0.2
-maven-plugin:1.2.1
jdk1.7.0_80
jdk1.8.0_60