Hi,
Instead of using the simple fractal indicator, I am trying to us the one who's filtering candles, but get an exception.
Quote:
com.dukascopy.api.JFException: "to" parameter can't be greater than time of the last formed bar for this instrument
I realy don't understand, because there in no "to" parameter in this indicator call (from the javadoc : public double[][] fractal(Instrument instrument, Period period, OfferSide side, int barsOnSides, Filter filter, int numberOfCandlesBefore, long time, int numberOfCandlesAfter))
Simple :
fractal = indicators.fractal(instrument, period, OfferSide.BID, barsOnSide, i);
Filtering :
fractal = indicators.fractal(instrument, period, OfferSide.BID, barsOnSide, com.dukascopy.api.Filter.ALL_FLATS, i, bar.getTime(), 0);
The code I am using to get the last min of max fractals.
private double getLastSwing(String __orderDirection, Instrument instrument, Period period, int barsOnSide, int nbFractalsBack) throws JFException {
double lastFractalMax = Double.NaN;
double lastFractalMin = Double.NaN;
int i = 1;
int fractalCount = 0;
IBar bar = history.getBar(instrument, period, OfferSide.BID, 1);
//fractalCount ++;
if (__orderDirection.equals("Buy")) {
while (fractalCount < nbFractalsBack) {
double[][] fractal = null;
try {
// fractal = indicators.fractal(instrument, period, OfferSide.BID, barsOnSide, i);
fractal = indicators.fractal(instrument, period, OfferSide.BID, barsOnSide, com.dukascopy.api.Filter.ALL_FLATS, i, bar.getTime(), 0);
} catch (JFException ex) {
printOut.print("msg : " + ex);
}
if (!Double.isNaN(fractal[1][0])) {
lastFractalMin = fractal[1][0];
fractalCount++;
}
i++;
}
return lastFractalMin;
} else {
while (fractalCount < nbFractalsBack) {
double[][] fractal = null;
try {
// fractal = indicators.fractal(instrument, period, OfferSide.ASK, barsOnSide, i);
fractal = indicators.fractal(instrument, period, OfferSide.ASK, barsOnSide, com.dukascopy.api.Filter.ALL_FLATS, i, bar.getTime(), 0);
} catch (JFException ex) {
printOut.print("msg : " + ex);
}
if (!Double.isNaN(fractal[0][0])) {
lastFractalMax = fractal[0][0];
fractalCount++;
}
i++;
}
return lastFractalMax;
}
}
Thanks for the help