Dukascopy
 
 
Wiki JStore Search Login

Missing interface on MAMA indicator?
 Post subject: Missing interface on MAMA indicator? Post rating: 0   New post Posted: Mon 11 Jul, 2016, 16:16 

User rating: 2
Joined: Thu 07 Nov, 2013, 12:15
Posts: 121
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.


 
 Post subject: Re: Missing interface on MAMA indicator? Post rating: 0   New post Posted: Mon 18 Jul, 2016, 15:49 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
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 {
    }
}



 
 Post subject: Re: Missing interface on MAMA indicator? Post rating: 0   New post Posted: Mon 18 Jul, 2016, 16:07 

User rating: 2
Joined: Thu 07 Nov, 2013, 12:15
Posts: 121
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...


 
 Post subject: Re: Missing interface on MAMA indicator? Post rating: 0   New post Posted: Thu 21 Jul, 2016, 09:03 
JForex Master
User avatar

User rating:
Joined: Wed 16 Sep, 2009, 18:23
Posts: 1054
Location: Geneva, Switzerland
This method was added in 2014, simultaneously with analogous for other indicators.


 

Jump to:  

  © 1998-2024 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com