package jforex.strategies.sdk;
 
import java.util.*;
import java.math.BigDecimal;
import java.util.Arrays;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.TimeZone;
import java.lang.Object;
import java.lang.Enum;
 
import com.dukascopy.api.*;
import com.dukascopy.api.IEngine.OrderCommand;
import com.dukascopy.api.IIndicators.AppliedPrice;
import com.dukascopy.api.IIndicators.MaType;
import com.dukascopy.api.feed.IFeedDescriptor;
import com.dukascopy.api.feed.IFeedListener;
import com.dukascopy.api.feed.ITailoredFeedDescriptor;
import com.dukascopy.api.feed.ITailoredFeedListener;
import com.dukascopy.api.feed.util.RenkoFeedDescriptor;
import com.dukascopy.api.feed.CreationPoint;
import com.dukascopy.api.feed.ILineBreak;
import com.dukascopy.api.LineBreakLookback;
import com.dukascopy.api.feed.util.LineBreakFeedDescriptor;
import com.dukascopy.api.feed.IPriceAggregationBar;
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IAccount.AccountState;
import com.dukascopy.api.IEngine.*;
 
import com.dukascopy.api.DataType;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IChart;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IHistory;
import com.dukascopy.api.IIndicators;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.ITimedData;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.OfferSide;
import com.dukascopy.api.Period;
import com.dukascopy.api.feed.IFeedDescriptor;
import com.dukascopy.api.indicators.IIndicator;
import com.dukascopy.api.indicators.IIndicatorAppearanceInfo;
import com.dukascopy.api.indicators.OutputParameterInfo;
 
public class TLBTEST2 implements IStrategy, IFeedListener {
     
    private ITailoredFeedDescriptor feedDescriptor = new LineBreakFeedDescriptor(Instrument.EURUSD, OfferSide.BID, Period.TICK, CreationPoint.CLOSE, LineBreakLookback.valueOf(8));
 
    public Instrument selectedInstrument = feedDescriptor.getInstrument();
     
    private IAccount account;
    private IEngine engine;
    private IConsole console;
    private IHistory history;
    private IContext context;
    private IIndicators indicators;
    private IUserInterface userInterface;
    private String User;
    private IOrder order = null;
     
 
    @Override
    public void onStart(IContext context) throws JFException {
         
        this.engine = context.getEngine();
        console = context.getConsole();
        history = context.getHistory();
        this.context = context;
        indicators = context.getIndicators();
        this.userInterface = context.getUserInterface();
        
    }
 
    @Override
    public void onFeedData(IFeedDescriptor feedDescriptor, ITimedData feedData) {
         
        try {                     
            ITimedData latestLineBreak = history.getFeedData(feedDescriptor, 1);            
             
        } catch (Exception e) {
            console.getErr().println(e);
            e.printStackTrace();
        }
 
    }
 
    @Override
    public void onStop() throws JFException {
         
    }
     
    @Override
    public void onMessage(IMessage message) throws JFException {}
 
 
 
    @Override
    public void onTick(Instrument instrument, ITick tick) throws JFException {
 
    }
 
    @Override
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
 
    }
 
    @Override
    public void onAccount(IAccount account) throws JFException {
         
    }
 
}