package jforex.feed.test;

import com.dukascopy.api.*;
import com.dukascopy.api.IIndicators.AppliedPrice;
import com.dukascopy.api.feed.*;
import com.dukascopy.api.feed.util.*;

public class RenkoStdDev implements IStrategy {

    private IIndicators indicators;
    private IConsole console;

    @Override
    public void onStart(final IContext context) throws JFException {
        indicators = context.getIndicators();
        console = context.getConsole();
        IFeedDescriptor feedDescriptor = new RenkoFeedDescriptor(Instrument.EURUSD, PriceRange.TWO_PIPS, OfferSide.ASK);
        context.subscribeToFeed(feedDescriptor, new IFeedListener() {
            @Override
            public void onFeedData(IFeedDescriptor feedDescriptor, ITimedData feedData) {
                try {
                    Object[] stddev = indicators.calculateIndicator(feedDescriptor, new OfferSide[] { OfferSide.BID }, "STDDEV",
                            new IIndicators.AppliedPrice[] { AppliedPrice.CLOSE }, new Object[] { 5, 1.0 }, 0);
                    console.getOut().println(String.format("____ \n Completed renko: %s \nstddev=%.5f",feedData, stddev[0]));
                } catch (JFException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public void onTick(Instrument instrument, ITick tick) throws JFException {}
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}
    public void onMessage(IMessage message) throws JFException {}
    public void onAccount(IAccount account) throws JFException {}
    public void onStop() throws JFException {}
}
