IIndicators interface contains method
IIndicatorCalculator<double[], double[][]> mama(IFeedDescriptor feedDescriptor, AppliedPrice appliedPrice, OfferSide side, double fastLimit, double slowLimit)
which implement required functionality.
See example:
package jforex;
import java.util.*;
import com.dukascopy.api.*;
import com.dukascopy.api.feed.FeedDescriptor;
import com.dukascopy.api.indicators.IIndicatorCalculator;
public class Strategy implements IStrategy {
private IEngine engine;
private IConsole console;
private IHistory history;
private IContext context;
private IIndicators indicators;
private IUserInterface userInterface;
public void onStart(IContext context) throws JFException {
this.engine = context.getEngine();
this.console = context.getConsole();
this.history = context.getHistory();
this.context = context;
this.indicators = context.getIndicators();
this.userInterface = context.getUserInterface();
FeedDescriptor feedDescriptor = new FeedDescriptor(DataType.TIME_PERIOD_AGGREGATION, Instrument.EURUSD, Period.ONE_MIN, OfferSide.BID, null, null, null, Filter.WEEKENDS);
IIndicatorCalculator<double[], double[][]> calculator = indicators.mama(feedDescriptor, IIndicators.AppliedPrice.CLOSE, OfferSide.BID, 0.5, 0.05);
double[] res = calculator.calculate(0);
console.getOut().println(Arrays.toString(res));
context.stop();
}
public void onAccount(IAccount account) throws JFException {
}
public void onMessage(IMessage message) throws JFException {
}
public void onStop() throws JFException {
}
public void onTick(Instrument instrument, ITick tick) throws JFException {
}
public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
}
}