package jforex;

import java.util.*;

import com.dukascopy.api.*;

public class FractalError 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();
        
        IBar currBar = history.getBar(Instrument.EURUSD, Period.FOUR_HOURS, OfferSide.ASK, 3);
        double[][] fractal = indicators.fractal(Instrument.EURUSD, Period.FOUR_HOURS, OfferSide.ASK, 3, Filter.NO_FILTER, 500, currBar.getTime(), 0);
        
        for (int i = 0; i < 500; i++) {
            if (!Double.isNaN(fractal[0][i])) {
                console.getOut().println("Bar" + i + ": +1");
            } else if (!Double.isNaN(fractal[1][i])) {
                console.getOut().println("Bar" + i + ": -1");
            } else {
                console.getOut().println("Bar" + i + ": 0");
            }
        }
    }
    
    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 {
    }
}