private void btnSendOCOOrder_Click(object sender, EventArgs e)
        {
            if (m_UserAccount == "")
            {
                MessageBox.Show("請選擇期貨帳號");
                return;
            }

            string strFutureNo;
            int    nBidAsk;

            int    nNewClose;
            int    nUpBidAsk;
            int    nPeriod;
            string strPrice;
            string strUpTrigger;
            int    nDownBidAsk;
            string strPrice2;
            string strDownTrigger;

            int nQty;
            int nReserved;


            if (txtStockNo4.Text.Trim() == "")
            {
                MessageBox.Show("請輸入商品代碼");
                return;
            }
            strFutureNo = txtStockNo4.Text.Trim();

            if (boxBidAsk5.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇買賣別1");
                return;
            }
            nUpBidAsk = boxBidAsk5.SelectedIndex;

            if (boxBidAsk6.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇買賣別2");
                return;
            }
            nDownBidAsk = boxBidAsk6.SelectedIndex;


            if (boxPeriod4.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇委託條件");
                return;
            }
            nPeriod = boxPeriod4.SelectedIndex;

            if (boxNewCloseOCO.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇倉位");
                return;
            }
            nNewClose = boxNewCloseOCO.SelectedIndex;

            double dPrice = 0.0;

            if (double.TryParse(txtPrice4.Text.Trim(), out dPrice) == false && txtPrice.Text.Trim() != "M")
            {
                MessageBox.Show("委託價1請輸入數字");
                return;
            }
            strPrice = txtPrice4.Text.Trim();


            if (double.TryParse(txtPrice5.Text.Trim(), out dPrice) == false && txtPrice.Text.Trim() != "M")
            {
                MessageBox.Show("委託價2請輸入數字");
                return;
            }
            strPrice2 = txtPrice5.Text.Trim();

            if (int.TryParse(txtQty4.Text.Trim(), out nQty) == false)
            {
                MessageBox.Show("委託量請輸入數字");
                return;
            }

            if (double.TryParse(txtTriggerLarger.Text.Trim(), out dPrice) == false)
            {
                MessageBox.Show("觸發價請輸入數字");
                return;
            }
            strUpTrigger = txtTriggerLarger.Text.Trim();

            if (double.TryParse(txtTriggerLess.Text.Trim(), out dPrice) == false)
            {
                MessageBox.Show("觸發價2請輸入數字");
                return;
            }
            strDownTrigger = txtTriggerLess.Text.Trim();

            if (ReservedBox4.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇盤別");
                return;
            }
            nReserved = ReservedBox4.SelectedIndex;

            FUTUREOCOORDER pFutureOCOOrder = new FUTUREOCOORDER();

            pFutureOCOOrder.bstrFullAccount = m_UserAccount;
            pFutureOCOOrder.sNewClose       = (short)nNewClose;
            pFutureOCOOrder.sTradeType      = (short)nPeriod;
            pFutureOCOOrder.bstrStockNo     = strFutureNo;
            pFutureOCOOrder.nQty            = nQty;
            pFutureOCOOrder.bstrPrice       = strPrice;
            pFutureOCOOrder.sBuySell        = (short)nUpBidAsk;
            pFutureOCOOrder.bstrTrigger     = strUpTrigger;
            pFutureOCOOrder.bstrPrice2      = strPrice2;
            pFutureOCOOrder.sBuySell2       = (short)nDownBidAsk;
            pFutureOCOOrder.bstrTrigger2    = strDownTrigger;
            pFutureOCOOrder.sReserved       = (short)nReserved;

            if (OnFutureOCOOrderSignal != null)
            {
                OnFutureOCOOrderSignal(m_UserID, false, pFutureOCOOrder);
            }
        }
Ejemplo n.º 2
0
        private void futureStopLossControl1_OnFutureOCOOrderSignal(string strLogInID, bool bAsyncOrder, FUTUREOCOORDER pOrder)
        {
            string strMessage = "";

            m_nCode = m_pSKOrder.SendFutureOCOOrder(strLogInID, bAsyncOrder, pOrder, out strMessage);

            WriteMessage("期貨OCO委託:" + strMessage);
            SendReturnMessage("Order", m_nCode, "SendFutureOCOOrder");
        }