Beispiel #1
0
        protected override void ProcessRecord()
        {
            int hr, mn, s;

            try
            {
                string instrument = (string)_currentRecord.values["SECCODE"];

                if (_instruments.IsContainsInstrument(instrument))
                {
                    decimal price   = Convert.ToDecimal(_currentRecord.values["PRICE"]);
                    string  buySell = _currentRecord.values["BUYSELL"].ToString();
                    long    amount  = Convert.ToInt32(_currentRecord.values["QUANTITY"].ToString());



                    string tradeTime = (_currentRecord.values["TRADETIME"]).ToString();

                    CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out mn, out s);
                    double dmilisec = 0;


                    if (_currentRecord.values["MICROSECONDS"] != null)
                    {
                        dmilisec = Math.Ceiling(Convert.ToDouble(_currentRecord.values["MICROSECONDS"].ToString()) / 1000);
                        dmilisec = Math.Min(999, dmilisec);
                    }


                    int milisec = Convert.ToInt16(dmilisec);
                    //TODO use server time !
                    DateTime dt     = DateTime.Now;
                    DateTime moment = new DateTime(dt.Year, dt.Month, dt.Day, hr, mn, s, milisec);
                    //  moment = moment.AddHours(-2);

                    CRawDeal rd = new CRawDeal(amount, price, buySell, moment);

                    _dealBox.Update(instrument, rd);

                    if (!_client.IsDealsOnline)
                    {
                        _client.IsDealsOnline = true;
                        _client.EvDealsOnline.Set();
                    }
                }
            }
            catch (Exception e)
            {
                Error("CTableAll_Trades.ProcessRecord", e);
            }

            finally
            {
                base.ProcessRecord();
            }
        }
Beispiel #2
0
        public TestASTSConv()
        {
            int hr, min, s;


            string tradeTime = "1";

            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 0);
            Assert.AreEqual(min, 0);
            Assert.AreEqual(s, 1);

            tradeTime = "12";

            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 0);
            Assert.AreEqual(min, 0);
            Assert.AreEqual(s, 12);


            tradeTime = "112";
            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 0);
            Assert.AreEqual(min, 1);
            Assert.AreEqual(s, 12);


            tradeTime = "3112";
            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 0);
            Assert.AreEqual(min, 31);
            Assert.AreEqual(s, 12);


            tradeTime = "13112";
            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 1);
            Assert.AreEqual(min, 31);
            Assert.AreEqual(s, 12);


            tradeTime = "213112";
            CASTSConv.ASTSTimeToHrMinSec(tradeTime, out hr, out min, out s);
            Assert.AreEqual(hr, 21);
            Assert.AreEqual(min, 31);
            Assert.AreEqual(s, 12);
        }