Example #1
0
        private void Remove(object obj)
        {
            var model = obj as QuotationModel;

            QuotationCenter.UnSubscribe(model.InstrumentID, this);
            this.Quotations.Remove(model);
        }
Example #2
0
        public CandleChartViewModel(string instrumentID)
        {
            this.Title        = instrumentID;
            this.instrumentID = instrumentID;
            double priceTick = InstrumentListViewModel.Instance.Instruments.First(p => p.InstrumentID == instrumentID).PriceTick;

            this.Precision = GetPrecision(priceTick);
            this.GetCandles();
            QuotationCenter.Subscribe(instrumentID, this);
        }
Example #3
0
        private async void Init()
        {
            await DALUtil.Init();

            InstrumentListViewModel.Instance.Instruments = await Task.Run(() => { return(InstrumentDAL.Get()); });

            await Task.Run(() => { QuotationCenter.Init(); });

            QuotationListViewModel.Instance.Init();
            TradeAdapter.Instance.Start();
            this.IsBusy = false;
        }
Example #4
0
        private QuotationModel AddInstrument(string instrumentID)
        {
            Quotation      quotation = QuotationCenter.GetQuotation(instrumentID);
            QuotationModel quotationModel;

            if (quotation == null)
            {
                quotationModel = new QuotationModel(instrumentID);
            }
            else
            {
                quotationModel = new QuotationModel(quotation);
            }
            this.Quotations.Add(quotationModel);
            QuotationCenter.Subscribe(instrumentID, this);
            return(quotationModel);
        }
Example #5
0
 public void PublishQuotation()
 {
     while (true)
     {
         if (marketDataFieldQueue.Count == 0)
         {
             Thread.Sleep(1);
             continue;
         }
         this.lastQuotationTime = DateTime.Now;
         ThostFtdcDepthMarketDataField field = marketDataFieldQueue.Dequeue();
         if (field.LastPrice == 0)
         {
             Debug.WriteLine("Filter data with no price: " + field.InstrumentID);
             continue;
         }
         field.TradingDay = this.GetTradingDay();
         if (field.ActionDay == string.Empty)
         {
             var today   = DateTime.Today;
             var builder = new StringBuilder(today.Year.ToString());
             if (today.Month < 10)
             {
                 builder.Append(0);
             }
             builder.Append(today.Month);
             if (today.Day < 10)
             {
                 builder.Append(0);
             }
             builder.Append(today.Day);
             field.ActionDay = builder.ToString();
         }
         QuotationCenter.ProcessMarketDataField(field);
     }
 }
Example #6
0
 private void DoClose()
 {
     QuotationCenter.UnSubscribe(this.instrumentID, this);
     ChartsViewModel.Instance.Documents.Remove(this);
 }