Example #1
0
        /// <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);
                }
            }
        }
Example #2
0
        /// <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);
        }