コード例 #1
0
 private void btnPzEditSave_Click(object sender, EventArgs e)
 {
     try
     {
         this._commPz = new AutoTradePzCommand();
         this._commPz.RefNo = this._refNo;
         this._commPz.Symbol = this._symbol;
         this._commPz.CommandType = "EDIT";
         this._commPz.Items = new List<AutoTradePzItem>();
         AutoTradePzItem autoTradePzItem = new AutoTradePzItem();
         autoTradePzItem.RefNo = this._refNo;
         autoTradePzItem.TransNo = this._tranNo;
         autoTradePzItem.BuyPrice = Convert.ToDecimal(this.tbPzEditPrice.Text);
         autoTradePzItem.BuyVolume = Convert.ToInt64(this.tbPzEditVolume.Text.Replace(",", ""));
         long num;
         long.TryParse(this.tbPzEditMVol.Text.Replace(",", ""), out num);
         autoTradePzItem.MatchedVol = num;
         decimal d;
         decimal.TryParse(this.tbPzEditMAvg.Text, out d);
         autoTradePzItem.MatchedVal = num * d;
         CultureInfo cultureInfo = new CultureInfo("en-US");
         autoTradePzItem.SendDate = ((num > 0L) ? DateTime.Now.ToString("yyyyMMdd") : "");
         if (autoTradePzItem.BuyVolume <= 0L)
         {
             this.ShowMessageBox("Invalid Volume", frmOrderFormConfirm.OpenStyle.Error, this.tbPzEditVolume);
         }
         else if (autoTradePzItem.MatchedVol < 0L)
         {
             this.ShowMessageBox("Invalid Matched Volume", frmOrderFormConfirm.OpenStyle.Error, this.tbPzEditMVol);
         }
         else if (autoTradePzItem.MatchedVol > autoTradePzItem.BuyVolume)
         {
             this.ShowMessageBox("Invalid Matched Volume", frmOrderFormConfirm.OpenStyle.Error, this.tbPzEditMVol);
         }
         else if (autoTradePzItem.MatchedVol > 0L && autoTradePzItem.MatchedVal <= 0m)
         {
             this.ShowMessageBox("Invalid Avg", frmOrderFormConfirm.OpenStyle.Error, this.tbPzEditMAvg);
         }
         else
         {
             this._commPz.Items.Add(autoTradePzItem);
             string orderParam = string.Concat(new object[]
             {
                 "Pricing zone : Edit ",
                 "\nRefNo : ‘",
                 autoTradePzItem.RefNo,
                 "’",
                 "\nTransNo : ",
                 autoTradePzItem.TransNo
             });
             this.ShowOrderFormConfirm("Confirm to send?", orderParam, frmOrderFormConfirm.OpenStyle.ConfirmSendNew);
         }
     }
     catch (Exception ex)
     {
         this.ShowError("btnPzEditSave_Click", ex);
     }
 }
コード例 #2
0
 private void btnPzSimulate_Click(object sender, EventArgs e)
 {
     try
     {
         this._commandPz = new AutoTradePzCommand();
         decimal d = Convert.ToDecimal(this.tbPzBudget.Text.Replace(",", ""));
         string text = this.cbPzStock.Text.Trim();
         decimal num = Convert.ToDecimal(this.tbPzStartPrice.Text);
         decimal num2 = Convert.ToDecimal(this.tbPzPChg.Text);
         int num3 = Convert.ToInt32(this.tbPzSegment.Text);
         int num4 = num3;
         StockList.StockInformation stockInformation = ApplicationInfo.StockInfo[text];
         if (stockInformation.Number <= 0)
         {
             this.ShowMessageBox("Invalid Symbol!", frmOrderFormConfirm.OpenStyle.Error, this.cbPzStock);
         }
         else
         {
             decimal num5 = num;
             decimal spreadPrice = Utilities.GetSpreadPrice(num, stockInformation.PriorPrice, stockInformation.IsCheckSpread);
             if (num % spreadPrice != 0m)
             {
                 num5 -= num % spreadPrice;
             }
             decimal num6 = 0m;
             long num7 = 0L;
             this.gridPzSimm.Rows = num3 + 1;
             long num8;
             RecordItem recordItem;
             for (int i = 0; i < num3; i++)
             {
                 decimal d2 = d / num4;
                 num4--;
                 d2 -= d2 * ApplicationInfo.UserCommVAT;
                 num8 = (long)(d2 / num5);
                 if (num8 % (long)stockInformation.BoardLot != 0L)
                 {
                     num8 -= num8 % (long)stockInformation.BoardLot;
                 }
                 decimal num9 = num8 * num5;
                 num9 += num9 * ApplicationInfo.UserCommVAT;
                 d -= num9;
                 recordItem = this.gridPzSimm.Records(i);
                 recordItem.Fields("no").Text = i + 1;
                 recordItem.Fields("price").Text = Utilities.PriceFormat(num5);
                 recordItem.Fields("volume").Text = num8;
                 recordItem.Fields("budget").Text = num9;
                 recordItem.Fields("volume").FontColor = MyColor.UnChgColor;
                 recordItem.Fields("budget").FontColor = Color.Cyan;
                 spreadPrice = Utilities.GetSpreadPrice(num5 - 0.01m, stockInformation.PriorPrice, stockInformation.IsCheckSpread);
                 num5 -= num5 * num2 / 100m;
                 num5 -= num5 % spreadPrice;
                 num7 += num8;
                 num6 += num9;
             }
             recordItem = this.gridPzSimm.Records(this.gridPzSimm.Rows - 1);
             recordItem.Fields("no").Text = "Avg";
             recordItem.Fields("price").Text = ((num7 > 0L) ? Utilities.PriceFormat(num6 / num7, 4) : "0");
             recordItem.Fields("volume").Text = num7;
             recordItem.Fields("budget").Text = num6;
             recordItem.Fields("no").FontColor = Color.Cyan;
             recordItem.Fields("volume").FontColor = MyColor.UnChgColor;
             recordItem.Fields("volume").FontStyle = FontStyle.Bold;
             recordItem.Fields("budget").FontColor = Color.Cyan;
             recordItem.BackColor = Color.DimGray;
             this.gridPzSimm.Redraw();
             decimal num10 = Convert.ToDecimal(this.tbPzBudget.Text.Replace(",", ""));
             this._commandPz.UserId = ApplicationInfo.UserLoginID;
             this._commandPz.Account = ApplicationInfo.AccInfo.CurrentAccount;
             this._commandPz.CustType = ApplicationInfo.AccInfo.Items[ApplicationInfo.AccInfo.CurrentAccount].PcFlag;
             this._commandPz.Symbol = text;
             this._commandPz.CommandType = "ADD";
             this._commandPz.Budget = (long)num10;
             this._commandPz.PChg = num2;
             this._commandPz.StartPrice = num;
             this._commandPz.Segment = this.gridPzSimm.Rows - 1;
             this._commandPz.Items = new List<AutoTradePzItem>();
             num8 = 0L;
             for (int j = 0; j < this.gridPzSimm.Rows - 1; j++)
             {
                 recordItem = this.gridPzSimm.Records(j);
                 if (!string.IsNullOrEmpty(recordItem.Fields("no").Text.ToString()))
                 {
                     decimal buyPrice;
                     decimal.TryParse(recordItem.Fields("price").Text.ToString(), out buyPrice);
                     long.TryParse(recordItem.Fields("volume").Text.ToString().Replace(",", ""), out num8);
                     decimal.TryParse(recordItem.Fields("budget").Text.ToString().Replace(",", ""), out num10);
                     if (num8 <= 0L)
                     {
                         this.ShowMessageBox("The budget is not enough!", frmOrderFormConfirm.OpenStyle.Error, this.tbPzBudget);
                         break;
                     }
                     AutoTradePzItem item = new AutoTradePzItem(j + 1, buyPrice, num8, num10, this._commandPz.UserId, this._commandPz.Account, this._commandPz.CustType, this._commandPz.Symbol);
                     this._commandPz.Items.Add(item);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         this.ShowError("btnPzSimulate_Click", ex);
     }
 }