private void btnDayTrade_Click(object sender, EventArgs e) { if (m_UserAccount == "") { MessageBox.Show("請選擇證券帳號"); return; } string strStockNo; //委託股票代號 int nTradeType = 0; //交易種類,一律為整股 int nOrderType = 0; //委託-0:現;1:資;2:券 int nBidAsk = 0; //0買-1賣出-2無券賣出;出清現賣-資賣-券買 int nQty = 0; int nIsWarrant = 0; //權證 int nClearAllFlag = 0; //*clear all flag: string strClearCancelTime = ""; //*clear time int nFinalClearFlag = 0; //*Final Clear flag string strClearAllOrderPrice = ""; //出清委託價 //當沖條件// string strOrderPrice = ""; //委託價 int nTakeProfitFlag = 0; //停利Flag int nRDOTPPercent = 0; //停利類型 string strTPPercent = ""; //停利百分比 string strTPTrigger = ""; //停利觸發價 int nRDTPMarketPriceType = 0; //停利委託價方式=1:市價 2:限價 3:限價委託價 string strTPOrderPrice = ""; //停利委託價 int nStopLossFlag = 0; //停損Flag int nRDOSLPercent = 0; //停損類型 string strSLPercent = ""; //停損百分比值 string strSLTrigger = ""; //停損觸發價 int nRDSLMarketPriceType = 0; //停損委託價方式=1:市價 2:限價 3:限價委託價 string strSLOrderPrice = ""; //停損委託價 int nClearAllPriceType = 0; //出清委託價方式=1:市價 2:限價 if (txtStockNo.Text.Trim() == "") { MessageBox.Show("請輸入商品代碼"); return; } strStockNo = txtStockNo.Text.Trim(); if (boxBidAsk.SelectedIndex < 0) { MessageBox.Show("請選擇買賣別"); return; } nBidAsk = boxBidAsk.SelectedIndex; double dOrderPrice = 0.0; if (double.TryParse(txtOrderPrice.Text.Trim(), out dOrderPrice) == false) { MessageBox.Show("委託價請輸入數字"); return; } strOrderPrice = txtOrderPrice.Text.Trim(); if (int.TryParse(txtQty.Text.Trim(), out nQty) == false) { MessageBox.Show("委託量請輸入數字"); return; } if (ckBoxLoss.Checked) { double dLossPercent = 0.0; double dTriggerLoss = 0.0; nStopLossFlag = 1; if (radioLoss.Checked) {// 1:漲跌幅 0:觸發價 if (double.TryParse(txtLossPercent.Text.Trim(), out dLossPercent) == false) { MessageBox.Show("停損跌幅請輸入數字"); return; } nRDOSLPercent = 1; strSLPercent = txtLossPercent.Text.Trim(); } else if (radioTriggerLoss.Checked) { nRDOSLPercent = 0; if (double.TryParse(txtTriggerLoss.Text.Trim(), out dTriggerLoss) == false) { MessageBox.Show("停損觸發價請輸入數字"); return; } strSLTrigger = txtTriggerLoss.Text.Trim(); } if (radioOrderLoss.Checked) {//flag 0:None 1:市價 2:限價(以選定漲跌停為主) nRDSLMarketPriceType = 2; if (double.TryParse(txtLossOrderPrice.Text.Trim(), out dTriggerLoss) == false) { MessageBox.Show("停損委託價請輸入數字"); return; } strSLOrderPrice = txtLossOrderPrice.Text.Trim(); } else if (radioOrderTypeLoss.Checked) { nRDSLMarketPriceType = 1; } } else { nStopLossFlag = 0; } double dProfitPercent = 0.0; double dTriggerProfit = 0.0; if (ckboxProfit.Checked) { nTakeProfitFlag = 1; if (radioProfit.Checked) {// 1:漲跌幅 0:觸發價 nRDOTPPercent = 1; if (double.TryParse(txtProfitPercent.Text.Trim(), out dProfitPercent) == false) { MessageBox.Show("停利漲幅請輸入數字"); return; } strTPPercent = txtProfitPercent.Text.Trim(); } else if (radioTriggerProfit.Checked) { nRDOTPPercent = 0; if (double.TryParse(txtTriggerProfit.Text.Trim(), out dTriggerProfit) == false) { MessageBox.Show("停損觸發價請輸入數字"); return; } strTPTrigger = txtTriggerProfit.Text.Trim(); } if (radioOrderProfit.Checked) {//flag 0:None 1:市價 2:限價(以選定漲跌停為主) nRDTPMarketPriceType = 2; if (double.TryParse(txtProfitOrderPrice.Text.Trim(), out dTriggerProfit) == false) { MessageBox.Show("停利委託價請輸入數字"); return; } strTPOrderPrice = txtProfitOrderPrice.Text.Trim(); } else if (RadioOrderTypeProfit.Checked) { nRDTPMarketPriceType = 1; } } else { nTakeProfitFlag = 0; } if (CkBoxClear1.Checked) { nClearAllFlag = 1; strClearCancelTime = boxHr1.Text.Trim() + boxMin1.Text.Trim(); if (radioClearType.Checked) { nClearAllPriceType = 1; } else if (radioOrderClear1.Checked) { nClearAllPriceType = 2; if (double.TryParse(txtClearOrder.Text.Trim(), out dTriggerProfit) == false) { MessageBox.Show("出清委託價請輸入數字"); return; } strClearAllOrderPrice = txtClearOrder.Text.Trim(); } } else { nClearAllFlag = 0; } if (ckBoxFinal.Checked) { nFinalClearFlag = 1; } else { nFinalClearFlag = 0; } STOCKSTRATEGYORDER pStockOrder = new STOCKSTRATEGYORDER(); pStockOrder.bstrFullAccount = m_UserAccount; pStockOrder.bstrStockNo = strStockNo; pStockOrder.nBuySell = nBidAsk; pStockOrder.nQty = nQty; //tockOrder.sIsWarrant = (short)nIsWarrant; pStockOrder.bstrOrderPrice = strOrderPrice; pStockOrder.nTakeProfitFlag = nTakeProfitFlag; pStockOrder.nRDOTPPercent = nRDOTPPercent; pStockOrder.bstrTPPercent = strTPPercent; pStockOrder.bstrTPTrigger = strTPTrigger; pStockOrder.nRDTPMarketPriceType = nRDTPMarketPriceType; pStockOrder.bstrTPOrderPrice = strTPOrderPrice; pStockOrder.nStopLossFlag = nStopLossFlag; pStockOrder.nRDOSLPercent = nRDOSLPercent; pStockOrder.bstrSLPercent = strSLPercent; pStockOrder.bstrSLTrigger = strSLTrigger; pStockOrder.nRDSLMarketPriceType = nRDSLMarketPriceType; pStockOrder.bstrSLOrderPrice = strSLOrderPrice; pStockOrder.nClearAllFlag = nClearAllFlag; pStockOrder.bstrClearCancelTime = strClearCancelTime; pStockOrder.nClearAllPriceType = nClearAllPriceType; pStockOrder.bstrClearAllOrderPrice = strClearAllOrderPrice; pStockOrder.nFinalClearFlag = nFinalClearFlag; if (OnStockStrategyDayTradeSignal != null) { OnStockStrategyDayTradeSignal(m_UserID, false, pStockOrder); } }
private void StockStrategyOrderControl1_OnStockStrategyDayTradeSignal(string strLogInID, bool bAsyncOrder, STOCKSTRATEGYORDER pOrder) { string strMessage = ""; m_nCode = m_pSKOrder.SendStockStrategyDayTrade(strLogInID, bAsyncOrder, pOrder, out strMessage); WriteMessage("證券智動單-當沖組合:" + strMessage); SendReturnMessage("Order", m_nCode, "StockStrategyDayTrade"); }