/// <summary> /// 报单回调 /// </summary> /// <param name="pInputOrder"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspOrderInsert(SecurityFtdcInputOrderField pInputOrder, SecurityFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pInputOrder != null) { SysConst.SendOrders[pInputOrder] = pRspInfo; if (bIsLast) { UpdateDelegateDataGrid(); Debug.WriteLine(pRspInfo.ErrorMsg); } } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { CBListItem item = (CBListItem)comboBoxInstrument.SelectedItem; if (item == null) { MessageBox.Show("请选择合约!"); comboBoxInstrument.Focus(); return; } if (textBoxPrice.Text == "") { MessageBox.Show("请输入价格!"); textBoxPrice.Focus(); return; } if (textBoxVolume.Text == "") { MessageBox.Show("请输入数量!"); textBoxVolume.Focus(); return; } double price = 0; int volume = 0; Int32.TryParse(textBoxVolume.Text, out volume); double.TryParse(textBoxPrice.Text, out price); string instrumentID = item.Key; string instrumentName = SysConst.Instruments[instrumentID].InstrumentName; int requestID = SysConst.GetRequestID(); SecurityFtdcInputOrderField field = new SecurityFtdcInputOrderField(); field.BrokerID = SysConst.User.BrokerID; field.InvestorID = field.UserID = SysConst.User.UserID; field.ExchangeID = SysConst.Instruments[instrumentID].ExchangeID; field.InstrumentID = instrumentID; field.OrderPriceType = EnumOrderPriceTypeType.LimitPrice; field.LimitPrice = price.ToString("n" + minSpreadPriceCount); field.VolumeTotalOriginal = volume;///数量 field.OrderRef = SysConst.GetOrderID(); field.GTDDate = SysConst.TraderApi.GetTradingDay(); field.MinVolume = 0;//最小成交量:1 field.ContingentCondition = EnumContingentConditionType.Immediately;//触发条件:立即, field.StopPrice = 0; field.ForceCloseReason = EnumForceCloseReasonType.NotForceClose;// ((char)EnumForceCloseReasonType.NotForceClose).ToString(); field.IsAutoSuspend = 0;//自动挂起标志:否 field.RequestID = requestID; field.UserForceClose = 0;//用户强评标志:否 field.VolumeCondition = EnumVolumeConditionType.AV; //成交量类型:任何数量 field.TimeCondition = EnumTimeConditionType.GFD; if (this.radioButtonBuy.Checked) { field.Direction = EnumDirectionType.Buy; } else if (this.radioButtonSell.Checked) { field.Direction = EnumDirectionType.Sell; } char v ='0'; if (radioButtonOpenPosi.Checked) { v = (char)EnumOffsetFlagType.Open; } else if (radioButtonOpenPosi.Checked) { v = (char)EnumOffsetFlagType.Close; } char flag = (char)EnumHedgeFlagType.Speculation; field.CombHedgeFlag = flag.ToString(); field.CombOffsetFlag = v.ToString(); // OffSetFlag = SECURITY_FTDC_OF_Open; field.BusinessUnit = ""; int nRes = SysConst.TraderApi.ReqOrderInsert(field, requestID); string msg = string.Format("报单发送{0}", nRes == 0 ? "成功" : "失败"); Debug.WriteLine(msg); MessageBox.Show(msg); }