package jforex;

import java.util.*;

import com.dukascopy.api.*;

import com.dukascopy.api.feed.*;
import com.dukascopy.api.feed.util.*;
import com.dukascopy.api.feed.IBarFeedListener;

public class strategy_synchronize_time_2 implements  IStrategy, IBarFeedListener {
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    
    JFTimeZone myTimeZone = JFTimeZone.EET;
    Period myPeriod = Period.createCustomPeriod(Unit.Minute, 1440, myTimeZone); 
    IBar previousDailyBarBasedOnMyTimeZone;
    
    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();

        context.subscribeToBarsFeed(Instrument.EURUSD, myPeriod, OfferSide.BID, this);   
    }

    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 {}
    
    @Override
    public void onBar( Instrument instrument, Period period, OfferSide offerSide, IBar bar ) {
        console.getNotif().println( " subscribeToBarsFeed | " + bar );
    }
     
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
        Period myPeriod2 = Period.createCustomPeriod(Unit.Minute, 1440, myTimeZone);
        print( " onBar | " +  history.getBar(instrument, myPeriod2, OfferSide.BID, 0) );    
    }
        
    public void print(Object obj) {
        console.getOut().println(obj);
    }
    
}