public override void Send(HistoricalDataRequest request)
        {
            if(!IsApiConnected(_HdApi))
            {
                EmitHistoricalDataEnd(request.RequestId, RequestResult.Error, "Provider is not connected.");
                xlog.Error("历史行情服务器没有连接");
                return;
            }

            int iRet = 1;
            switch(request.DataType)
            {
                case DataObjectType.Bid:
                case DataObjectType.Ask:
                case DataObjectType.Trade:
                case DataObjectType.Quote:
                    iRet = GetHistoricalTicks(ToStruct(request));
                    break;
                case DataObjectType.Bar:
                    iRet = GetHistoricalBars(ToStruct(request));
                    break;
            }
            historicalDataRecords.Add(iRet, new HistoricalDataRecord(request));
            historicalDataIds.Add(request.RequestId, iRet);
        }
        private HistoricalDataRequestField ToStruct(HistoricalDataRequest request)
        {
            string altSymbol;
            string altExchange;
            string apiSymbol;
            string apiExchange;
            double apiTickSize;

            GetApi_Symbol_Exchange_TickSize(request.Instrument,
                out altSymbol, out altExchange,
                out apiSymbol, out apiExchange,
                out apiTickSize);

            HistoricalDataRequestField field = new HistoricalDataRequestField();
            field.Symbol = request.Instrument.Symbol;
            field.InstrumentID = apiSymbol;
            field.ExchangeID = apiExchange;
            field.Date1 = GetDate(request.DateTime1);
            field.Date2 = GetDate(request.DateTime2);
            field.Time1 = GetTime(request.DateTime1);
            field.Time2 = GetTime(request.DateTime2);
            field.DataType = (XAPI.DataObjetType)request.DataType;
            if(request.BarType.HasValue)
                field.BarType = (XAPI.BarType)request.BarType.Value;
            if(request.BarSize.HasValue)
                field.BarSize = (int)request.BarSize.Value;
            //field.RequestId;
            //field.Count;

            return field;
        }
Пример #3
0
		public TickSeries GetHistoricalTrades(IHistoricalDataProvider provider, Instrument instrument, DateTime dateTime1, DateTime dateTime2)
		{
			HistoricalDataRequest request = new HistoricalDataRequest(instrument, dateTime1, dateTime2, 4);
			provider.Send(request);
			this.handle = new ManualResetEventSlim(false);
			this.handle.Wait();
			TickSeries tickSeries = new TickSeries("");
			if (this.historicalData != null)
			{
				foreach (HistoricalData current in this.historicalData)
				{
					DataObject[] objects = current.Objects;
					for (int i = 0; i < objects.Length; i++)
					{
						DataObject dataObject = objects[i];
						tickSeries.Add((Trade)dataObject);
					}
				}
			}
			this.historicalData = null;
			return tickSeries;
		}
Пример #4
0
        public TickSeries GetHistoricalTrades(IHistoricalDataProvider provider, Instrument instrument, DateTime dateTime1, DateTime dateTime2)
        {
            HistoricalDataRequest request = new HistoricalDataRequest(instrument, dateTime1, dateTime2, 4);

            provider.Send(request);
            this.handle = new ManualResetEventSlim(false);
            this.handle.Wait();
            TickSeries tickSeries = new TickSeries("");

            if (this.historicalData != null)
            {
                foreach (HistoricalData current in this.historicalData)
                {
                    DataObject[] objects = current.Objects;
                    for (int i = 0; i < objects.Length; i++)
                    {
                        DataObject dataObject = objects[i];
                        tickSeries.Add((Trade)dataObject);
                    }
                }
            }
            this.historicalData = null;
            return(tickSeries);
        }
Пример #5
0
 public abstract void SendHistoricalDataRequest(HistoricalDataRequest request);
Пример #6
0
 public virtual void RequestHistoricalData(HistoricalDataRequest request)
 {
 }
Пример #7
0
 public virtual void Send(HistoricalDataRequest request)
 {
 }
 public HistoricalDataRecord(HistoricalDataRequest request)
 {
     this.Request = request;
 }
 private void tsbImport_Start_Click(object sender, EventArgs e)
 {
   if (this.instruments.Count == 0)
   {
     int num = (int) MessageBox.Show((IWin32Window) this, "Please, add instrument(s).", this.GetMessageBoxCaption(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
   }
   else
   {
     this.tsbInstrumentAdd.Enabled = false;
     this.tsbInstrumentRemove.Enabled = false;
     this.tsbImport_Start.Enabled = false;
     this.tsbImport_Stop.Enabled = true;
     this.gbxSettings.Enabled = false;
     this.taskItems.Clear();
     this.requests.Clear();
     this.workingRequests.Clear();
     this.lastQuotes.Clear();
     foreach (ImportTaskViewItem importTaskViewItem in this.ltvImportTasks.Items)
     {
       HistoricalDataRequest historicalDataRequest = new HistoricalDataRequest();
       historicalDataRequest.RequestId = Guid.NewGuid().ToString();
       historicalDataRequest.Instrument = importTaskViewItem.Task.Instrument;
       historicalDataRequest.DataType = ((DataTypeItem) this.cbxDataType.SelectedItem).DataType;
       historicalDataRequest.BarType = ((DataTypeItem) this.cbxDataType.SelectedItem).BarType;
       if (historicalDataRequest.BarType.HasValue)
         historicalDataRequest.BarSize = new long?((long) this.nudBarSize.Value);
       historicalDataRequest.DateTime1 = this.dtpFrom.Value;
       historicalDataRequest.DateTime2 = this.dtpTo.Value;
       importTaskViewItem.Task.State = ImportTaskState.Pending;
       importTaskViewItem.Task.Count = 0;
       importTaskViewItem.Task.TotalNum = 0;
       importTaskViewItem.Task.Message = string.Empty;
       this.taskItems.Add(historicalDataRequest.RequestId, importTaskViewItem);
       this.requests.Add(historicalDataRequest);
     }
     this.worker.RunWorkerAsync((object) this.requests);
   }
 }
Пример #10
0
 public virtual void Send(HistoricalDataRequest request)
 {
 }
Пример #11
0
 public virtual void RequestHistoricalData(HistoricalDataRequest request)
 {
 }