예제 #1
0
		public byte[] tradeconferm_Mod(MS_OM_REQUEST_TR obj)//,int qty,int rem)
		{

			var obj1 = new MS_TRADE_CONFIRM_TR()
			{

				TransactionCode = IPAddress.NetworkToHostOrder((short)(20222)),
				ResponseOrderNumber = obj.OrderNumber,

				Contr_dec_tr_Obj =
				{
					InstrumentName = obj.Contr_dec_tr_Obj.InstrumentName,
					Symbol = obj.Contr_dec_tr_Obj.Symbol,
					ExpiryDate = obj.Contr_dec_tr_Obj.ExpiryDate,
					StrikePrice = obj.Contr_dec_tr_Obj.StrikePrice,
					OptionType = obj.Contr_dec_tr_Obj.OptionType,

				},
				AccountNumber = obj.AccountNumber,
				Buy_SellIndicator = obj.Buy_SellIndicator,
				DisclosedVolume = obj.DisclosedVolume,
				FillQuantity =obj.Volume,

				Price =obj.Price,
				OpenClose = obj.Open_Close,
				TraderId = obj.TraderId,
				BrokerId = obj.BrokerId,
				Token = obj.TokenNo,
				VolumeFilledToday = obj.VolumeFilledToday,
				RemainingVolume =obj.TotalVolumeRemaining,
				FillNumber = IPAddress.NetworkToHostOrder(FillNumber),

				FillPrice=obj.Price,

			};
			FillNumber += 1;
			//Console.WriteLine ("FillQuantity1  "+IPAddress.HostToNetworkOrder(obj.Volume));
			Console.WriteLine ("Buy_SellIndicator 20222 = "+IPAddress.HostToNetworkOrder(obj.Buy_SellIndicator)+" price :"+IPAddress.HostToNetworkOrder(obj1.FillPrice));
			//	sendbuffer (Logic.Instance.GetPF (tradeconferm_manual2(obj)));

			//obj1.FillQuantity = IPAddress.HostToNetworkOrder (25);
			return DataPacket.RawSerialize(obj1);
		}
예제 #2
0
        public byte[] tradeconfermioc2ndleg(MS_SPD_OE_REQUEST obj)
        {

            var obj1 = new MS_TRADE_CONFIRM_TR()
            {

                TransactionCode = IPAddress.NetworkToHostOrder((short)(20222)),
                ResponseOrderNumber = obj.OrderNumber1,

                Contr_dec_tr_Obj =
                {
                    InstrumentName = obj.leg2.ms_oe_obj.InstrumentName,
                    Symbol = obj.leg2.ms_oe_obj.Symbol,
                    ExpiryDate = obj.leg2.ms_oe_obj.ExpiryDate,
                    StrikePrice = obj.leg2.ms_oe_obj.StrikePrice,
                    OptionType = obj.leg2.ms_oe_obj.OptionType,

                },
                AccountNumber = obj.AccountNumber1,
				Buy_SellIndicator = obj.leg2.BuySell2,
                DisclosedVolume = obj.DisclosedVolRemaining1,
                FillQuantity = obj.leg2.Volume2,
                Price = obj.leg2.Price2,
                OpenClose = obj.leg2.OpenClose2,
                TraderId = obj.TraderId1,
                BrokerId = obj.BrokerId1,
                Token = obj.leg2.token,
                VolumeFilledToday = obj.leg2.Volume2,

                RemainingVolume = obj.leg2.TotalVolRemaining2,
                FillNumber = IPAddress.NetworkToHostOrder(++tradectfillno),
                LogTime = (int)Logic.Instance.ConvertToTimestamp(System.DateTime.Now),
                FillPrice = obj.leg2.Price2,
                GoodTillDate = obj.GoodTillDate1,
                Timestamp = 0,
                Reserved = obj.obj_add_order_flg.Reserved1,
                Timestamp1 = 0,
                Timestamp2 = 0,


            };
			Console.WriteLine ("FillQuantity1  "+IPAddress.HostToNetworkOrder(obj.Volume1));
			Console.WriteLine ("FillQuantity2  "+obj.Volume1);
            return DataPacket.RawSerialize(obj1);
        }
예제 #3
0
        public byte[] tradeconferm(MS_OM_REQUEST_TR obj)
        {

            var obj1 = new MS_TRADE_CONFIRM_TR()
            {

                TransactionCode = IPAddress.NetworkToHostOrder((short)(20222)),
                ResponseOrderNumber = obj.OrderNumber,

                Contr_dec_tr_Obj =
                {
                    InstrumentName = obj.Contr_dec_tr_Obj.InstrumentName,
                    Symbol = obj.Contr_dec_tr_Obj.Symbol,
                    ExpiryDate = obj.Contr_dec_tr_Obj.ExpiryDate,
                    StrikePrice = obj.Contr_dec_tr_Obj.StrikePrice,
                    OptionType = obj.Contr_dec_tr_Obj.OptionType,

                },
                AccountNumber = obj.AccountNumber,
                Buy_SellIndicator = obj.Buy_SellIndicator,
                DisclosedVolume = obj.DisclosedVolume,
                FillQuantity = obj.Volume,
                Price = obj.Price,
                OpenClose = obj.Open_Close,
                TraderId = obj.TraderId,
                BrokerId = obj.BrokerId,
                Token = obj.TokenNo,
                VolumeFilledToday = obj.VolumeFilledToday,
                RemainingVolume = obj.TotalVolumeRemaining
            };
			Console.WriteLine ("FillQuantity1  "+IPAddress.HostToNetworkOrder(obj.Volume));
			Console.WriteLine ("FillQuantity2  "+obj.Volume);
            return DataPacket.RawSerialize(obj1);
        }
예제 #4
0
        public void tradeconfermiocistleg(MS_SPD_OE_REQUEST obj) // 
        // public byte[] tradeconfermiocistleg(MS_SPD_OE_REQUEST obj)
        {
			Console.WriteLine ("IPAddress.NetworkToHostOrder(obj.Volume1)"+IPAddress.NetworkToHostOrder(obj.Volume1));
            int LotCount = IPAddress.NetworkToHostOrder(obj.Volume1) / 25;//

            var obj1 = new MS_TRADE_CONFIRM_TR()
            {

                TransactionCode = IPAddress.NetworkToHostOrder((short)(20222)),
                ResponseOrderNumber = obj.OrderNumber1,

                Contr_dec_tr_Obj =
                {
                    InstrumentName = obj.ms_oe_obj.InstrumentName,
                    Symbol = obj.ms_oe_obj.Symbol,
                    ExpiryDate = obj.ms_oe_obj.ExpiryDate,
                    StrikePrice = obj.ms_oe_obj.StrikePrice,
                    OptionType = obj.ms_oe_obj.OptionType,
                },
                AccountNumber = obj.AccountNumber1,

                Buy_SellIndicator = obj.BuySell1,
                DisclosedVolume = obj.DisclosedVolRemaining1,
				FillQuantity = obj.Volume1,//
                Price = obj.Price1,
                OpenClose = obj.OpenClose1,
                TraderId = obj.TraderId1,
                BrokerId = obj.BrokerId1,
                Token = obj.Token1,
                VolumeFilledToday = obj.VolumeFilledToday1,
                RemainingVolume = obj.TotalVolRemaining1,
                FillNumber = IPAddress.NetworkToHostOrder(tradectfillno),
                LogTime = (int)Logic.Instance.ConvertToTimestamp(System.DateTime.Now),
                FillPrice = obj.Price1,
                GoodTillDate = obj.GoodTillDate1,
                Timestamp = 0,
                Reserved = obj.obj_add_order_flg.Reserved1,
				Timestamp1 = IPAddress.NetworkToHostOrder(ToEpochTime(DateTime.Now)),
				Timestamp2 = IPAddress.NetworkToHostOrder(ToEpochTime(DateTime.Now)),
                OriginalVolume = obj.Volume1,

            };
			Console.WriteLine ("FillQuantity1  "+IPAddress.HostToNetworkOrder(obj.Volume1));
			Console.WriteLine ("FillQuantity2  "+obj.Volume1);
            var VolFillToday = 0;
            while (LotCount > 0)//
            {
                VolFillToday = VolFillToday + IPAddress.HostToNetworkOrder(obj1.FillQuantity);
                obj1.VolumeFilledToday = IPAddress.HostToNetworkOrder(VolFillToday);
                sendbuffer(Logic.Instance.GetPF(DataPacket.RawSerialize(obj1)));
                obj1.FillPrice = IPAddress.HostToNetworkOrder(IPAddress.NetworkToHostOrder(obj.Price1) + 50);
                --LotCount;
            }
            // return DataPacket.RawSerialize(obj1);
        }
예제 #5
0
		public byte[] tradeconferm_manual2(MS_OE_RESPONSE_TR obj)
		{
			var obj1 = new MS_TRADE_CONFIRM_TR()
			{

				TransactionCode = IPAddress.NetworkToHostOrder((short)(20222)),
				ResponseOrderNumber = obj.OrderNumber,

				Contr_dec_tr_Obj =
				{
					InstrumentName = obj.Contr_dec_tr_Obj.InstrumentName,
					Symbol = obj.Contr_dec_tr_Obj.Symbol,
					ExpiryDate = obj.Contr_dec_tr_Obj.ExpiryDate,
					StrikePrice = obj.Contr_dec_tr_Obj.StrikePrice,
					OptionType = obj.Contr_dec_tr_Obj.OptionType,

				},
				AccountNumber = obj.AccountNumber,
				Buy_SellIndicator = obj.Buy_SellIndicator,
				DisclosedVolume = obj.DisclosedVolume,
				FillQuantity =IPAddress.NetworkToHostOrder(IPAddress.HostToNetworkOrder(obj.Volume)-25),

				Price =IPAddress.NetworkToHostOrder(R_obj.Next(10000,100000)), //obj.Price,
				OpenClose = obj.Open_Close,
				TraderId = obj.TraderId,
				BrokerId = obj.BrokerId,
				Token = obj.TokenNo,
				VolumeFilledToday = obj.VolumeFilledToday,
				RemainingVolume = obj.TotalVolumeRemaining,
				FillNumber = IPAddress.NetworkToHostOrder(FillNumber),

				FillPrice=IPAddress.NetworkToHostOrder(R_obj.Next(10000,100000)),

			};
			FillNumber += 1;
			//Console.WriteLine ("FillQuantity1  "+IPAddress.HostToNetworkOrder(obj.Volume));
			Console.WriteLine ("Buy_SellIndicator 20222 = "+IPAddress.HostToNetworkOrder(obj.Buy_SellIndicator));

			return DataPacket.RawSerialize(obj);
		}
        //double trp1;
        //double trp11;
        //double trp2;
        //double trp22;
        public void Fillqty_ingrd(int tokenno, int buy_sell,MS_TRADE_CONFIRM_TR obj)
        {
            try
            {

                bool sp;
                string strbuysell = buy_sell == 1 ? "Buy" : "Sell";
                string Token1Side,Token2Side, Token3Side;

                Client.Csv_Struct _lotsize = new Csv_Struct();
                object ob = new object();
                lock (ob)
                {
                   // DataGridViewRow row=null;
                    DataGridViewRow row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token1"].Value.ToString().Equals(Convert.ToString(tokenno))).FirstOrDefault();
                    //foreach(DataGridViewRow row1 in DGV1.Rows)
                    //{
                    //    if(row1.Cells["Token1"].Value.ToString()==Convert.ToString(tokenno))
                    //    {
                    //        row = row1;
                    //        break;
                    //    }
                    //}

                    if (row == null)
                    {
                        row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token2"].Value.ToString().Equals(Convert.ToString(Convert.ToString(tokenno)))).FirstOrDefault();
                        if (row == null)
                       {
                           row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token3"].Value.ToString().Equals(Convert.ToString(Convert.ToString(tokenno)))).FirstOrDefault();
                           if (row == null)
                           {
                               return;
                           }
                           }
            //return;
                    }
                    //var v = Global.Instance.Ratio.Where(a => a.Key == (tokenno)).Select(b => b.Value).ToList();
                    //val = Convert.ToInt32(v.FirstOrDefault().ToString());
                    var pf = Convert.ToInt32(DGV1.Rows[row.Index].Cells["PF"].Value);
                    var val1 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio1"].Value);
                    var val2 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio2"].Value);
                    var val3 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio3"].Value);
                   int near_tok1= Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token1"].Value);
                   int far_tok2 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value);
                   int _tok3 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token3"].Value);
                   //  int buy= Convert.ToInt32(DGV1.Rows[row.Index].Cells["Buy"].Value);
                   //int sell = Convert.ToInt32(DGV1.Rows[row.Index].Cells["Sell"].Value);
                    if (Holder._DictLotSize.ContainsKey(tokenno) == false || tokenno != 0)
                    {
                        Holder._DictLotSize.TryAdd(tokenno, new Csv_Struct()
                        {
                            lotsize = CSV_Class.cimlist.Where(q => q.Token == tokenno).Select(a => a.BoardLotQuantity).First()
                        }
                        );
                    }
                     query1 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token1"].Value)).Select(a => new SelectListItem
                    {
                        TokenNo = Convert.ToInt32(a.Field<Int32>("Token")),
                        BuyAvg = a.Field<double>("BuyAvg"),
                        SellAvg = a.Field<double>("SellAvg")
                    }).ToList();
                     var foundRow = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value)).Count()>0;
                    //if(foundRow != null) {
                    ////You have it ...
                    //     }

                 //   if(Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value)))
                    if (foundRow ==true)
                    {
                     query2 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value)).Select(a => new SelectListItem
                    {
                        TokenNo = a.Field<Int32>("Token"),
                        BuyAvg = a.Field<double>("BuyAvg"),
                        SellAvg = a.Field<double>("SellAvg")
                    }).ToList();
                    }

                    var foundRow2 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token3"].Value)).Count() > 0;
                    //if(foundRow != null) {
                    ////You have it ...
                    //     }

                    //   if(Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value)))
                    if (foundRow2 == true)
                    {
                        query3 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token3"].Value)).Select(a => new SelectListItem
                        {
                            TokenNo = a.Field<Int32>("Token"),
                            BuyAvg = a.Field<double>("BuyAvg"),
                            SellAvg = a.Field<double>("SellAvg")
                        }).ToList();
                    }

                    _lotsize = Holder._DictLotSize[tokenno];

                    if (near_tok1 == tokenno)
                    {

                         if (strbuysell == Convert.ToString(DGV1.Rows[row.Index].Cells["Tok1B_S"].Value))//create
                        {

                            DGV1.Rows[row.Index].Cells["TRP1"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;
                            sp = true;

                            Token2Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok2B_S"].Value);
                            Token3Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok3B_S"].Value);

                           var ob_o = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), strbuysell.ToUpper()) && (a.Field<string>("Status") == "Traded")).Sum(a => Convert.ToInt32(a.Field<string>("Volume")));
                          // DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value = Convert.ToInt32(ob_o) / (Convert.ToInt32(_lotsize.lotsize) * (Convert.ToInt32(val1)));

                           double ob1 = Convert.ToDouble(ob_o);
                           double rev_ratio = _lotsize.lotsize * val1;
                           DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value = Math.Round(ob1 / rev_ratio, 2);

                             //=========================================================================

                          //  int TrdqtyBuy = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), strbuysell.ToUpper()) && (a.Field<string>("Status") == "Traded")).ToList().Count;

                         //   DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value = TrdqtyBuy;

                             //=======================================================

                            double Result1 = strbuysell == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                            double Result2 = Token2Side == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                             double Result3 =  Token3Side == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                             DGV1.Rows[row.Index].Cells["ATP(B)"].Value =

                           Math.Round(  Result1
                                 +
                                 Result2
                                 +
                                Result3,3);

                        }
                        else //reverse
                        {

                            DGV1.Rows[row.Index].Cells["TRP11"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;

                            var ob_o = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), strbuysell.ToUpper()) && (a.Field<string>("Status") == "Traded")).Sum(a => Convert.ToInt32(a.Field<string>("Volume")));
                            double ob1 = Convert.ToDouble(ob_o);
                            double cr_ratio = _lotsize.lotsize * val2;
                            DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value = Math.Round( ob1 / cr_ratio,2);
                            // DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value = Convert.ToInt32(ob_o) / (Convert.ToInt32(_lotsize.lotsize) * (Convert.ToInt32(val2)));

                             //==============================================

                           // int TrdqtySel = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), strbuysell.ToUpper()) && (a.Field<string>("Status") == "Traded")).ToList().Count;

                         //  DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value = TrdqtySel;
                             //========================================================================

                             Token2Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok2B_S"].Value) =="Buy" ? "Sell" : "Buy";
                             Token3Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok3B_S"].Value)=="Buy" ? "Sell" : "Buy";

                             sp = false;

                            double ResultT1 = strbuysell == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                            double ResultT2 = Token2Side == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                             double ResultT3 = Token3Side == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                             DGV1.Rows[row.Index].Cells["ATP(S)"].Value =
                               Math.Round(  ResultT1

                               +
                               ResultT2
                               +
                               ResultT3,3);

                        }

                        //====== ========  ========  ======  ========= =============  ====== ========= =============  ====== ====== ========  ========  ==== ====  ======= ========== ==  == ==  ==  == ==  ==  ==  ==  ==  ==

                    }
                    if (far_tok2 == tokenno)
                    {
                        if (strbuysell == Convert.ToString(DGV1.Rows[row.Index].Cells["Tok2B_S"].Value))//create
                        {

                         DGV1.Rows[row.Index].Cells["TRP2"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;

                            Token1Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok1B_S"].Value);
                            Token3Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok3B_S"].Value);
                            double res1 = Token1Side == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                            double res2 = strbuysell == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                            double res3 = Token3Side == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                            DGV1.Rows[row.Index].Cells["ATP(B)"].Value =
                              Math.Round(   res1
                               +
                              res2
                               +
                               res3,3);

                            sp = true;

                        }
                        else   //reverse
                        {

                            DGV1.Rows[row.Index].Cells["TRP22"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;

                            Token1Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok1B_S"].Value) == "Buy" ? "Sell" : "Buy";
                            Token3Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok3B_S"].Value) == "Buy" ? "Sell" : "Buy";

                            double resS1 = Token1Side == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                            double resS2 = strbuysell == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                            double resS3 = Token3Side == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                            DGV1.Rows[row.Index].Cells["ATP(S)"].Value =
             Math.Round(  resS1

             +
             resS2
             +

             resS3,3);
                            sp = false;

                        }

                        if (Convert.ToString(DGV1.Rows[row.Index].Cells["Strategy_Type"].Value) == "2_LEG")
                        {

                            if (Global.Instance.TradeTrac_dict.ContainsKey(IPAddress.HostToNetworkOrder(obj.Token)))
                            {

                                double trp1 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP1"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP1"].Value) * Convert.ToInt32(val1);
                                double trp11 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP11"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP11"].Value) * Convert.ToInt32(val1);
                                double trp2 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP2"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP2"].Value) * Convert.ToInt32(val2);
                                double trp22 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP22"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP22"].Value) * Convert.ToInt32(val2);

                                trd_obj = new TradeTrac();
                              //  var a = trp1 + trp2;

                           // double    v =v + a;
                                var creat = trp1 + trp2 ;
                               var Rev = trp11 + trp22;
                               int TrdqtyBuy = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), "BUY") && (a.Field<string>("Status") == "Traded")).ToList().Count;

                               int TrdqtySell = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), "SELL") && (a.Field<string>("Status") == "Traded")).ToList().Count;

                                trd_obj = Global.Instance.TradeTrac_dict[near_tok1];
                                trd_obj.ACTUALPRICE = sp == true ? creat : Rev;
                                trd_obj.B_S = IPAddress.HostToNetworkOrder(obj.Buy_SellIndicator);
                                trd_obj.QTy = IPAddress.HostToNetworkOrder(obj.FillQuantity);

                                trd_obj.SYMBOL = Encoding.ASCII.GetString(obj.Contr_dec_tr_Obj.Symbol);
                                trd_obj.TIME = LogicClass.ConvertFromTimestamp(IPAddress.HostToNetworkOrder(obj.LogTime)).ToString("HH:mm:ss.fff");

                                Global.Instance.TradeTrac_dict.AddOrUpdate(IPAddress.HostToNetworkOrder(obj.Token), trd_obj, (k, v1) => trd_obj);

                                //DataRow[] dr = Global.Instance.TradeTracker.Select("PF_ID  = '" + Convert.ToInt32(trd_obj.PF_ID) + "'");
                                DataRow[] dr = Global.Instance.TradeTracker.Select("Unique_id  = '" + ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() +  (IPAddress.HostToNetworkOrder(obj.Token)).ToString() +"'");

                                if (dr.Length > 0)
                                {
                                    dr[0]["PF_ID"] = Convert.ToString(trd_obj.PF_ID);
                                   // dr[0]["B/S"] = trd_obj.B_S == 1 ? "BUY" : "SELL";
                                    dr[0]["B/S"] = sp == true ? "BUY" : "SELL";
                                    //dr[0]["QTY"] = Convert.ToString(trd_obj.QTy);
                                   // dr[0]["QTY"] = trd_obj.B_S == 1 ? Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value) : Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value);
                                    double vo = Convert.ToDouble(IPAddress.HostToNetworkOrder(obj.FillQuantity));
                                    double createratio = Convert.ToDouble(_lotsize.lotsize * val2);
                                    dr[0]["QTY"] = vo / createratio >= Convert.ToDouble(1.0) ? "Complete" : "Partial";
                                    dr[0]["QTY"] = dr[0]["QTY"] + " \t" + Convert.ToString(Math.Round(vo / createratio, 2)); //"1";
                                  //  dr[0]["QTY"] = trd_obj.B_S == 1 ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                   // dr[0]["QTY"] =Convert.ToDecimal(IPAddress.HostToNetworkOrder(obj.FillQuantity)/ (Convert.ToInt32(_lotsize.lotsize) * (Convert.ToInt32(val2)))); //"1";
                                  //  dr[0]["QTY"] = sp == true ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                    dr[0]["ACTUALPRICE"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.ACTUALPRICE), 3));

                                    //dr[0]["GIVENPRICEBUY"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3));
                                    //dr[0]["GIVENPRICESELL"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));

                                    dr[0]["GIVENPRICEBUY"] = sp == true ? Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3)) : "0";
                                    dr[0]["GIVENPRICESELL"] = sp == true ? "0" : Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));

                                    dr[0]["SYMBOL"] = Convert.ToString(trd_obj.SYMBOL);
                                    dr[0]["TIME"] = Convert.ToString(trd_obj.TIME);
                                    dr[0]["Unique_id"] = ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() + (IPAddress.HostToNetworkOrder(obj.Token)).ToString();

                                }
                                else
                                {

                                    BeginInvoke((Action)delegate
                                    {
                                        DataRow dr2 = Global.Instance.TradeTracker.NewRow();
                                        //  dr2["Sno2"] = trd_ob.ToString();

                                        dr2["PF_ID"] = Convert.ToString(trd_obj.PF_ID);
                                        //dr2["B/S"] = trd_obj.B_S == 1 ? "BUY" : "SELL";
                                        dr2["B/S"] = sp == true ? "BUY" : "SELL";

                                        // dr2["GIVENPRICEBUY"] = sp == true ? "BUY" : "SELL";
                                        //  dr2["QTY"] = Convert.ToString(trd_obj.QTy);
                                        //  dr2["QTY"] = trd_obj.B_S == 1 ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                        //dr2["QTY"] = sp == true ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);

                                        double vo = Convert.ToDouble(IPAddress.HostToNetworkOrder(obj.FillQuantity));
                                        double createratio = Convert.ToDouble(_lotsize.lotsize * val2);
                                        dr2["QTY"] = vo / createratio >= Convert.ToDouble(1.0) ? "Complete" : "Partial";
                                        dr2["QTY"] = dr2["QTY"] + " \t" + Convert.ToString(Math.Round(vo / createratio, 2)); //"1";
                                        dr2["ACTUALPRICE"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.ACTUALPRICE), 3));

                                        dr2["GIVENPRICEBUY"] = sp == true ? Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3)) : "0";
                                        dr2["GIVENPRICESELL"] = sp == true ? "0" : Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));

                                        dr2["SYMBOL"] = Convert.ToString(trd_obj.SYMBOL);
                                        dr2["TIME"] = Convert.ToString(trd_obj.TIME);
                                        dr2["Unique_id"] = ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() + (IPAddress.HostToNetworkOrder(obj.Token)).ToString();
                                        Global.Instance.TradeTracker.Rows.Add(dr2);
                                    });
                                        //Trade_Tracker.Instance.DGV.ScrollBars = ScrollBars.Vertical;
                                }
            //================== ================= =============== ========== ========== ====== ==== ===== ===== ===== =======  ====== ============== ==== ==      == == ==  == ==  == == ==  ==

                                double WTC_txt1 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["W_T_C"].Value);
                                if(sp == true)  // crea
                                {
                                    if ((Math.Abs((trd_obj.Given_Price_Buy)) + Math.Abs(WTC_txt1)) < Math.Abs(trd_obj.ACTUALPRICE))
                                    {
                                        DGV1.Rows[row.Index].Cells["WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) + 1;
                                    }

                                    DGV1.Rows[row.Index].Cells["_con_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) + 1;

                                    if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == Convert.ToInt32(WTC_txt.Text) && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))
                                      //  if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == 5 && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))

                                    {
                                        DGV1.Rows[row.Index].Cells["WTC"].Value = 0;
                                        DGV1.Rows[row.Index].Cells["_con_WTC"].Value = 0;
                                      //  DGV1.Rows[row.Index].Cells["Enable"].Value = false;
                                    }
                                    if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) != Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value))
                                    {
                                        DGV1.Rows[row.Index].Cells["WTC"].Value = 0;
                                        DGV1.Rows[row.Index].Cells["_con_WTC"].Value = 0;
                                    }

                                // \\\\ ///

                                }
                                else   // rev
                                {

                                    if ((Math.Abs((trd_obj.Given_Price_Sell)) - Math.Abs(WTC_txt1)) > Math.Abs(trd_obj.ACTUALPRICE))
                                    {
                                        DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) + 1;
                                    }
                                  //  var _T_v = (IPAddress.HostToNetworkOrder(obj.FillPrice) / 100) + trd_obj.ACTUALPRICE;
                                    DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value) + 1;
                                    if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) == Convert.ToInt32(WTC_txt.Text) && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value))
                                      //  if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == 5 && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))

                                    {
                                        DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = 0;
                                        DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = 0;
                                      // DGV1.Rows[row.Index].Cells["Enable"].Value = false;
                                    }

                                    if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) != Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value))
                                    {
                                        DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = 0;
                                        DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = 0;
                                    }

                                }

                                //===============================================================================================================

                            }

                        }
                    }

                    //=================================
                    if (_tok3 == tokenno)
                    {

                        if (strbuysell == Convert.ToString(DGV1.Rows[row.Index].Cells["Tok3B_S"].Value))//create
                        {
                            DGV1.Rows[row.Index].Cells["TRP3"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;

                       //  var t   = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;
                        // DGV1.Rows[row.Index].Cells["TRP3"].Value = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP3"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP3"].Value) + t;

                            Token1Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok1B_S"].Value);
                            Token2Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok2B_S"].Value);
                            double res1 = Token1Side == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                                 double res2 =  Token2Side == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                                      double res3 =   strbuysell == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                                      DGV1.Rows[row.Index].Cells["ATP(B)"].Value =
                                         Math.Round(  res1

                                         +
                                        res2
                                         +
                                       res3,3);

                                      sp = true;

                        }
                        else //reverse
                        {
                        //  var t = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;
                        //  DGV1.Rows[row.Index].Cells["TRP33"].Value = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP33"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP33"].Value) + t;
                          DGV1.Rows[row.Index].Cells["TRP33"].Value = strbuysell == "Buy" ? -IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00 : IPAddress.HostToNetworkOrder(obj.FillPrice) / 100.00;
                            // DGV1.Rows[row.Index].Cells["ATP(S)"].Value = query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1) - (query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2) - (query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3);
                            Token1Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok1B_S"].Value) == "Buy" ?"Sell" : "Buy";
                            Token2Side = Convert.ToString(DGV1.Rows[row.Index].Cells["Tok2B_S"].Value) == "Buy" ? "Sell" : "Buy";

                            double resS1 = Token1Side == "Buy" ? -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) : (query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1));
                                double resS2 =  Token2Side == "Buy" ? -((query2 == null ? 0 : query2.FirstOrDefault().BuyAvg) * Convert.ToInt32(val2)) : ((query2 == null ? 0 : query2.FirstOrDefault().SellAvg) * Convert.ToInt32(val2));
                                    double resS3 = strbuysell == "Buy" ? -((query3 == null ? 0 : query3.FirstOrDefault().BuyAvg) * Convert.ToInt32(val3)) : ((query3 == null ? 0 : query3.FirstOrDefault().SellAvg) * Convert.ToInt32(val3));

                                    DGV1.Rows[row.Index].Cells["ATP(S)"].Value =
                                        Math.Round( resS1

                                       +
                                      resS2
                                       +
                                       resS3,3);

                                    sp = false;

                        }

                        if (Convert.ToString(DGV1.Rows[row.Index].Cells["Strategy_Type"].Value) == "3_LEG")
                        {
                        if (Global.Instance.TradeTrac_dict.ContainsKey(IPAddress.HostToNetworkOrder(obj.Token)))
                        {
                           // double trp13 = Token1Side == "Buy" ? -Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP1"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP1"].Value) : Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP1"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP1"].Value);
                          //  double trp23 = Token2Side == "Buy" ? -Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP2"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP2"].Value) : Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP2"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP2"].Value);
                         //   double trp33 = strbuysell == "Buy" ? -Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP3"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP3"].Value) : Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP3"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP3"].Value);

                            double trp1 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP1"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP1"].Value) * Convert.ToInt32(val1);
                            double trp11 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP11"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP11"].Value) * Convert.ToInt32(val1);
                            double trp2 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP2"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP2"].Value) * Convert.ToInt32(val2);
                            double trp22 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP22"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP22"].Value) * Convert.ToInt32(val2);

                            double trp3 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP3"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP3"].Value) * Convert.ToInt32(val3);
                            double trp33 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["TRP33"].Value == DBNull.Value ? 0 : DGV1.Rows[row.Index].Cells["TRP33"].Value) * Convert.ToInt32(val3);

                            int TrdqtyBuy = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), "BUY") && (a.Field<string>("Status") == "Traded")).ToList().Count;

                            int TrdqtySell = Global.Instance.OrdetTable.AsEnumerable().Where(a => (Convert.ToInt32(a.Field<string>("TokenNo")) == tokenno) && String.Equals(a.Field<string>("Buy_SellIndicator"), "SELL") && (a.Field<string>("Status") == "Traded")).ToList().Count;

                            trd_obj = new TradeTrac();
                            var crea = trp1 + trp2 + trp3;
                            var rev = trp11 + trp22 + trp33;

                            trd_obj = Global.Instance.TradeTrac_dict[near_tok1];
                            trd_obj.ACTUALPRICE = sp == true ? crea : rev;
                            trd_obj.B_S = IPAddress.HostToNetworkOrder(obj.Buy_SellIndicator);
                            trd_obj.QTy = IPAddress.HostToNetworkOrder(obj.FillQuantity);
                            trd_obj.SYMBOL = Encoding.ASCII.GetString(obj.Contr_dec_tr_Obj.Symbol);
                            trd_obj.TIME = LogicClass.ConvertFromTimestamp(IPAddress.HostToNetworkOrder(obj.LogTime)).ToString("HH:mm:ss.fff");

                            Global.Instance.TradeTrac_dict.AddOrUpdate(IPAddress.HostToNetworkOrder(obj.Token), trd_obj, (k, v1) => trd_obj);

                            DataRow[] dr = Global.Instance.TradeTracker.Select("Unique_id  = '" + ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() + (IPAddress.HostToNetworkOrder(obj.Token)).ToString() + "'");

                            if (dr.Length > 0)
                            {
                                dr[0]["PF_ID"] = Convert.ToString(trd_obj.PF_ID);
                                //dr[0]["B/S"] = trd_obj.B_S == 1 ? "BUY" : "SELL";
                                dr[0]["B/S"] = sp == true ? "BUY" : "SELL";

                              //  dr[0]["QTY"] = Convert.ToString(trd_obj.QTy);
                                double vo = Convert.ToDouble(IPAddress.HostToNetworkOrder(obj.FillQuantity));
                                double createratio = Convert.ToDouble(_lotsize.lotsize * val3);
                                dr[0]["QTY"] = vo / createratio >= Convert.ToDouble(1.0) ? "Complete" : "Partial";
                                dr[0]["QTY"] = dr[0]["QTY"] + " \t" + Convert.ToString(Math.Round(vo / createratio, 2)); //"1";

                               // dr[0]["QTY"]  = trd_obj.B_S == 1 ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                               // dr[0]["QTY"] = Convert.ToDecimal(IPAddress.HostToNetworkOrder(obj.OriginalVolume) / (Convert.ToInt32(_lotsize.lotsize) * (Convert.ToInt32(val3))));
                              //  dr[0]["QTY"] = sp == true ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                dr[0]["ACTUALPRICE"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.ACTUALPRICE), 3));

                                dr[0]["GIVENPRICEBUY"] = sp == true ? Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3)) : "0";
                                dr[0]["GIVENPRICESELL"] = sp == true ? "0" : Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));

                                dr[0]["SYMBOL"] = Convert.ToString(trd_obj.SYMBOL);
                                dr[0]["TIME"] = Convert.ToString(trd_obj.TIME);
                                dr[0]["Unique_id"] = ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() + (IPAddress.HostToNetworkOrder(obj.Token)).ToString();
                              // Trade_Tracker.Instance.DGV.Refresh();

                            }
                            else
                            {
                                BeginInvoke((Action)delegate
                                    {
                                        DataRow dr2 = Global.Instance.TradeTracker.NewRow();
                                        //  dr2["Sno2"] = trd_ob.ToString();
                                        dr2["PF_ID"] = Convert.ToString(trd_obj.PF_ID);
                                        //  dr2["B/S"] = trd_obj.B_S == 1 ? "BUY" : "SELL";
                                        dr2["B/S"] = sp == true ? "BUY" : "SELL";
                                        //  dr2["QTY"] = Convert.ToString(trd_obj.QTy);
                                        double vo = Convert.ToDouble(IPAddress.HostToNetworkOrder(obj.FillQuantity));
                                        double createratio = Convert.ToDouble(_lotsize.lotsize * val3);
                                        dr2["QTY"] = vo / createratio >= Convert.ToDouble(1.0) ? "Complete" : "Partial";
                                        dr2["QTY"] = dr2["QTY"] + " \t" + Convert.ToString(Math.Round(vo / createratio, 2)); //"1";

                                        // dr2["QTY"] = trd_obj.B_S == 1 ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                        // dr[0]["QTY"] =Convert.ToDecimal(IPAddress.HostToNetworkOrder(obj.OriginalVolume) / (Convert.ToInt32(_lotsize.lotsize) * (Convert.ToInt32(val3))));                                //dr2["QTY"] = sp == true ? Convert.ToDouble(TrdqtyBuy) : Convert.ToDouble(TrdqtySell);
                                        dr2["ACTUALPRICE"] = Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.ACTUALPRICE), 3));

                                        // dr2["GIVENPRICEBUY"] = trd_obj.B_S == 1 ? Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3)) : "0";
                                        // dr2["GIVENPRICESELL"] = trd_obj.B_S == 1 ? "0" : Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));

                                        dr2["GIVENPRICEBUY"] = sp == true ? Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Buy), 3)) : "0";
                                        dr2["GIVENPRICESELL"] = sp == true ? "0" : Convert.ToString(Math.Round(Convert.ToDouble(trd_obj.Given_Price_Sell), 3));
                                        dr2["SYMBOL"] = Convert.ToString(trd_obj.SYMBOL);
                                        dr2["TIME"] = Convert.ToString(trd_obj.TIME);
                                        dr2["Unique_id"] = ((long)LogicClass.DoubleEndianChange((obj.ResponseOrderNumber))).ToString() + (IPAddress.HostToNetworkOrder(obj.Token)).ToString();
                                        Global.Instance.TradeTracker.Rows.Add(dr2);
                                        //Trade_Tracker.Instance.DGV.Refresh();

                                    });
                            }

                            //================================================================================================================================

                            double WTC_txt1 = Convert.ToDouble(DGV1.Rows[row.Index].Cells["W_T_C"].Value);
                            if (sp == true)  // crea
                            {
                                if ((Math.Abs((trd_obj.Given_Price_Buy)) + Math.Abs(WTC_txt1)) < Math.Abs(trd_obj.ACTUALPRICE))
                                {
                                    DGV1.Rows[row.Index].Cells["WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) + 1;
                                }

                                DGV1.Rows[row.Index].Cells["_con_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) + 1;

                                if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == Convert.ToInt32(WTC_txt.Text) && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))
                                   // if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == 5 && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))

                                {
                                    DGV1.Rows[row.Index].Cells["WTC"].Value = 0;
                                    DGV1.Rows[row.Index].Cells["_con_WTC"].Value = 0;
                                  //  DGV1.Rows[row.Index].Cells["Enable"].Value = false;
                                }
                                if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) != Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value))
                                {
                                    DGV1.Rows[row.Index].Cells["WTC"].Value = 0;
                                    DGV1.Rows[row.Index].Cells["_con_WTC"].Value = 0;
                                }

                            }
                            else   // rev
                            {

                                if ((Math.Abs((trd_obj.Given_Price_Sell)) - Math.Abs(WTC_txt1)) > Math.Abs(trd_obj.ACTUALPRICE))
                                {
                                    DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) + 1;
                                }
                              //  var _T_v = (IPAddress.HostToNetworkOrder(obj.FillPrice) / 100) + trd_obj.ACTUALPRICE;
                                DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value) + 1;

                                if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) == Convert.ToInt32(WTC_txt.Text) && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value))
                                //    if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value) == 5 && Convert.ToInt32(DGV1.Rows[row.Index].Cells["_con_WTC"].Value) == Convert.ToInt32(DGV1.Rows[row.Index].Cells["WTC"].Value))

                                {
                                    DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = 0;
                                    DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = 0;
                                //  DGV1.Rows[row.Index].Cells["Enable"].Value = false;
                                }

                                if (Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_WTC"].Value) != Convert.ToInt32(DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value))
                                {
                                    DGV1.Rows[row.Index].Cells["_sell_WTC"].Value = 0;
                                    DGV1.Rows[row.Index].Cells["_sell_con_WTC"].Value = 0;
                                }

                            }

                            //=====   ===  ==== ===  === ====  === ===  == === ====  =====  == === ===  ===== ====  ===== =====  ==== ==== =====  ====   === === == === ===== ==== ===== ====

                            }
                        }

                    }

                }

            }
            catch (Exception ex)
            {
                Client.LogWriterClass.logwritercls.logs("ErrorValue_check", "Value Check update in gridview" + ex.Message);

            }
        }
        public void FillATP(MS_TRADE_CONFIRM_TR obj)
        {
            try
            {

                DataGridViewRow row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token1"].Value.ToString().Equals(Convert.ToString(IPAddress.HostToNetworkOrder(obj.Token)))).FirstOrDefault();
                if (row == null)
                {
                   // row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token2"].Value.ToString().Equals(Convert.ToString(IPAddress.HostToNetworkOrder(obj.Token)))).FirstOrDefault();
                    return;
                }

                var val1 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio1"].Value);
                var val2 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio2"].Value);
                var val3 = Convert.ToInt32(DGV1.Rows[row.Index].Cells["ratio3"].Value);

                var query1 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token1"].Value)).Select(a => new SelectListItem
                {
                    TokenNo = Convert.ToInt32(a.Field<Int32>("Token")),
                    BuyAvg = a.Field<double>("BuyAvg"),
                    SellAvg = a.Field<double>("SellAvg")
                }).ToList();
                var query2 = Global.Instance.NetBookTable.AsEnumerable().Where(p => p.Field<Int32>("Token") == Convert.ToInt32(DGV1.Rows[row.Index].Cells["Token2"].Value)).Select(a => new SelectListItem
                {
                    TokenNo = a.Field<Int32>("Token"),
                    BuyAvg = a.Field<double>("BuyAvg"),
                    SellAvg = a.Field<double>("SellAvg")
                           }).ToList();

                if (IPAddress.HostToNetworkOrder(obj.Buy_SellIndicator) == 1 )
                {
                    DGV1.Rows[row.Index].Cells["ATP(B)"].Value = -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) + (query2.FirstOrDefault().SellAvg * Convert.ToInt32(val2));
                    DGV1.Rows[row.Index].Cells["ATP(S)"].Value = query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1) - query2.FirstOrDefault().BuyAvg * Convert.ToInt32(val2);

                }
                else
                {
                    DGV1.Rows[row.Index].Cells["ATP(S)"].Value = query1.FirstOrDefault().SellAvg * Convert.ToInt32(val1) - query2.FirstOrDefault().BuyAvg * Convert.ToInt32(val2);
                    DGV1.Rows[row.Index].Cells["ATP(B)"].Value = -(query1.FirstOrDefault().BuyAvg * Convert.ToInt32(val1)) + (query2.FirstOrDefault().SellAvg * Convert.ToInt32(val2));
                }

            }
            catch (Exception ex)
            {
                Client.LogWriterClass.logwritercls.logs("ErrorValuecheckavg", "Value Check update in gridview" + ex.Message);
            }
        }
예제 #8
0
        public void Fillqty_ingrd(int tokenno, int buy_sell, MS_TRADE_CONFIRM_TR obj)
        {
            try
            {
                string strbuysell = buy_sell ==1 ? "Buy":"Sell" ;
                object ob = new object();
                lock (ob)
                {
                    DataGridViewRow row = DGV1.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["Token1"].Value.ToString().Equals(Convert.ToString(tokenno))).FirstOrDefault();
                    if (row == null)
                    {
                        return;
                    }
                    string _neartokenside = DGV1.Rows[row.Index].Cells["Tok1B_S"].Value.ToString();
                   //LogWriterClass.logwritercls.logs("Fillqty_ingrd", strbuysell);
                    if (_neartokenside.Trim() == strbuysell)
                    {
                        if (DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value == null || Convert.ToString(DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value) == "")
                        {
                            DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value = 0;
                        }
                        DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["TRDQTY(B)"].Value) + 1;

                    }
                    else
                    {
                        if (DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value == null || Convert.ToString(DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value) == "")
                        {
                            DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value = 0;
                        }
                        DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value = Convert.ToInt32(DGV1.Rows[row.Index].Cells["TRDQTY(S)"].Value) + 1;

                    }

                }
            }
            catch (Exception ex)
            {
               // Client.LogWriterClass.logwritercls.logs("ErrorValue_check", "Value Check update in gridview" + ex.Message);

            }
        }