public UnderlyingTicker( MamdaOptionChain chain, bool printStrikes) { myChain = chain; myPrintStrikes = printStrikes; }
public void onOptionChainGap( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionChain chain) { printChain(chain); }
public OptionContractTicker(MamdaOptionContract contract, MamdaOptionChain chain, OptionChainDisplay display) { myContract = contract; myChain = chain; myDisplay = display; }
public void onOptionSeriesUpdate( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionSeriesUpdate update, MamdaOptionChain chain) { printChain(chain); }
public void onOptionChainRecap( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionChain chain) { myGotRecap = true; printChain(chain); }
public void onOptionContractCreate( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionContract contract, MamdaOptionChain chain) { // (Optional: create a trade/quote handler for the // individual option contract.) OptionContractTicker aTicker = new OptionContractTicker(contract, chain, this); contract.addQuoteHandler(aTicker); contract.addTradeHandler(aTicker); }
public void printChain(MamdaOptionChain chain) { if (!myGotRecap) { return; } int i = 0; Iterator callIter = chain.callIterator(); Iterator putIter = chain.putIterator(); Console.WriteLine("Chain: " + chain.getSymbol()); while (callIter.hasNext() || putIter.hasNext()) { Console.Write("" + i + " | "); if (callIter.hasNext()) { MamdaOptionContract callContract = (MamdaOptionContract)callIter.next(); printContract(callContract); } else { Console.Write(" "); } Console.Write(" | "); if (putIter.hasNext()) { MamdaOptionContract putContract = (MamdaOptionContract)putIter.next(); printContract(putContract); } else { } Console.WriteLine(); ++i; } Console.Out.Flush(); }
public static void Main(string[] args) { MamaTransport baseTransport = null; MamaTransport optionTransport = null; MamaTransport dictTransport = null; string dictTransportName = null; MamaQueue defaultQueue = null; MamaDictionary dictionary = null; CommandLineProcessor options = new CommandLineProcessor(args); if (options.hasLogLevel()) { logLevel_ = options.getLogLevel(); Mama.enableLogging(logLevel_); } try { // Initialize MAMA myBridge = new MamaBridge(options.getMiddleware()); Mama.open(); // Initialize transports. We're assuming that options and // underlyings might be on different transports. Note: // some companies might use multiple transports for // underlyings (e.g., CTA and NASDAQ), which case it would // be necessary to create three transports here and be // sure to pass the correct transport later. baseTransport = new MamaTransport(); baseTransport.create(options.getTransport(), myBridge); optionTransport = baseTransport; defaultQueue = Mama.getDefaultEventQueue(myBridge); // Fetch and initialize the data dictionary MamaSource dictionarySource = new MamaSource(); dictionarySource.symbolNamespace = options.getDictSource(); dictTransportName = options.getDictTransport(); if (null != dictTransportName) { dictTransport = new MamaTransport(); dictTransport.create(dictTransportName, myBridge); } else { dictTransport = baseTransport; } dictionarySource.transport = dictTransport; dictionary = buildDataDictionary(dictTransport, defaultQueue, dictionarySource); MamdaQuoteFields.setDictionary(dictionary, null); MamdaTradeFields.setDictionary(dictionary, null); MamdaFundamentalFields.setDictionary(dictionary, null); MamdaOptionFields.setDictionary(dictionary, null); // Create listeners for each chain. Two subscriptions are // necessary. foreach (string symbol in options.getSymbolList()) { // Create chain and listener objects. MamdaTradeListener aBaseTradeListener = new MamdaTradeListener(); MamdaQuoteListener aBaseQuoteListener = new MamdaQuoteListener(); MamdaOptionChain anOptionChain = new MamdaOptionChain(symbol); anOptionChain.setUnderlyingQuoteListener(aBaseQuoteListener); anOptionChain.setUnderlyingTradeListener(aBaseTradeListener); MamdaOptionChainListener anOptionListener = new MamdaOptionChainListener(anOptionChain); // Create our handlers (the UnderlyingTicker and // OptionChainDisplay could be a single class). UnderlyingTicker aBaseTicker = new UnderlyingTicker(anOptionChain, true); OptionChainDisplay aDisplay = new OptionChainDisplay(anOptionChain); // Create subscriptions for underlying and option chain: MamdaSubscription aBaseSubscription = new MamdaSubscription(); MamdaSubscription anOptionSubscription = new MamdaSubscription(); // Register for underlying quote and trade events. aBaseTradeListener.addHandler(aBaseTicker); aBaseQuoteListener.addHandler(aBaseTicker); aBaseSubscription.addMsgListener(aBaseTradeListener); aBaseSubscription.addMsgListener(aBaseQuoteListener); aBaseSubscription.create( baseTransport, defaultQueue, options.getSource(), symbol, null); mamdaSubscriptions.Add(aBaseSubscription); // Register for underlying option events. anOptionListener.addHandler(aDisplay); // We set the timeout to 1 for this example because we // currently use the timeout feature to determine when // to say that we have received all of the initials. // There will be a separate time interval for this in // the future. anOptionSubscription.setTimeout(1); anOptionSubscription.addMsgListener(anOptionListener); anOptionSubscription.addStaleListener(aDisplay); anOptionSubscription.addErrorListener(aDisplay); anOptionSubscription.setType(mamaSubscriptionType.MAMA_SUBSC_TYPE_GROUP); anOptionSubscription.create( optionTransport, defaultQueue, options.getSource(), symbol, null); optionSubscriptions.Add(anOptionSubscription); } //Start dispatching on the default event queue Mama.start(myBridge); GC.KeepAlive(dictionary); Console.WriteLine("Press ENTER or Ctrl-C to quit..."); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e.ToString()); Environment.Exit(1); } }
public void printChain(MamdaOptionChain chain) { if (!myGotRecap) return; int i = 0; Iterator callIter = chain.callIterator(); Iterator putIter = chain.putIterator(); Console.WriteLine("Chain: " + chain.getSymbol()); while (callIter.hasNext() || putIter.hasNext()) { Console.Write("" + i + " | "); if (callIter.hasNext()) { MamdaOptionContract callContract = (MamdaOptionContract)callIter.next(); printContract(callContract); } else { Console.Write(" "); } Console.Write(" | "); if (putIter.hasNext()) { MamdaOptionContract putContract = (MamdaOptionContract)putIter.next(); printContract(putContract); } else { } Console.WriteLine(); ++i; } Console.Out.Flush(); }
bool myGotRecap = false; // Updated when we get the first recap. #endregion Fields #region Constructors public OptionChainDisplay(MamdaOptionChain chain) { myChain = chain; }
bool myGotRecap = false; // Updated when we get the first recap. public OptionChainDisplay(MamdaOptionChain chain) { myChain = chain; }