// flat file output methods
        public string ToFlatFileStringAllData()
        {
            const string  del     = ", ";
            StringBuilder dataStr = new StringBuilder();

            // output string
            dataStr.Append(_securityObj.Name);
            dataStr.Append(del); dataStr.Append(TimeStamp.ToString("yyyy/MM/dd hh:mm:ss.ffffff"));
            dataStr.Append(del); dataStr.Append(BinCnt.ToString());
            dataStr.Append(del); dataStr.Append(StateType.ToString());
            dataStr.Append(del); dataStr.Append(Bid.ToString());
            dataStr.Append(del); dataStr.Append(BidVol.ToString());
            dataStr.Append(del); dataStr.Append(BidOpen.ToString());
            dataStr.Append(del); dataStr.Append(BidVolOpen.ToString());
            dataStr.Append(del); dataStr.Append(BidVolChg.ToString());
            dataStr.Append(del); dataStr.Append(BidVolChgSum.ToString());
            dataStr.Append(del); dataStr.Append(BidVolChgCnt.ToString());
            dataStr.Append(del); dataStr.Append(VolAtBid.ToString());
            dataStr.Append(del); dataStr.Append(TrdCntBid.ToString());
            dataStr.Append(del); dataStr.Append(Ask.ToString());
            dataStr.Append(del); dataStr.Append(AskVol.ToString());
            dataStr.Append(del); dataStr.Append(AskOpen.ToString());
            dataStr.Append(del); dataStr.Append(AskVolOpen.ToString());
            dataStr.Append(del); dataStr.Append(AskVolChg.ToString());
            dataStr.Append(del); dataStr.Append(AskVolChgSum.ToString());
            dataStr.Append(del); dataStr.Append(AskVolChgCnt.ToString());
            dataStr.Append(del); dataStr.Append(VolAtAsk.ToString());
            dataStr.Append(del); dataStr.Append(TrdCntAsk.ToString());
            dataStr.Append(del); dataStr.Append(Mid.ToString());
            dataStr.Append(del); dataStr.Append(MidOpen.ToString());
            dataStr.Append(del); dataStr.Append(MidScaled.ToString("#.0000"));
            dataStr.Append(del); dataStr.Append(MidScaledOpen.ToString("#.0000"));
            dataStr.Append(del); dataStr.Append(LastTrdPrice.ToString());
            dataStr.Append(del); dataStr.Append(LastPriceOpn.ToString());
            dataStr.Append(del); dataStr.Append(LastTrdSize.ToString());

            return(dataStr.ToString());
        }
 private void SetBidVolChg(MarketState prevMktState)
 {
     if (_securityObj.HasQuoteSize)
     {
         if ((Bid == prevMktState.Bid))
         {
             BidVolChg     = (int)(BidVol - prevMktState.BidVol);
             BidVolChgSum += BidVolChg;
             SetBidVolChgCnt(BidVolChg);
         }
         else
         {
             if ((Bid == prevMktState.Ask)) // just ticked up
             {
                 BidVolChg     = (int)(BidVol + prevMktState.AskVol);
                 BidVolChgSum += BidVolChg;
                 SetBidVolChgCnt(BidVolChg);
                 //Console.WriteLine(SecurityObj.Name + " went Bid @" + timeStamp.ToLongTimeString());
             }
             else
             {
                 if ((Bid == prevMktState.PrevAsk)) // just ticked up, but need to look two data points back
                 {
                     BidVolChg     = (int)(BidVol + prevMktState.PrevAskVol);
                     BidVolChgSum += BidVolChg;
                     SetBidVolChgCnt(BidVolChg);
                     //Console.WriteLine(SecurityObj.Name + " went Bid @" + timeStamp.ToLongTimeString());
                 }
                 else
                 {
                     if ((Bid < PrevBid)) // just ticked down
                     {
                         BidVolChg     = (int)(PrevBidVol);
                         BidVolChgSum -= BidVolChg;
                         SetBidVolChgCnt(BidVolChg);
                         Console.WriteLine("{0} went offered @ {1} {2} {3} {4}", Name, TimeStamp.ToLongTimeString(), Bid.ToString(), PrevBid.ToString(), BidVolChg.ToString());
                     }
                 }
             }
         }
     }
 }