We were not able to reproduce the error. We tried with the following strategy:
package jforex.bugtests;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IEngine;
import com.dukascopy.api.IIndicators;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.OfferSide;
import com.dukascopy.api.Period;
import com.dukascopy.api.IEngine.OrderCommand;
public class FractalTest2 implements IStrategy {
IIndicators indicators;
IContext context;
IConsole console;
IEngine engine;
@Override
public void onStart(IContext context) throws JFException {
indicators = context.getIndicators();
this.context = context;
console = context.getConsole();
engine = context.getEngine();
//submit an order just to cause onMessage to get called
engine.submitOrder("order1", Instrument.EURUSD, OrderCommand.BUY, 0.001);
}
@Override
public void onMessage(IMessage message) throws JFException {
calcFractal();
}
private void calcFractal() throws JFException{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyy HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date dateFrom = null;
Date dateTo = null;
try {
dateFrom = dateFormat.parse("01/08/2008 00:00:00");
dateTo = dateFormat.parse("31/08/2011 00:00:00");
} catch (ParseException e) {
context.getConsole().getErr().println(e);
}
Instrument instrument = Instrument.EURUSD;
long fromTime = dateFrom.getTime();
long toTime = dateTo.getTime();
double[][] fractal = indicators.fractal(instrument, Period.ONE_HOUR, OfferSide.ASK, 2, fromTime, toTime);
context.getConsole().getOut().println(fractal[0][0]);
}
@Override
public void onTick(Instrument instrument, ITick tick) throws JFException {}
@Override
public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}
@Override
public void onAccount(IAccount account) throws JFException {}
@Override
public void onStop() throws JFException {}
}