Dukascopy Support Board
http://www.dukascopy.com/swiss/english/forex/jforex/forum/

Missing interface on MAMA indicator?
http://www.dukascopy.com/swiss/english/forex/jforex/forum/viewtopic.php?f=85&t=54180
Page 1 of 1

Author:  scotpip [ Mon 11 Jul, 2016, 16:16 ]
Post subject:  Missing interface on MAMA indicator?

There seems to be a bug in indicators.mama()

All the other indicators I have used implement the IIndicatorCalculator interface and offer a calculate() method. This is not implemented in indicators.mama() so far as I can tell. Running the indicator without calling calculate() doesn't give sensible results.

I've managed to get MAMA working with the universal indicators.calculateIndicator() method, but I assume that this is somewhat less efficient due to casting etc.

Please consider tidying up the MAMA indicator so we can calculate the MAMA in the normal way.

Author:  Platform Support [ Mon 18 Jul, 2016, 15:49 ]
Post subject:  Re: Missing interface on MAMA indicator?

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 {
    }
}


Author:  scotpip [ Mon 18 Jul, 2016, 16:07 ]
Post subject:  Re: Missing interface on MAMA indicator?

Thanks for the response.

I'm a bit baffled - I'm now seeing what you are seeing.

Code that calls calculate() that I'd commented out because it wasn't compiling is now compiling without any changes.

Since I posted I've updated from an API version a few months old. Is this something you tidied up recently?

Anyway - the indicator is now working for me, which is the main thing...

Author:  Platform Support [ Thu 21 Jul, 2016, 09:03 ]
Post subject:  Re: Missing interface on MAMA indicator?

This method was added in 2014, simultaneously with analogous for other indicators.

  Page 1 of 1