package org.marketcetera.strategy; import org.marketcetera.client.BrokerStatusListener; import org.marketcetera.client.brokers.BrokerStatus; import org.marketcetera.core.ClassVersion; import org.marketcetera.event.AskEvent; import org.marketcetera.event.BidEvent; import org.marketcetera.event.DividendEvent; import org.marketcetera.event.MarketstatEvent; import org.marketcetera.event.TradeEvent; import org.marketcetera.trade.ExecutionReport; import org.marketcetera.trade.OrderCancelReject; /* $License$ */ /** * An interface to a running strategy that facilitates communication to the strategy. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: RunningStrategy.java 16600 2013-06-26 00:53:16Z colin $ * @since 1.0.0 */ @ClassVersion("$Id: RunningStrategy.java 16600 2013-06-26 00:53:16Z colin $") public interface RunningStrategy extends BrokerStatusListener { /** * Indicates a <code>TradeEvent</code> has been received. * * @param inTrade a <code>TradeEvent</code> value */ public void onTrade(TradeEvent inTrade); /** * Indicates a <code>BidEvent</code> has been received. * * @param inBid a <code>BidEvent</code> value */ public void onBid(BidEvent inBid); /** * Indicates an <code>AskEvent</code> has been received. * * @param inAsk an <code>AskEvent</code> value */ public void onAsk(AskEvent inAsk); /** * Indicates a <code>MarketstatEvent</code> has been received. * * @param inStatistics a <code>MarketstatEvent</code> value */ public void onMarketstat(MarketstatEvent inStatistics); /** * Indicates a <code>DividendEvent</code> has been received. * * @param inDividend a <code>DividendEvent</code> value */ public void onDividend(DividendEvent inDividend); /** * Indicates an <code>ExecutionReport</code> has been received. * * @param inExecutionReport an <code>ExecutionReport</code> value */ public void onExecutionReport(ExecutionReport inExecutionReport); /** * Indicates an <code>OrderCancelReject</code> has been received. * * @param inCancelReject an <code>OrderCancelReject</code> value */ public void onCancelReject(OrderCancelReject inCancelReject); /** * Indicates a <code>BrokerStatus</code> has been received. * * @param inStatus a <code>BrokerStatus</code> value */ public void onReceiveBrokerStatus(BrokerStatus inStatus); /** * Indicates an object has been sent that does not fit any of the other callbacks. * * @param inEvent an <code>Object</code> value */ public void onOther(Object inEvent); /** * Indicates a scheduled callback has been executed. * * @param inData an <code>Object</code> value passed to the request for callback method */ public void onCallback(Object inData); /** * Called when a strategy is started. */ public void onStart(); /** * Called when a strategy is about to be stopped. */ public void onStop(); }