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); } }
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"); }