/// <summary> /// CTP InvestorPositionField To USePositionDetail, /// (注 :此方法只是针对有昨日持仓的持仓信息来构造USePositionDetail。 /// </summary> /// <param name="field"></param> /// <returns></returns> private USePositionDetail CtpInvestorPositonFieldToUSePositionDetail(InvestorPositionField field) { if (field.YdPosition <= 0) { return(null); // 只能生成历史持仓 } USePositionDetail positionDetail = new USePositionDetail(); positionDetail.Instrument = m_dataBuffer.GetInstrumnetByCode(field.InstrumentID.Trim()); switch (field.PosiDirection) { case PosiDirectionType.Long: positionDetail.Direction = USeDirection.Long; break; case PosiDirectionType.Short: positionDetail.Direction = USeDirection.Short; break; default: Debug.Assert(false, "Invalid PosiDirection"); break; } positionDetail.PositionType = USePositionType.Yestorday; positionDetail.OpenQty = field.YdPosition; positionDetail.OpenPrice = Convert.ToDecimal(field.PreSettlementPrice); // 昨仓取昨日结算价为建仓价 positionDetail.OpenTime = DateTime.Today.AddDays(-1); // 建仓时间设为昨日日期 positionDetail.CloseQty = 0; positionDetail.ClosePrice = 0m; positionDetail.CloseAmount = 0m; return(positionDetail); }
public void Update(USePositionDetail entity) { this.ID = entity.ID; this.Instrument = entity.Instrument; this.Direction = entity.Direction; this.PositionType = entity.PositionType; this.OpenQty = entity.OpenQty; this.OpenPrice = entity.OpenPrice; this.OpenTime = entity.OpenTime; this.CloseQty = entity.CloseQty; this.RemainQty = entity.RemainQty; this.CloseAmount = entity.CloseAmount; this.ClosePrice = entity.ClosePrice; }
private void UpdatePositionDetailBook(USePositionDetail positionDetail) { PositionDetailDataViewModel PositionDetail_Model = m_positionDetail_data_source.FirstOrDefault(p => (p.InstrumentCode == positionDetail.Instrument.InstrumentCode) && (p.Direction == positionDetail.Direction)); if (PositionDetail_Model != null) { m_positionDetail_data_source.Remove(PositionDetail_Model); } else { PositionDetailDataViewModel positionDetail_model = PositionDetailDataViewModel.Creat(positionDetail); m_positionDetail_data_source.Add(positionDetail_model); } }
public static PositionDetailDataViewModel Creat(USePositionDetail entity) { PositionDetailDataViewModel data_model = new PositionDetailDataViewModel(); data_model.ID = entity.ID; data_model.Instrument = entity.Instrument; data_model.Direction = entity.Direction; data_model.PositionType = entity.PositionType; data_model.OpenQty = entity.OpenQty; data_model.OpenPrice = entity.OpenPrice; data_model.OpenTime = entity.OpenTime; data_model.CloseQty = entity.CloseQty; data_model.RemainQty = entity.RemainQty; data_model.CloseAmount = entity.CloseAmount; data_model.ClosePrice = entity.ClosePrice; data_model.CloseQty = entity.CloseQty; return(data_model); }