Ejemplo n.º 1
0
        private static void ListAllQuotesOfType(QuoteType quoteType)
        {
            Console.WriteLine();
            List <Quote> quotes = new List <Quote>();

            using (var context = new SamuraiContext())
            {
                context.Samurais.SelectMany(s => s.Quotes).Where(q => q.Type == quoteType).ToList().ForEach(q => quotes.Add(q));
            }

            if (quotes.Count == 0)
            {
                Console.WriteLine($"There are no quotes of type {quoteType.ToString()}.");
            }
            else
            {
                foreach (var quote in quotes)
                {
                    Console.WriteLine($"\"{quote.Text}\" is a {quote.Type.ToString().ToLower()} quote said by {FindSamurai(quote.SamuraiId).Name}.");
                }
            }

            Console.WriteLine();
        }
        private bool UpdateIndices(HugoDataSet.IndexWeightsRow[] rows)
        {
            try
            {
                List <HugoDataSet.IndicesRow> subscribeList = new List <HugoDataSet.IndicesRow>();

                lock (m_portfolioLock)
                {
                    m_indexWeights = rows;
                    foreach (HugoDataSet.IndexWeightsRow indexWeightsRow in rows)
                    {
                        HugoDataSet.IndicesRow indicesRow = m_indices.Rows.Find(new string[] { indexWeightsRow.AcctName, indexWeightsRow.Symbol }) as HugoDataSet.IndicesRow;
                        if (indicesRow == null)
                        {
                            indicesRow          = m_indices.NewIndicesRow();
                            indicesRow.AcctName = indexWeightsRow.AcctName;
                            indicesRow.Symbol   = indexWeightsRow.Symbol;
                            m_indices.Rows.Add(indicesRow);
                        }

                        indicesRow.Weight    = indexWeightsRow.Weight;
                        indicesRow.IndexFlag = indexWeightsRow.IndexFlag;

                        if (IsSubscribed && (indicesRow.SubscriptionStatus != SubscriptionStatus.Subscribed.ToString()))
                        {
                            indicesRow.SubscriptionStatus = SubscriptionStatus.Subscribed.ToString();
                            subscribeList.Add(indicesRow);
                        }
                    }
                }

                if (IsSubscribed)
                {
                    if (subscribeList.Count > 0)
                    {
                        foreach (HugoDataSet.IndicesRow row in subscribeList)
                        {
                            QuoteType quoteType = row.IndexFlag ? QuoteType.Index : QuoteType.Stock;
                            m_messageUtilities2.Subscribe(row.Symbol, quoteType, row);
                            PositionMonitorUtilities.Info(String.Format("{0} now subscribed to {1} as {2}", Name, row.Symbol, quoteType.ToString()));
                        }
                        PositionMonitorUtilities.Info(String.Format("{0} subscribed to {1} new indices", Name, subscribeList.Count));
                    }
                }
            }
            catch (Exception ex)
            {
                PositionMonitorUtilities.Error(String.Format("{0} unable to fill indices table", Name), ex);
                return(false);
            }
            return(true);
        }
Ejemplo n.º 3
0
 public void Remove(string symbol, QuoteType quoteType)
 {
     this.feed.Remove(symbol, quoteType.ToString());
 }
Ejemplo n.º 4
0
 public void Add(string symbol, QuoteType quoteType)
 {
     this.feed.Add(symbol, quoteType.ToString());
 }
Ejemplo n.º 5
0
        public static object[,] MakeInstrumentInfoArray(InstrumentFactory factory, string identifier)
        {
            object[,] output = new object[9, 2];
            string whiteSpace = "";

            QuoteType quoteType = factory.InstrumentTypeMap[identifier];

            output[0, 0] = quoteType.ToString();
            output[0, 1] = whiteSpace;

            output[4, 0] = whiteSpace;
            output[4, 1] = whiteSpace;
            output[7, 0] = whiteSpace;
            output[7, 1] = whiteSpace;
            output[8, 0] = whiteSpace;
            output[8, 1] = whiteSpace;

            // InstrumentStrings
            output[5, 0] = InstrumentFactoryHeaders.GetHeaders[factory.InstrumentFormatTypeMap[identifier]];
            output[5, 1] = whiteSpace;
            output[6, 0] = factory.IdentifierStringMap[identifier];
            output[6, 1] = whiteSpace;

            switch (quoteType)
            {
            case QuoteType.ParSwapRate:
                output[1, 0] = factory.IrSwaps[identifier].FloatLeg.StartDate.ToString("dd/MM/yyyy");
                output[1, 1] = factory.IrSwaps[identifier].FixedLeg.StartDate.ToString("dd/MM/yyyy");
                output[2, 0] = factory.IrSwaps[identifier].FloatLeg.EndDate.ToString("dd/MM/yyyy");
                output[2, 1] = factory.IrSwaps[identifier].FixedLeg.EndDate.ToString("dd/MM/yyyy");
                output[3, 0] = factory.IrSwaps[identifier].FloatLeg.Tenor.ToString();
                output[3, 1] = factory.IrSwaps[identifier].FixedLeg.Tenor.ToString();

                break;

            case QuoteType.OisRate:
                output[1, 0] = factory.OisSwaps[identifier].StartDate.ToString("dd/MM/yyyy");
                output[1, 1] = whiteSpace;
                output[2, 0] = factory.OisSwaps[identifier].EndDate.ToString("dd/MM/yyyy");
                output[2, 1] = whiteSpace;

                //output[3, 1] = factory.OisSwaps[dentifier].
                output[3, 0] = whiteSpace;
                output[3, 1] = whiteSpace;
                output[8, 0] = "(Float schedule -- Fixed schedule)";

                break;

            case QuoteType.FraRate:
                output[1, 0] = factory.Fras[identifier].StartDate.ToString("dd/MM/yyyy");
                output[1, 1] = whiteSpace;
                output[2, 0] = factory.Fras[identifier].EndDate.ToString("dd/MM/yyyy");
                output[2, 1] = whiteSpace;
                output[3, 0] = factory.Fras[identifier].ReferenceIndex.ToString();
                output[3, 1] = whiteSpace;

                break;

            case QuoteType.ParBasisSpread:
                output[1, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.StartDate.ToString("dd/MM/yyyy");
                output[1, 1] = factory.BasisSwaps[identifier].FloatLegSpread.StartDate.ToString("dd/MM/yyyy");
                output[2, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.EndDate.ToString("dd/MM/yyyy");
                output[2, 1] = factory.BasisSwaps[identifier].FloatLegSpread.EndDate.ToString("dd/MM/yyyy");
                output[3, 0] = factory.BasisSwaps[identifier].FloatLegNoSpread.Tenor.ToString();
                output[3, 1] = factory.BasisSwaps[identifier].FloatLegSpread.Tenor.ToString();

                break;

            case QuoteType.FuturesRate:
                output[1, 0] = factory.Futures[identifier].FraSameSpec.StartDate.ToString("dd/MM/yyyy");
                output[1, 1] = whiteSpace;
                output[2, 0] = factory.Futures[identifier].FraSameSpec.EndDate.ToString("dd/MM/yyyy");
                output[2, 1] = whiteSpace;
                output[3, 0] = factory.Futures[identifier].FraSameSpec.ReferenceIndex.ToString();
                output[3, 1] = whiteSpace;
                output[8, 0] = "Convexity adjustment: " + Math.Round(factory.Futures[identifier].Convexity, 4).ToString();

                break;

            case QuoteType.Deposit:
                // do something
                break;

            default:
                throw new InvalidOperationException("QuoteType for identifier is not valid.");
            }
            return(output);
        }