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; }
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; }
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); }
public abstract void SendHistoricalDataRequest(HistoricalDataRequest request);
public virtual void RequestHistoricalData(HistoricalDataRequest request) { }
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); } }