package jforex;

import java.util.*;

import com.dukascopy.api.*;

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();
        
        Set<Instrument> instruments = new HashSet<Instrument>();
        instruments.add(Instrument.EURUSD);
        this.context.setSubscribedInstruments(instruments);
    }

    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 {        
        if(!Instrument.EURUSD.equals(instrument)) {
            return;
        }
                
        console.getOut().print("ask ");
        for(double volume : tick.getAskVolumes()) {
            console.getOut().print(volume+ ", ");
        }
        console.getOut().println();
        
        console.getOut().print("bid ");
        for(double volume : tick.getBidVolumes()) {
            console.getOut().print(volume+ ", ");
        }
        console.getOut().println();
    }
    
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
    }
}