private void btnAllCleanOutAsync_Click(object sender, EventArgs e) { if (m_UserAccount == "") { MessageBox.Show("請選擇證券帳號"); return; } string strStockNo; //委託股票代號 int nTradeType; //交易種類,一律為整股 int nOrderType; //委託-0:現;1:資;2:券 int nBidAsk; //0買-1賣出-2無券賣出;出清現賣-資賣-券買 string strOrderPrice = ""; // int nQty; int nIsWarrant; //權證 int nClearAllFlag; //*clear all flag string strClearCancelTime = ""; //*clear time int nFinalClearFlag; //*Final Clear flag string strClearAllOrderPrice = ""; //出清委託價 //出清條件// int nLTEFlag; //LTE flag string strLTETriggerPrice = ""; //LTE string strLTEOrderPrice = ""; //LTE int nLTEMarketPrice = 0; //Market Price flag int nGTEFlag; //BTE flag string strGTETriggerPrice = ""; //BTE string strGTEOrderPrice = ""; //BTE int nGTEMarketPrice = 0; //BTE Market Price flag int nTimeClearMarketPrice = 0; //Time Clear Market Price flag1:市價 2:限價 if (txtStockNo2.Text.Trim() == "") { MessageBox.Show("請輸入商品代碼"); return; } strStockNo = txtStockNo2.Text.Trim(); if (boxBidAsk2.SelectedIndex < 0) { MessageBox.Show("請選擇買賣別"); return; } nBidAsk = boxBidAsk2.SelectedIndex; if (boxOrderType.SelectedIndex < 0) { MessageBox.Show("請選擇委託別"); return; } nOrderType = boxOrderType.SelectedIndex; double dOrderPrice = 0.0; if (int.TryParse(txtQty2.Text.Trim(), out nQty) == false) { MessageBox.Show("委託量請輸入數字"); return; } if (boxGTE.Checked) { double dOrderGTE = 0.0; nGTEFlag = 1; if (double.TryParse(txtGTEPrice.Text.Trim(), out dOrderGTE) == false) { MessageBox.Show("請輸入成交價大於條件-數字"); return; } strGTETriggerPrice = txtGTEPrice.Text.Trim(); if (radioGTEOrder.Checked) {// 1:漲跌幅 0:觸發價 nGTEMarketPrice = 0; if (double.TryParse(txtGTEOrder.Text.Trim(), out dOrderGTE) == false) { MessageBox.Show("請輸入成交價大於條件-委託價"); return; } strGTEOrderPrice = txtGTEOrder.Text.Trim(); } else if (radioGTEOrderType.Checked) { nGTEMarketPrice = 1; } } else { nGTEFlag = 0; } double dLTEPrice = 0.0; double dTriggerPrice = 0.0; if (boxLTE.Checked) { nLTEFlag = 1; if (double.TryParse(txtLTEPrice.Text.Trim(), out dLTEPrice) == false) { MessageBox.Show("請輸入成交價小於條件-數字"); return; } strLTETriggerPrice = txtLTEPrice.Text.Trim(); if (radioLTEOrder.Checked) {// 1:漲跌幅 0:觸發價 nLTEMarketPrice = 0; if (double.TryParse(txtLTEOrder.Text.Trim(), out dTriggerPrice) == false) { MessageBox.Show("請輸入成交價小於條件-委託價"); return; } strLTEOrderPrice = txtLTEOrder.Text.Trim(); } else if (radioLTEOrderType.Checked) { nLTEMarketPrice = 1; } } else { nLTEFlag = 0; } if (boxClearOut2.Checked) { nClearAllFlag = 1; strClearCancelTime = boxHr2.Text.Trim() + boxMin2.Text.Trim(); string strHr2 = boxHr2.Text.Trim(); int nHrCancelTime = int.Parse(strHr2) * 10000; string strMin2 = boxMin2.Text.Trim(); int nMinCancelTime = int.Parse(strMin2) * 100; if (nHrCancelTime + nMinCancelTime > 132000) { MessageBox.Show("選擇出清時間已超過13:20,請重新選擇"); return; } if (radioClearType2.Checked) { nTimeClearMarketPrice = 1; } else if (radioClearOrder2.Checked) { nTimeClearMarketPrice = 2; if (double.TryParse(txtClearOrder2.Text.Trim(), out dTriggerPrice) == false) { MessageBox.Show("出清委託價請輸入數字"); return; } strClearAllOrderPrice = txtClearOrder2.Text.Trim(); } } else { nClearAllFlag = 0; } if (ckBoxFinal2.Checked) { nFinalClearFlag = 1; } else { nFinalClearFlag = 0; } STOCKSTRATEGYORDEROUT pStockOrder = new STOCKSTRATEGYORDEROUT(); pStockOrder.bstrFullAccount = m_UserAccount; pStockOrder.bstrStockNo = strStockNo; pStockOrder.nBuySell = nBidAsk; pStockOrder.nOrderType = nOrderType; //pStockOrder.bstrOrderPrice = strOrderPrice; pStockOrder.nQty = nQty; //pStockOrder.sIsWarrant = (short)nIsWarrant; pStockOrder.nLTEFlag = nLTEFlag; pStockOrder.bstrLTETriggerPrice = strLTETriggerPrice; pStockOrder.nLTEMarketPrice = nLTEMarketPrice; pStockOrder.bstrLTEOrderPrice = strLTEOrderPrice; pStockOrder.nGTEFlag = nGTEFlag; pStockOrder.bstrGTETriggerPrice = strGTETriggerPrice; pStockOrder.nGTEMarketPrice = nGTEMarketPrice; pStockOrder.bstrGTEOrderPrice = strGTEOrderPrice; pStockOrder.nClearAllFlag = nClearAllFlag; pStockOrder.bstrClearCancelTime = strClearCancelTime; pStockOrder.nClearAllPriceType = nTimeClearMarketPrice;//[-0306-] pStockOrder.bstrClearAllOrderPrice = strClearAllOrderPrice; pStockOrder.nFinalClearFlag = nFinalClearFlag; if (OnStockStrategyAllCleanOutSignal != null) { OnStockStrategyAllCleanOutSignal(m_UserID, true, pStockOrder); } }
private void StockStrategyOrderControl1_OnStockStrategyAllCleanOutSignal(string strLogInID, bool bAsyncOrder, STOCKSTRATEGYORDEROUT pOrder) { string strMessage = ""; m_nCode = m_pSKOrder.SendStockStrategyClear(strLogInID, bAsyncOrder, pOrder, out strMessage); WriteMessage("證券智動單-出清策略:" + strMessage); SendReturnMessage("Order", m_nCode, "StockStrategyAllCleanOut"); }