package jforex;

import java.io.PrintStream;
import java.text.SimpleDateFormat;

import com.dukascopy.api.*;

public class TickStrategy implements IStrategy {
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;

    Instrument instrument = Instrument.EURUSD;

    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();
    }

    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 != this.instrument) {
            return;
        }
        double[] asks = tick.getAsks();
        double[] bids = tick.getBids();
        double[] askVolumes = tick.getAskVolumes();
        double[] bidVolumes = tick.getBidVolumes();
        double totalAskVolume = tick.getTotalAskVolume();
        double totalBidVolume = tick.getTotalBidVolume();
        
        for (int i = 0; i < bids.length; i++) {
            console.getOut().println("Ask: " + asks[i] + " Bid: " + bids[i] + " Ask Volumes: " + askVolumes[i] + 
                    " Bid volumes: " + bidVolumes[i] + " Total Ask Volume: " + totalAskVolume + " Total Bid Volume: " + totalBidVolume);
        }
    }

    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
    }
}